📋 Observability + Security · Cheat Sheet · Day 5 · pin this tab

See it. Ship it. Secure it.

10 prompts · 5 phases · Sentry + PostHog installed · bug hunter + security audit before every publish · crisis triage saved for when it breaks · 3 bonus rituals to compound.

Workshop stack: Lovable × GitHub × Supabase × Claude Cowork · with Sentry · PostHog · Stripe · Resend MCPs. No terminals · no raw API keys in chat · no Vercel.
🏆 5 golden rules · pin forever

Memorize these.

1 · You can't fix what you can't see. Instrument BEFORE you scale.
2 · 5 events > 50. Track few things well. Add as you grow.
3 · Errors silently kill conversion. Sentry is non-negotiable.
4 · Publish is a gate · not a button. Bug hunter + security audit before every release.
5 · Connect MCPs · don't paste API keys. Every tool wires through the Cowork Connectors UI.
🏗 The 4 layers · 4 free tools · all via MCP

What watches what.

LayerWhat it seesToolFree tier · MCP connected?
1 · ERRORSCrashes · exceptions · slow loads · failed API calls · rage clicksSentry5k errors/mo · 50 replays/mo · via Sentry MCP
2 · PRODUCTEvents · funnels · session replays · heatmaps · A/B tests · feature flagsPostHog1M events/mo · 5k replays/mo · via PostHog MCP
3 · DATA + AUTHDB · RLS · auth · edge functions · logs · security advisorsSupabase500MB DB · 50k MAU · via Supabase MCP
4 · REVENUE + EMAILMRR · churn · disputes · webhooks + weekly digest emailStripe + ResendFree forever + 3k emails/mo · via Stripe/Resend MCPs
Rule: if a tool has an MCP · connect it in Cowork Settings → Connectors. If it doesn't · use its UI directly. Never paste an API key in chat.
⚡ 10 prompts · workshop kit · in run order

Each has a gold copy button on its card.

⚙ Phase 0 · SETUP · load context once

P00 · Context loader (2 min · required) — reads Project + memory + Supabase MCP + Stripe MCP · outputs 8-line brief · zero re-typing after this.

⭐ Phase 1 · DECIDE what to track

P01 · Your 5 must-watch metrics (3 min) — 5 metrics tailored to YOUR app + stage. Panel: Casey Winters + Lenny Rachitsky + April Dunford.

🛠 Phase 2 · INSTRUMENT · 30 min total

P02 · Sentry · account + MCP + install + alerts (15 min) — sign up · connect Sentry MCP · install via Lovable prompt OR GitHub PR · first test error captured. Panel: David Cramer + Charity Majors + Mitchell Hashimoto.
P03 · PostHog · account + MCP + install + funnels (15 min) — sign up · connect PostHog MCP · install · 5 events firing · first funnel live. Panel: James Hawkins + Casey Winters + Lenny Rachitsky.

🔍 Phase 3 · AUDIT + TRIAGE · the pre-publish gates

P04 · 🐛 Bug hunter · flagship pre-publish audit (20 min) — 6 vectors: static/code · Sentry runtime · PostHog user flow · UX/a11y · adversarial user sim · mobile matrix. Assumes it will find bugs.
P05 · 🔒 Security + DB vulnerability audit ⭐ (25 min) — 8 vectors: secrets grep · Supabase RLS + advisors · auth flows · edge fns · SQL injection · payments · client-side · adversarial pen-test. Any 🔴 CRITICAL = BLOCK PUBLISH.
P06 · 🚨 Crisis triage · "what broke?" (3 min · use when broken) — calm methodical 5-step via Sentry + GitHub + Supabase + PostHog + Stripe MCPs. Save as a Cowork skill.
✦ Additional Bonus Prompts ✦

Three optional add-ons · run when ready.

Not required to ship · but they compound the daily and weekly rituals that separate "I think we're growing" from "here's the exact number."

🎁 Phase 4 · BONUS · revenue + rituals

P07 · 💳 Stripe alerts via connected MCPs (10 min) — 5 events (win · churn · declined · disputed · paid) → Slack/Resend/Discord MCP. Panel: Patrick Collison + Justin Welsh + Will Larson.
P08 · 📊 Morning dashboard (auto from MCPs) (10 min) — single Lovable /dashboard route · 6 cards · pulls live via Sentry + PostHog + Stripe MCPs. Panel: Edward Tufte + Stephen Few + Justin Welsh.
P09 · ✉ Weekly digest via Resend MCP (10 min) — Sunday 9am · Supabase pg_cron · WIN / WORRY / FIX · sent via Resend MCP · no API keys in chat. Panel: Lenny Rachitsky + Justin Welsh + Stephen Few.
🐛 P04 · Bug hunter · 6 vectors

Every publish. Find them first.

1 · Static / Code

GitHub MCP · null checks · promise rejections · race conditions · missing states · N+1

2 · Runtime

Sentry MCP · all errors 14d · grouped by root cause · ranked by users

3 · User Flow

PostHog MCP · funnel drops >40% · rage clicks · dead clicks · frustrated closes

