briefroom

Sign up or Sign in

or

We'll create an account for you if you don't have one yet.

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 excluded.

✅ 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 ⚠️ (does not work, see below)

⚠️ Important: Tailwind Play CDN does not work

cdn.tailwindcss.com (Tailwind Play CDN) is allowed in our CSP, but Tailwind's server returns 503 to requests from briefroom delivery domains (*.user-content.briefroom.net), confirmed 2026-06-30.

Likely cause: Tailwind Play CDN is officially "not for production", and our Cloudflare-shared IP reputation or origin filtering may trigger the reject. Other domains (e.g., direct hosting) get 200.

Solution: Use jsDelivr instead

<!-- Tailwind v3 (CSS only, simplest) -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css" rel="stylesheet">

<!-- Tailwind v4 (browser-only JIT, Play CDN equivalent) -->
<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">

<!-- ✅ フォントを同梱 -->
<link href="./fonts/inter.woff2" rel="preload" as="font" type="font/woff2" crossorigin>
<style>
  @font-face {
    font-family: 'Inter';
    src: url('./fonts/inter.woff2') format('woff2');
  }
</style>

<!-- ✅ バンドラで build した相対パス JS -->
<script src="./app.js" type="module"></script>

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, use `https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css` via `<link rel="stylesheet">` — do not use `cdn.tailwindcss.com` (returns 503 from briefroom domains). 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, use https://cdn.jsdelivr.net/npm/tailwindcss@3.4.17/dist/tailwind.min.css via <link rel="stylesheet"> — do not use cdn.tailwindcss.com (it returns 503 from briefroom domains). For other JS libs, jsdelivr / cdnjs / unpkg / esm.sh are allowed. Google Fonts are allowed.

Rewrite existing HTML (Tailwind Play CDN → jsdelivr)

This code uses Tailwind CSS via `cdn.tailwindcss.com`, which does not work on briefroom (Tailwind returns 503). Please rewrite it as:

<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 references in 4 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://...)"

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 → CSP-allowed but rejected by Tailwind with 503 (warning is also actionable, must rewrite)

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 recovery watch: if Tailwind relaxes the reject in future, it will work again automatically (CDN allowlist is maintained).