FCR Quick — Internal Publishing Platform
FCR Quick is the internal “drop a folder, get a URL” platform on the FCR Cloudflare account. Anything — a report, a dashboard, a small interactive tool — becomes a live, shareable internal page in seconds, with a zero-config backend (database, files, realtime) and AI (Claude for text, Cloudflare Workers AI for images) available to every page with no API keys ever in the browser.
Human front door (browse all sites + drag-drop deploy): https://quick.fcrinsights.ie
Access model — read this first
Section titled “Access model — read this first”Every Quick site sits behind Cloudflare Access restricted to @fcrmedia.ie — nothing is public. But access is flat: any FCR person can open any Quick site; there are no per-site permissions yet. So Quick is for internal-only material — never publish anything client-facing or anything that should be restricted to specific reps.
Four ways things get published
Section titled “Four ways things get published”- The
/quickskill (Claude Code) — deploy a folder, render a markdown report into a branded page, or generate a small site from a brief. Deploys viascripts/quick-publish.cjs <folder> --name <slug>and is idempotent by slug — re-running with the same--nameupdates the same stable URL. Config in.env.local:QUICK_DEPLOY_TOKEN+QUICK_BASE_URL. - Advisor auto-publish — when a heavy async Roam advisor report finalises, the worker also publishes it as an Access-gated Quick page and links it in the Roam DM (
QUICK_PUBLISH_ENABLED=1,worker/src/lib/quick-publish.js). The advisor’s on-demandpublish_to_quicktool does the same thing for any report the rep asks to “publish” / “save as a page” / “give me a link” — a link-only, unlisted page that never appears on the Hub home screen. This is a plain HTML page and the advisor may create one at any time. - Drag-drop on the quick.fcrinsights.ie front door.
- Advisor
ship_to_quick_app(2026-07-07; tightened 2026-07-10) — the opt-in promote of an internal report onto the Quick Hub home screen as an app — an editable folder on the Quick home page. Same Access-gated page aspublish_to_quick, but also listed on the Hub via the scopedPOST /__platform/list-site(x-fcr-advisor-key, forced onto the workers.dev host since the custom domain sits behind Access), attributed to the rep (advisor:<email>in the audit trail). Listing is best-effort — a failure returnspublished:true, listed:falseso the URL is never lost. Creating a Quick app requires a specific, explicit user request (“make this an app”, “pin it to the home screen”, “add it as a folder on Quick”) — the advisor never infers it, defaults to it, or proactively offers it; anything short of that (a plain “publish to Quick” / “give me a link”) stays a link-only page viapublish_to_quick. It is reachable only from the two interactive surfaces — the Roam advisor and the HubSpot card (it’s inHEADLESS_TOOL_DROP, so autonomous/headless flows can never pin to the Hub). Keeps the Hub curated.worker/src/lib/quick-dashboard.js.
The Quick SDK (window.quick)
Section titled “The Quick SDK (window.quick)”Generated sites include <script src="__quick.js"></script> and get, with zero setup:
| Primitive | What it gives a page |
|---|---|
quick.ai.chat(...) | Claude text (streaming or one-shot; default Haiku, per-call model override) — key stays server-side |
quick.ai.image(...) | Cloudflare Workers AI image generation (Flux/SDXL) |
quick.db.collection(...) | Firebase-style JSON collections with realtime subscribe |
quick.channel(...) | Pub/sub + presence (live polls, multiplayer cursors) |
quick.files.upload(...) | File upload → instant URL |
| identity | { id, email } from the Access session |
FCR data primitives
Section titled “FCR data primitives”Quick pages can read live FCR data through dedicated worker routes built for it: quick.fcr.ads → dashboard-ads-mtd (month-to-date Google Ads per account) and quick.fcr.clients → dashboard-active-orders (active recurring order lines, real MRR). Same guardrails as everywhere else — spend is retail, MRR routes through the governed shapes.
What lives on Quick today
Section titled “What lives on Quick today”The SayMore engagement hub (rebuilt monthly by /saymore-refresh), the SEO competitor-DR explorer (/seo-competitor-dr, the Head-of-SEO deliverable), the PMS GMB/Yext roster (/pms-gmb-stats), monthly pipeline reviews (/pipeline-review publishes here), and ad-hoc advisor deep-dive reports.