Ship Your Morning Brief.
The capstone checkpoint, and the day-of execution path. Everything you wired in the earlier sections feeds this one build. You deploy to Vercel, run the command, and watch your brief go live at your own URL, refreshing itself every morning. Want the full how and why behind it? Read the Morning Brief library card. Here, we ship it.
- A deployed brief live at your own Vercel URL, rendering today's write-up from the sources you connected today.
- Delivery your way (optional) open your URL each morning, or add a phone ping later in a few steps (there's a prompt for it on this card).
- A loop that runs itself scheduled to fire again tomorrow morning without you in the terminal.
Ship it with Claude.
Paste this into Claude Code. It drives the deploy step by step, explaining as it goes and stopping only when you need to sign in, import in the Vercel website, or paste a value.
How this card works.
At the top of this card is a setup prompt. Copy it, paste it into Claude, and Claude drives the deploy, explaining each step as it goes. You read along. It only stops when there's something only you can do (sign in, import your repo in the Vercel website, or paste a value), and it tells you exactly what to do.
You don't have to read the rest of this card to succeed. Claude walks you through it live. Everything below is the reference, including a visual walkthrough deck of the deploy.
Your checkpoint.
This is the day-of execution path. Everything from the earlier sections feeds this one build: your research agent (S1), your connectors and Supabase project (S2), your vaulted keys (S3), and your Cairn (S4). Now you deploy it and watch it go live.
Your Morning Brief deployed at your own Vercel URL, refreshing itself every morning.
Your brief renders at your Vercel URL, a row lands in Supabase, and the schedule is set to fire again tomorrow.
The /build-morning-brief command, after a quick Vercel import you do in the website.
This card is the checkpoint, kept tight so you can move on the day. For the full architecture (the Supabase tables, the deployment pattern that transfers to every later build), read the Morning Brief library card.
Before you run it.
This is where every earlier checkpoint comes together. Confirm you have these. If one is missing, that's fine; the brief still ships with whatever you have, it just has less to say.
- A reusable research agent. The one you kept from the sub-agents section. (S1.)
- Your sources connected, and your Supabase project created. One calendar or Gmail connector, the official Exa connector, and your Supabase database. (S2.)
- Your keys vaulted. Your Supabase keys stored in Infisical. (S3.)
- Your Cairn. A second brain the brief can recall from. (S4.)
What happens, step by step.
Verify your Supabase
2 minYour Supabase project was created back in S2. Claude confirms it's there and its tables exist. Nothing to recreate.
Deploy to Vercel
10 minYou import your own private repo into Vercel (in the website), point it at the right folder, and add your keys as environment variables. Claude walks you through it; the walkthrough deck shows each click. Import your own agent-native-os-private repo, never the shared AI Build Lab org repo (the org repo forces a paid plan). The one step people miss: set the Root Directory to apps/morning-brief, or the build fails.
SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY. Open your Infisical vault, copy each value, and paste it into Vercel yourself. Check Production, Preview, and Development for each. The two URL values must be exactly https://<your-ref>.supabase.co (no trailing slash, no /rest/v1, and not the supabase.com/dashboard/... link); a malformed URL is the most common cause of an app that builds but then errors. Claude knows your clean API URL and can tell it to you.Run the capstone build
most of the sessionHand the build to Claude with the setup prompt at the top, or run the command directly. It compiles your sources into your brief and publishes it to your live URL.
/build-morning-brief
Schedule it, then confirm it's live
5 minOnce a manual run works, Claude sets the schedule so your brief refreshes tomorrow on its own. You've hit the checkpoint when all three are true:
- It renders. Your brief loads at your own Vercel URL.
- It saved. A row shows up in your Supabase
briefstable. - It repeats. The schedule is set, so the loop fires again tomorrow without you.
Optional: get it on your phone (add this later).
By default you open your brief at its URL. If you'd like it to ping your phone each morning, you can add Telegram. It takes a few extra steps (a bot, a token, a chat id), so do it after you've shipped, not during the core build. When you're ready, paste this into Claude Code:
I already shipped my Morning Brief and want it to ping my phone via Telegram. Be a patient teacher and stop only when I need to act. Walk me through: in Telegram, message @BotFather and send /newbot, pick a name and a username ending in bot (it gives me a token, which goes into Vercel, never this chat); message my new bot once so it can reply; help me find my chat id; then in Vercel add TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID as environment variables (I paste the values myself) and redeploy; finally send a test ping and confirm it arrives. Never ask me to paste the token into this chat.
Going to the 8D room?
Take the same brief wider and deeper, live: extra sources, more delivery channels, scheduled runs, and a path toward a full command-center dashboard. Start with Heartbeats and Crons and Ship Anything Autonomous.