Skip to content

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

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.

  1. The /quick skill (Claude Code) — deploy a folder, render a markdown report into a branded page, or generate a small site from a brief. Deploys via scripts/quick-publish.cjs <folder> --name <slug> and is idempotent by slug — re-running with the same --name updates the same stable URL. Config in .env.local: QUICK_DEPLOY_TOKEN + QUICK_BASE_URL.
  2. 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-demand publish_to_quick tool 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.
  3. Drag-drop on the quick.fcrinsights.ie front door.
  4. 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 as publish_to_quick, but also listed on the Hub via the scoped POST /__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 returns published:true, listed:false so 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 via publish_to_quick. It is reachable only from the two interactive surfaces — the Roam advisor and the HubSpot card (it’s in HEADLESS_TOOL_DROP, so autonomous/headless flows can never pin to the Hub). Keeps the Hub curated. worker/src/lib/quick-dashboard.js.

Generated sites include <script src="__quick.js"></script> and get, with zero setup:

PrimitiveWhat 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

Quick pages can read live FCR data through dedicated worker routes built for it: quick.fcr.adsdashboard-ads-mtd (month-to-date Google Ads per account) and quick.fcr.clientsdashboard-active-orders (active recurring order lines, real MRR). Same guardrails as everywhere else — spend is retail, MRR routes through the governed shapes.

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.

Ask the docsRAG over this site
Ask anything about the FCR Dashboard platform — architecture, BigQuery, the worker routes, billing rules, the LRC stack, scoring… Answers are grounded in this documentation, with source links.
How does the deal-brief refresh work? Which routes are Worker vs n8n? How is account health scored?