For AI Agents
briefroom CDN Policy
Upload HTML to briefroom using either relative bundled CSS/JS/fonts or the 7 allowed CDNs. Note: Tailwind Play CDN is classified "unstable" — it renders today but is discouraged for production.
✅ Allowed CDNs (7 origins)
These CDNs are allowed from briefroom delivery domains (judge #45-D + sub-judgement 4):
- jsDelivr —
https://cdn.jsdelivr.net/npm/...✅ - cdnjs —
https://cdnjs.cloudflare.com/ajax/libs/...✅ - unpkg —
https://unpkg.com/...✅ - esm.sh —
https://esm.sh/...✅ - Google Fonts (CSS) —
https://fonts.googleapis.com/css?...✅ - Google Fonts (file) —
https://fonts.gstatic.com/s/...✅ - Tailwind Play CDN —
https://cdn.tailwindcss.com⚠️ (unstable, see below)
⚠️ Important: Tailwind Play CDN is "unstable" — prefer a pre-built CSS
cdn.tailwindcss.com (Tailwind Play CDN) is allowed in our CSP and, as of 2026-07-16, renders from briefroom delivery domains (*.user-content.briefroom.net). However, Tailwind's side returned 503 to our delivery domains in the past (2026-06-30) and Tailwind officially discourages this CDN for production. Because it can be blocked again without notice, we keep it classified "unstable" and continue to warn on it.
Recommended: bundle a pre-built CSS file, or inline it in a `<style>` tag. If a CDN is required, use jsDelivr.
<!-- ✅ Bundled CSS (npx tailwindcss で生成した static file) --> <link href="./styles.css" rel="stylesheet"> <!-- ✅ Inline <style> in the HTML (自己完結、最も確実) --> <style>/* content of styles.css */</style> <!-- ✅ CDN fallback: Tailwind v3 via jsDelivr --> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css" rel="stylesheet"> <!-- ✅ CDN fallback: Tailwind v4 (browser-only JIT) via jsDelivr --> <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
Recommended approach 1: Relative bundled paths (most reliable)
Resistant to CDN outages and spec changes, ideal for long-term storage.
<!-- ✅ Tailwind bundle (npx tailwindcss で生成した static CSS) --> <link href="./styles.css" rel="stylesheet"> <!-- ✅ バンドラで build した相対パス JS --> <script src="./app.js" type="module"></script>
⚠️ Bundling fonts is discouraged
Load fonts via Google Fonts CDN (an allowed CDN on briefroom). Bundling fonts locally is discouraged: Japanese web fonts are multi-MB (Noto Sans JP across all weights exceeds 5 MB), pressing against the 50 MB ZIP limit and cumulative storage. PDF export is unaffected — briefroom auto-embeds Noto at PDF generation time (judge #90).
Quick Start: use Tailwind as a relative path
- Locally run
npx tailwindcss -i src/input.css -o styles.css --minify - Place the generated styles.css in the same folder as your HTML
<link href="./styles.css" rel="stylesheet">to include it- Zip the folder and upload it to briefroom
Recommended approach 2: Via allowed CDNs (simple, CDN-dependent)
For quick demos / mockups:
<!-- ✅ Tailwind v3 (jsdelivr 経由、CSS のみ) --> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css" rel="stylesheet"> <!-- ✅ Tailwind v4 (jsdelivr 経由、JIT) --> <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script> <!-- ✅ Vue 3 (jsdelivr 経由) --> <script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script> <!-- ✅ Alpine.js (jsdelivr 経由) --> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3/dist/cdn.min.js"></script> <!-- ✅ React + ReactDOM (esm.sh 経由) --> <script type="module"> import React from 'https://esm.sh/react@18'; import ReactDOM from 'https://esm.sh/react-dom@18/client'; </script> <!-- ✅ Google Fonts (Inter family) --> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet"> <!-- ✅ Font Awesome (cdnjs 経由) --> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" rel="stylesheet">
Prompt templates for AI
Claude / ChatGPT / Gemini
Build HTML for briefroom. For Tailwind CSS, bundle a pre-built CSS file (produced by `npx tailwindcss`) or inline it in a `<style>` tag — do not use `cdn.tailwindcss.com` (Tailwind Play CDN is officially discouraged for production and classified "unstable" on briefroom). If you cannot bundle, use `https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css` (jsDelivr) as a CDN fallback. For fonts, Google Fonts `https://fonts.googleapis.com/...` is allowed, or use system-ui. Other JS libs via jsdelivr / cdnjs / unpkg / esm.sh are allowed.
v0 / Cursor / Aider
Output as a single self-contained HTML folder for briefroom. For Tailwind CSS, bundle a pre-built CSS file or inline it in a <style> tag — do not use cdn.tailwindcss.com (Play CDN is discouraged for production, classified "unstable"). If a CDN is required, use https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css. For other JS libs, jsdelivr / cdnjs / unpkg / esm.sh are allowed. Google Fonts are allowed.
Rewrite existing HTML (Tailwind Play CDN → bundled CSS or jsdelivr)
This code uses Tailwind CSS via `cdn.tailwindcss.com` (Play CDN), which is classified "unstable" on briefroom (officially discouraged for production, previously blocked, may stop working without notice). Please rewrite it as one of: <!-- Preferred: bundle a pre-built CSS file --> <link href="./styles.css" rel="stylesheet"> <!-- Alternative: jsDelivr --> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css" rel="stylesheet">
Detection scope + warning behavior
briefroom detects external CDN and iframe references in 5 places in your entry HTML and shows them in the warning panel:
<link rel="stylesheet" href="https://..."><script src="https://..."></script><style>@import url("https://...")</style>style="background:url(https://...)"<iframe src="https://...">(judge #96 — allowlisted embeds are excluded from warnings)
Of the URLs shown in the warning panel:
- 7 allowed CDNs → actually work (warning is informational)
- Others → blocked (do not work, must rewrite)
- Tailwind Play CDN → allowed by CSP and currently rendering, but officially discouraged for production and previously blocked → classified "unstable" and always warns (bundling pre-built CSS is recommended)
Phase X-2 (T4-18, post-MVP) will auto-import detected CDNs into briefroom (fetch → R2 self-host → URL rewrite). After Phase X-2, the 7-origin allowlist will be unnecessary (self-host enables 'self').
Tailwind Play CDN classification (judge #98): Tailwind's side returned 503 on 2026-06-30 and rendering was reconfirmed on 2026-07-16, but given Tailwind's official "not for production" stance and the prior block, we keep it classified "unstable" (warnings continue). The CDN allowlist still permits it, so unchanged HTML still renders.
