Back to Library
Workshop Day / S5 · Capstone

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.

What you'll have
  • 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.
Step 5 · 4D
4D Capstone
4D goal A deployed Morning Brief, delivered daily
Done when Brief live at your URL + a Supabase row + scheduled
You run /build-morning-brief
Time ~half day
The concept Morning Brief library card (the why)
One-click start

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.

Follow along The visual walkthrough Every Vercel screen in this deploy as a slide deck, from importing your repo to your live Morning Brief.
Open the deck

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.

4D goal

Your Morning Brief deployed at your own Vercel URL, refreshing itself every morning.

Done when

Your brief renders at your Vercel URL, a row lands in Supabase, and the schedule is set to fire again tomorrow.

You run

The /build-morning-brief command, after a quick Vercel import you do in the website.

Want the how and why

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.

Step 01

Verify your Supabase

2 min

Your Supabase project was created back in S2. Claude confirms it's there and its tables exist. Nothing to recreate.

Step 02

Deploy to Vercel

10 min

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

Then the environment variables. In the import flow (or Project Settings, Environment Variables), add your five Supabase entries: 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.
Step 03

Run the capstone build

most of the session

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

Paste into Claude Code /build-morning-brief
Step 04

Schedule it, then confirm it's live

5 min

Once 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 briefs table.
  • It repeats. The schedule is set, so the loop fires again tomorrow without you.
That's the capstone. A live Morning Brief that's yours, refreshing while you sleep.

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:

Paste into Claude Code (later) 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?

8D checkpoint

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.

Where to go next.

Back to the Library