4 · UX / a11y

Loading states · brand-voiced errors · empty state CTA · sticky buttons · focus rings

5 · Adversarial

5 hostile users: fat-fingers · slow net · screen reader · emoji · dup signup

6 · Mobile matrix

iPhone SE 375×667 · Safari input 16px · Firefox date-picker · slow 3G skeleton

Output: ranked P0–P3 table · repro steps · root cause · fix diff as paste-ready Lovable prompt.
🔒 P05 · Security audit · 8 vectors · the publish gate

🔴 Any critical = block publish.

1 · Secrets

Grep repo + git history · Sentry payloads · rotate anything found · block publish

2 · Supabase RLS

Every table has RLS · auth.uid() = user_id · get_advisors via MCP

3 · Auth flows

Reset tokens single-use · magic links <15min · OAuth CSRF · JWT alg pinned

4 · Edge fns

auth.getUser() · rate limits · input validation · CORS not * · sig verify

5 · SQL injection

No raw concat · parameterized · tsquery escaped · every query has user_id WHERE

6 · Payments

Stripe sig verified · paywall not spoofable · prices from Stripe · idempotency keys

7 · Client-side

No secrets in window · no JWTs in localStorage · XSS sanitized · CSP · HSTS

8 · Adversarial

5 attackers: competitor · stuffer · impersonator · insider · refunder — all blocked?

Publish gate: ANY 🔴 CRITICAL → do NOT publish. Fix · re-run · then publish. Save to Project-Plan.md → Security audits. Include a REGRESSION TEST for every critical.
☀ P08 · Morning dashboard · 6 numbers in 5 min

Tomorrow 9am. Every day.

1 · Visitors today

PostHog MCP · pageviews last 24h · up or down vs yesterday?

2 · Signups today

PostHog MCP · event = signup_completed

3 · Activation 7d

PostHog MCP · funnel · % who hit your aha moment

4 · New MRR today

Stripe MCP · subs created · how much $ added?

5 · New errors 24h

Sentry MCP · new issues · anything BROKEN?

6 · Latest replay

PostHog MCP · session recording embed · daily UX gut-check

Deploy: Lovable /dashboard route · Supabase auth allowlist (only you) · add to phone home screen. The morning ritual investors love to see.
🚨 P07 · Stripe events that wake you up

5 events · 5 alerts.

EventWhat it meansActionPriority
checkout.session.completed🎉 New customer subscribedCelebrate. Welcome email via Resend MCP.HIGH
customer.subscription.deleted😱 Customer churnedEmail today via Resend MCP. Ask why.HIGH
invoice.payment_failed⚠ Card declinedWarm email within 1hr. Stripe retries auto.MEDIUM
charge.dispute.created🚨 Chargeback initiatedRespond via Stripe Dashboard within 7 days.HIGH
invoice.paid💚 Recurring payment landedQuiet log. Update MRR. Optional thank-you.LOW
Ship tonight: Stripe MCP wires the webhook → Supabase edge fn (deployed via Supabase MCP · not CLI) → Resend/Slack/Discord MCP for the ping. Test via Stripe Dashboard → Webhooks → Send test event.
🆘 P06 · When something breaks · 5-step triage

Save P06. Paste in panic.

You'll catch 90% in 90 seconds. The other 10% are slow leaks the weekly digest catches. If revenue is affected · stop the bleed BEFORE finding root cause.
💰 Free tier limits · when to upgrade

When you'll graduate.

ToolFree tierUpgrade triggerNext tier $
Sentry5k errors/mo · 50 replays/mo · 1 user~$5k MRR or teammates$26/mo (Team)
PostHog1M events/mo · 5k recordings · 100 flags~$10–20k MRR (many never upgrade)~$0.00031/event PAYG
Supabase500MB DB · 1GB storage · 50k MAU~500 active users$25/mo (Pro)
StripeFree forever · webhooks freen/a2.9% + 30¢ per transaction
Resend3k emails/mo · 100/day · 1 domain~1k active users$20/mo (Pro · 50k emails)
Lovable + CoworkPer your existing planFeature access · not usageExisting subscription
For the 10-Day Sprint: all free tiers cover you well past Sellathlon (Day 8). Total stack observability + email cost by Demo Day: $0/mo.
📋 Post-workshop checklist · do TONIGHT

Before Sunday's rest day.

By Day 8 Sellathlon: walk in with REAL numbers pulled live via MCPs — "Users X · activation Y% · MRR Z · errors 0 in last 24h". That's the flex.
🌴 Sunday Jul 12 · rest day · you earned it

Then Monday we build in public.

📅 Today

Sat Jul 11 · S3 4pm

User testing session — real humans test what you polished

🌴 Sunday

Jul 12 · REST

Rest day. Sleep. Beach. Come back Monday fresh

🚀 Monday

Day 6 · Jul 13

Week 2 kicks off · Build in Public + Pricing + Deploy Day

The compounding play: P07 + P08 + P09 wired tonight = every morning you wake up to a dashboard · every Sunday you get a WIN/WORRY/FIX email. Rituals that outlast the workshop.