Skip to main content

SermonWise Launch Action Plan

Owner: John Moelker (founder) Audit date: 2026-05-07 Goal: Take SermonWise from 0 paid subscribers to $5K MRR in ≤6 months without burning ad spend on a blind funnel.


TL;DR — what the audits agreed on

  1. Product works. 19,447 pericope perspectives @ 0.85 quality. 7 free users, 84 sermons. Stripe checkout green. Wizard tradition→lens regression fixed today.
  2. Funnel doesn't. Zero PostHog events for signup → confirm → first sermon → upgrade. Spending ad money would be blind.
  3. Highest-ROI growth lever = 340 passage × tradition programmatic pages (the pericope DB already has the unique content; this is templating). NOT all 32K — Phase 1 is 340, validated before scaling.
  4. Asymmetric advantage = founder's pastoral voice (15 years systems analysis/development + 15 years pastoral ministry; 1 CPE unit; trained Stephen Leader, currently inactive). The engineer-pastor combination is rare and credible. Generic AI marketing copy throws this away.
  5. Single biggest accelerator = 1 denominational network endorsement (Baptist association director, Reformed presbytery, etc.). Outside this plan's scope — relationship work.

Phase 0 — Sanity check (1-2 hours, must complete before anything else)

These are the "did the recent fixes actually work in production" checks. If any fail, fix before proceeding.

