Playbooks / Run your own dashboard as a schema-per-tenant clone

Run your own dashboard as a schema-per-tenant clone

Run your own dashboard as a schema-per-tenant clone

Coming

dashboard.trombonetimollc.com: the client dashboard cloned for the owner with To-Do, Scripts, Suggestions, Email Proposals, Email Performance, Hooks, Attribution and Links tabs, on a `tim` schema of the shared Supabase with admin-only RLS, a daily reconcile cron and AC reply webhook.

Kit

dashboard-shell

You need

AccountWhyFree or paidPlan
SupabasePostgres database, auth (dashboard logins), row level security, Realtime pulse, Edge Functions and pg_cron for every dashboard, the attribution tables, booking alerts and the Brain state.Free tier availablePro (25 USD/mo) for anything a client logs into. The free tier pauses a project after 7 days without traffic and caps an org at 2 active projects; a paused free project took three client dashboards offline at once (a project log).
VercelHosts every site, funnel, dashboard and serverless API (subscribe, book, attribution, AC proxy). Runs the cron jobs declared in vercel.json.Free tier availablePro (20 USD/mo per seat). The Hobby plan forbids commercial use, so any client site or paid product must be on Pro. Hobby is fine for a personal portfolio.
ActiveCampaignEmail list, broadcasts, automations and tags. The email engine drafts into a dashboard queue and sends through the AC API; funnels subscribe leads via the API; replies come back through an AC webhook.PaidMarketing Lite or Plus (from about 15 USD to 49 USD/mo at 1,000 contacts). API access is on every plan. Webhooks (for reply tracking) need automations, which Lite has.
Meta Business Suite (Pixel, Conversions API, Marketing API)Facebook and Instagram ads. The funnel fires Pixel events, the attribution system sends server-side Conversions API events, the Meta Ads tab pulls ad-level insights, and social posting reaches your Pages through Zernio.FreeBusiness account is free; you pay for ad spend only. Requires a verified business and a domain verification TXT record for the Pixel.
YouTube Data API v3 (Google Cloud)Exact per-video view counts for the $ per view tab, channel stats, and (with OAuth) uploads. Public metadata, captions and comments come through yt-dlp without a key.FreeFree; 10,000 quota units per day is plenty for daily syncs.
Slack (incoming webhooks)Client review pings from the dashboard (script approved, email needs changes) and social-post notifications.FreeFree workspace is enough for webhooks.
GitHubEvery site, dashboard and workflow lives in a repo. Actions run scheduled jobs (email snapshots, daily scrapes). Issues double as an email alert channel for bookings.FreeFree plan. Actions minutes on the free plan cover the cron jobs used here (a few minutes a day).
Node.js 24 (npm, npx)Runs Claude Code, the Vercel CLI, HyperFrames renders, Playwright, the MCP servers and every serverless function locally.FreeFree. Node 24 LTS (the Brain MCP server and Vercel functions target Node 24).

What you bring

  • Your own email platform and ad platform keys
  • A data feed of your own, because the starter ships empty

The steps

  1. Confirm the accounts and the schema plan
  2. Create the tenant schema and lock it to your admin logins
  3. Point every REST call at the schema without editing sixty call sites
  4. Clone the pages, brand them, wire the crons and the reply webhook
  5. Expose your email platform to your AI with a local MCP server (optional)
  6. Stand up the analytics shell with mock data marked as mock
  7. Deploy and verify signed in

Goes further if you have already built Build the email proposal engine (mine, draft, push, approve, send through ActiveCampaign). You can build this without it.

Get the full playbook

Part of: Get your database sorted