briefroom

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

  1. Locally run npx tailwindcss -i src/input.css -o styles.css --minify
  2. Place the generated styles.css in the same folder as your HTML
  3. <link href="./styles.css" rel="stylesheet"> to include it
  4. 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.