#TaskOwnerDone whenEffort
0.1Run e2e/sermonwise-full-journey.spec.ts against https://sermonwise.aiagentSpec exits green; auth callback (PR #333) verified; signup → confirm → first sermon completes30 min
0.2Founder manual: sign up with a fresh +test email, click confirmation in different browser profile, verify "Email confirmed!" green banner appears on loginfounderBanner correct; sign in succeeds5 min
0.3Verify 4 backfilled users still show correct lens in their wizardfounderPentecostal/Reformed/Reformed/Baptist all auto-select correctly5 min
0.4Confirm topic-first toggle works for "grief" + Pentecostalfounder5 cards appear with rationale + "Rich pericope data" badges; "Use this →" populates scripture5 min
0.5Confirm pericope panel shows BOTH Universal + lens-specific (PR #338) for John 3:16 + PentecostalfounderTwo stacked emphasis cards + both angle groups in tabs2 min

Gate: All 5 green before Phase 1.


Phase 1 — Close the measurement gap (Week 1, ~6 hours of agent work + 2 hours founder)

Why first: Every downstream decision (ad spend, content cadence, conversion experiments) needs funnel data. Currently blind.

#TaskOwnerFiles / surfaceDone whenEffort
1.1Add PostHog events: signup_form_submitted, signup_email_confirmed, first_app_visit, first_sermon_generated, upgrade_clicked, upgrade_completedagentSignupForm.tsx, auth/callback/route.ts, sermons/app/page.tsx, sermons/pricing/page.tsx, api/sermons/generate/route.ts, Stripe webhookAll 6 events fire on the right transitions; PostHog dashboard shows funnel3-4 hr
1.2Add upgrade nudge after 2nd sermon (free-tier limit hit)agentSermonResult.tsx, sermons/app/page.tsxAt usage 2/2, banner shows "Upgrade for 13 more this month" with one-click checkout. Currently silent.1-2 hr
1.3Triage 14 open P0/P1 founder action items in FOUNDER_ACTIONS.mdagentFOUNDER_ACTIONS.mdEach item: keep open / close / dispatch fix-PR. Founder reviews triage.1 hr
1.4Contract spec: assert PostHog event names exist in code (regression guard against silent removal)agente2e/contracts/posthog-funnel-events.contract.spec.tsTest passes against current code; would fail if any event name is renamed30 min
1.5Founder reviews + approves PostHog dashboardfounderDashboard saved; founder bookmarks daily check30 min

Phase 1 gate: PostHog shows real signup funnel data for 7+ days before spending paid ad dollars.


Phase 2 — Programmatic SEO + free→paid lever (Weeks 2-3, ~12 hours of agent work)

Why now: Highest-ROI growth lever per SEO audit. Pericope DB content is already there; this is templating + caching. Plus the upgrade nudge from 1.2 starts converting trickle traffic.

#TaskOwnerFiles / surfaceDone whenEffort
2.1Pick 20 highest-volume passages (Phase 1 of 340)agent + founder approvalNew: knowledge/data/sermonwise-phase1-passages.yamlFounder confirms passage list; balanced across OT/NT/lectionary/topical1 hr
2.2Build dynamic route /sermons/passage/[passage-slug]/[tradition-slug]agentNew: app/sermons/passage/[passage-slug]/[tradition-slug]/page.tsx. ISR 24h. Reads pericope_lens_perspectives via the existing RPC.340 pages return 200, render unique content, lighthouse SEO score ≥906-8 hr
2.3Add JSON-LD schemas: Article + BreadcrumbList + Organization (with sameAs cross-property)agentSame template + app/layout.tsxValidated via schema.org validator; cross-property links to ITW/PewSearch/CWA1-2 hr
2.4Fix /sermons/community CSR → RSC (Google sees empty shell currently)agentapp/sermons/community/page.tsxPage source contains real content; bot-fetch shows full text2-3 hr
2.5Update sitemap generator to include 340 new URLsagentapp/sermons/sitemap.tsSitemap returns 340 new entries with lastmod30 min
2.6Submit new sitemap to GSC + IndexNow (Bing/Yandex)agentscripts/submit-indexnow.ts (existing)Bing reports submission; GSC shows discovery within 7d30 min
2.7Cross-property link audit + fixagentSermonWise blog templates → ITW illustrations links missing per auditAt least 3 contextual links from /sermons/* to illustratetheword.com pages1 hr
2.8Contract spec: programmatic pages return 200 + have unique contentagente2e/contracts/programmatic-passage-pages.contract.spec.tsSpec hits 5 random pages, asserts each has lens-specific content1 hr

Phase 2 gate: 340 pages live, sitemap submitted, Lighthouse SEO ≥90, no thin-content warnings in GSC.


Phase 3 — Content + lead magnet (Weeks 4-5, ~10 hours of agent work + ~6 hours founder writing)

Why now: Phase 1 measurement is calibrated, Phase 2 is indexing. Now feed the funnel.

#TaskOwnerFiles / surfaceDone whenEffort
3.1Build Advent 2026 Starter Pack (lead magnet)agentNew: app/sermons/advent-2026/page.tsx (free download landing). Pre-built starters for every Advent Sunday × Reformed/Catholic/Lutheran/Pentecostal.Page live; PDF/preview available; opt-in form syncs to MailerLite sermonwise_newsletter group4-5 hr
3.2Founder writes 4 LinkedIn essaysfounderLinkedIn draftsFounder voice; HEAR protocol; published 2x/wk4 hr
3.3Founder records 1 short founder-intro video (3 min)founderVideo on YouTube + embedded on landingDiscoverable; embedded on /sermons landing1 hr
3.4Build email drip: signup → confirm → 7-day nudge if no first sermon → 14-day Advent pack offeragentMailerLite automation (founder Gmail integration already wired)All 4 emails authored + automation live; test+flows@churchwiseai.com receives sequence3-4 hr
3.54 SermonWise blog posts on Phase 1 keywords (founder approves drafts; agent writes from outlines)agentsrc/content/blog/Founder approves + publishes; pinned on /blog4 hr

Phase 3 gate: 100+ MailerLite SermonWise subscribers; 4 LinkedIn posts driving 100+ profile visits; Advent pack downloaded 50+ times.


Phase 4 — Calibrated paid + community (Weeks 6-8)

Why last: Without Phase 1 funnel data, paid ads are blind. Without Phase 2 organic, paid acquisition cost has no organic baseline. Without Phase 3 content, you have no remarketing inventory.

#TaskOwnerSurfaceDone whenEffort
4.1Calibrated paid test ($300/wk × 2 weeks) — 3 keywordsfounderGoogle AdsConversion data: signups, paid subs, CAC, LTV proxy. Decide whether to scale.2 hr setup + monitor
4.2Reach 5 denominational network leaders (Baptist association director, Reformed presbytery, etc.)founderLinkedIn DMs / cold email1 endorsement/integration secured. Single biggest accelerator.4 hr
4.3Reddit + Facebook group seeding (r/Pastors, r/Reformed, denominational FB groups)founderReddit, FBFounder participates organically; mentions SermonWise where contextually appropriate (no spam)2 hr/wk
4.4Conference outreach (next 6 months): pick 2 conferences for booth or sponsored contentfounderConference websites2 conference partnerships in pipeline3 hr

What NOT to do (carry over from audits)

  • No paid ads in Weeks 1-3. Phase 1 funnel events must exist + accumulate ≥7 days of data first.
  • No ChatGPT-tone marketing copy. Founder's pastoral voice is the moat — generic AI prose loses the differentiator.
  • No 32K-page SEO build. Phase 2 is 340. Validate phase 1 indexes + ranks before phase 2.
  • No bulk customer-data writes without explicit founder approval.
  • No critical-path file changes without paired Playwright verification (CLAUDE.md rule #10).
  • No skipping the 19 contract tests — they're the regression backstop for everything shipped today.

Risk register

RiskLikelihoodImpactMitigation
Phase 2 programmatic pages get flagged as thin content by GoogleMediumHighUse full pericope content (~500-800 words/page), not stubs. Lighthouse + manual spot-check first 10 pages before scaling.
LinkedIn algorithm doesn't pick up theological contentMediumMediumDiversify to Substack/Threads in week 4. Don't rely on a single channel.
Founder voice essays get rate-limited as "AI-generated" by LinkedInLowHighFounder writes/dictates personally; agent only proofreads. Never auto-publishes.
Advent pack content quality is inconsistent across traditionsMediumHighFounder reviews each tradition's pack. Generate from pericope_lens_perspectives where lens has high coverage. Charismatic/Dispensational/Liberation are thin (455/320/242 rows respectively) — skip those traditions in v1.
Paid ad waste before funnel calibratedLow (gated by Phase 1)HighHard gate: do not start Phase 4 ads until Phase 1 dashboard has ≥7 days of clean data.

Success metrics — 8-week target

MetricTodayWeek 4 targetWeek 8 target
Free signups7 (incl. test)75200
Paid subscribers0520
MRR$0$100$400
Sitemap URLs indexed~15~250~340
MailerLite SermonWise subscribers<5100350
Founder LinkedIn followers(current)+200+500
Top organic keyword positionn/atop 50top 20
Conversion rate (signup → paid)unmeasured3% baseline5%

If Week 4 misses 50%+, regroup before Phase 4 (no paid ads if organic isn't moving). If Week 8 hits targets: scale paid ($1K/wk), commit to Phase 2B (additional 1,700 programmatic pages).


Appendix — references

  • Today's PRs: #333 #334 #335 #336 #337 #338 (all merged)
  • Contract specs: e2e/contracts/*.contract.spec.ts (19 tests, ~5s combined). Don't break these.
  • Detailed audit reports:
    • 01-readiness-audit.md — 9-dim scorecard, journey-by-journey findings
    • 02-marketing-strategy.md — 8-week calendar, revenue math, founder voice angles
    • 03-seo-strategy.md — keyword pillars, 20 blog titles, programmatic SEO phasing
  • Project conventions: C:\dev\CLAUDE.md, C:\dev\churchwiseai-web\CLAUDE.md
  • Founder memory: ~/.claude/projects/C--dev/memory/MEMORY.md