M11: Launch Readiness — v1.0.0
Phase: P3: Launch
Target: Weeks 33–38
Sprints: S16 (Weeks 33–34, shared with M10), S17 (Weeks 35–36), S18 (Weeks 37–38)
Release: v1.0.0 — production deployment
Phase Context
Goal: Subscription billing, Come Follow Me integration, polish, and founding-user onboarding. Ship the product.
Key constraint: Billing/entitlement must be rock-solid. A user who pays must immediately get access. A failed payment must immediately revoke.
ZenHub Configuration
| Field | Value |
|---|
| Milestone | M11: Launch Readiness |
| Due Date | 2026-11-29 |
| Default Pipeline | Product Backlog |
| Primary Epic(s) | User Onboarding, UI Polish & Performance, Production Infrastructure, Legal & Compliance |
Prerequisites
| Prerequisite | Source | Why Needed |
|---|
| M10: Monetization complete | P3 | Billing and entitlements must be operational before production launch |
| M05: Staging environment | P1 | Production environment builds on staging infrastructure patterns |
| All prior milestones (M00–M10) | P0–P3 | All features, services, and infrastructure must be complete |
Epic: User Onboarding
2 story areas. First-time and returning user experience flows.
Issues — User Onboarding
| Issue | Title | Status | Notes |
|---|
| M11-001 | Onboarding Flow — Three-Act First Open Experience | ✅ Done | Three-act flow (intro → question → walkthrough), CoachMark component, OnboardingGate, 5 walkthrough scripts. PR #966 |
| M11-002 | Returning User Routing — Last Reading Position Resume | ✅ Done | Reading position resume from Dexie, 7-day welcome back whisper card. PR #966 |
7 story areas. Production-quality web experience.
| Story Area | Scope | Spec Reference |
|---|
| PWA optimization | Service worker, manifest, offline cache, home-screen install | MVP.md § Feature #8 |
| Offline data caching | Cache recently read books for offline access via service worker | MVP.md § Feature #8 |
| Performance audit | Core Web Vitals, time-to-interactive on scripture pages | — |
| Accessibility | Keyboard navigation, screen reader, ARIA labels, color contrast | DESIGN-SYSTEM.md § Accessibility |
| Error handling | Global error boundaries, API error states, offline fallbacks | — |
| SEO | Meta tags, OG images, structured data for scripture passages | — |
| Analytics | Event tracking for leading indicators | MVP.md § Leading Indicators |
| Issue | Title | Status | Notes |
|---|
| M11-003 | PWA Optimization — Service Worker, Manifest, and Home-Screen Install | ✅ Done | PR #963 — all criteria met; PWA icons are placeholder .gitkeep; Lighthouse audit deferred to host machine |
| M11-004 | Offline Data Caching — Recently Read Books for Offline Access | ✅ Done | PR #963 — Cache API with TTL+LRU, prefetch hook, OfflineStorage UI, OfflineIndicator in TopBar |
| M11-005 | Performance Audit — Core Web Vitals and Time-to-Interactive | 🔶 Partial | Baseline doc, code splitting, Lighthouse CI, TanStack Query stale times done; live Lighthouse scores TBD (requires hosted env) |
| M11-006 | Accessibility Audit and Remediation — WCAG 2.1 AA Compliance | ✅ Done | Focus indicators, ARIA landmarks, dir=rtl, reduced-motion, axe-core CI, ConstellationView text alt, contrast audit, left-hand mode. PR #965 + remediation PR |
| M11-007 | Error Handling — Global Error Boundaries, API Error States, and Offline Fallbacks | ✅ Done | PR #963 — Sentry, three error boundaries, ApiErrorState, exponential backoff, loading.tsx skeletons; query hook integration pending |
| M11-008 | SEO — Meta Tags, OG Images, and Structured Data for Scripture Passages | ✅ Done | PR #964 |
| M11-009 | Analytics — Event Tracking for Leading Indicators | ✅ Done | PostHog abstraction, AnalyticsProvider, instrumentation hooks, env config. PR #966 |
Epic: Production Infrastructure
5 story areas. Production deployment and operations.
| Story Area | Scope | Spec Reference |
|---|
| Production environment | EKS + RDS + ElastiCache, production Kustomize overlay | Deploy to Production |
| Production CD pipeline | Release tag → approval gate → production deploy | CI/CD Pipeline |
| Monitoring & dashboards | Grafana dashboards, Prometheus alerting (Sentry already live from M05) | Observability |
| Database migration automation | golang-migrate init containers, migration gating in CD | Database Migrations |
| Backup procedures | RDS snapshots, FalkorDB BGSAVE → S3 | Disaster Recovery |
Issues — Production Infrastructure
| Issue | Title | Status | Notes |
|---|
| M11-010 | Production Environment — EKS Cluster, RDS, ElastiCache, and Kustomize Overlay | ✅ Done | PR #980 |
| M11-011 | Production CD Pipeline — Release Tag to Approval Gate to Deploy | ✅ Done | PR #980 |
| M11-012 | Monitoring and Dashboards — Grafana, Prometheus, and Alerting | ✅ Done | PR #980 |
| M11-013 | Database Migration Automation — Init Containers and CD Gating | ✅ Done | PR #980 |
| M11-014 | Backup Procedures — RDS Snapshots, FalkorDB BGSAVE to S3, and Typesense Snapshots | ✅ Done | PR #980 |
Epic: Legal & Compliance
4 story areas. Legal compliance for launch.
Issues — Legal & Compliance
| Issue | Title | Status | Notes |
|---|
| M11-015 | Privacy Policy — Finalize, Attorney Review, and Publish | 🔶 Partial | PR #964 — page live, attorney review pending |
| M11-016 | Terms of Service — Finalize, Attorney Review, and Publish | 🔶 Partial | PR #964 — page live, attorney review pending |
| M11-017 | Church Disclaimer — In-App Footer and Marketing Materials | ✅ Done | PR #964 |
| M11-018 | Trademark Filing — USPTO Registration for "GospeLib" | ✅ Done | Filed 2026-03-20, Serial No. 99715386, 3 classes (9/41/42), $1,050. Awaiting examination. |
Progress: 15 Done · 3 Partial (83%)
Explicit Deferrals
The following workspace components are not in MVP scope and are intentionally deferred:
| Component | Deferral Reason |
|---|
Mobile app (apps/mobile) | MVP is web-only per MVP.md § Platform. Expo shell and navigation are scaffolded for post-launch. |
Admin app (apps/admin) | No admin features in MVP scope. Dashboard skeleton exists for post-launch operational tooling. |
Notifications service (services/notifications) | Redis Streams consumer and push/email stubs are scaffolded. Full implementation deferred to post-MVP when user engagement features are prioritized. |
Current State → First Steps
Context for understanding where the codebase starts and what has been built by M11:
Note (2026-06-12): The "starting conditions" below described the initial scaffolded state at project kickoff. The codebase has since progressed to 91% overall milestone completion with fully implemented services, packages, tests, and GUI components.
The codebase was initially fully scaffolded with zero business logic implemented. Key starting conditions at project kickoff:
- Monorepo tooling: Nx, pnpm workspaces, CI pipeline, Docker Compose, commitlint, Release Please — all functional
- All services: Health-only stubs (
/health, /ready). Go services were identical boilerplate; Python services had empty sub-packages
- Ingest service: Stub files (models, pipelines, DB layer) — all
NotImplementedError or # TODO
- TypeScript apps: "Coming soon" placeholders. No route groups, no components, no data fetching
- Packages: Empty barrels (
types had empty interfaces, sdk returned {}, config had empty Zod schema)
- Corpus data: Complete across all 7 schema families (~966 files, ~215 MB)
- Infrastructure: Docker Compose functional (4 data stores). K8s base manifests existed. Terraform modules were stubs.
- Tests: Zero implemented
- OpenAPI specs: None generated
By M11, all of the above should be fully implemented through milestones M00–M10. M11 focuses on production hardening, polish, and launch readiness — not new feature development.
Issue Dependency Graph
M11-001 ──► M11-002
M11-001 ──► M11-009
M11-003 ──► M11-004
M11-003 ──► M11-007
M11-010 ──► M11-011
M11-010 ──► M11-012
M11-010 ──► M11-013
M11-010 ──► M11-014
M11-011 ──► M11-013
M11-015 ──► M11-017
M11-016 ──► M11-017
M11-005 (independent)
M11-006 (independent)
M11-008 (independent)
M11-018 (independent)
Legend: A ──► B means A blocks B (B is blocked by A)
Document References
| Doc | Contains | Use When Writing Stories For |
|---|
| MVP.md | Feature scope, tier breakdown, success criteria, budget | Acceptance criteria, scope boundaries |
| TECH-SPEC.md | Architecture, service boundaries, data stores, API catalog | Technical implementation details |
| GOSPELIB-SCHEMAS.md | All 7 schema families, node/edge types, validation rules | Data models, Pydantic models, graph schema |
GOSPELIB-INGEST-SPEC.md | 7-stage pipeline, Cypher templates, batch strategy, CLI | Ingest pipeline stories |
| DESIGN-SYSTEM.md | Visual identity, component catalog, reader modes, tokens | UI component stories |
| DESIGN-SYSTEM.md §§ 13, 21–23 | Footnotes (§13), subscription boundaries (§21), sharing (§22), onboarding (§23) | UX flow stories |
| Deployment & Operations | Environments, K8s, CI/CD, migrations, secrets, DR | Infrastructure and deployment stories |
| REPO-MAP.md | Directory structure, naming conventions, dependency rules | All stories (coding standards) |
| business/LEGAL.md | Legal compliance, church disclaimer, trademark | Legal stories |
| business/POLICY-TERMS.md | Privacy policy, terms of service drafts | Legal stories |
Additional Spec References for M11
Sprint Mapping
| Sprint | Weeks | Primary Focus |
|---|
| S16 | 33–34 | CFM integration (M10 overlap), scripture card sharing, free trial flow |
| S17 | 35–36 | Onboarding, production deploy, monitoring dashboards, performance audit |
| S18 | 37–38 | Production polish, legal finalization, backup procedures, launch |
Sprint Load Warnings
No specific sprint load warnings from the plan target S16–S18. However:
- S17–S18 are the final sprints before production launch. Scope discipline is critical — any incomplete P2/P3 work must be cut, not squeezed in.
- Production deployment (infrastructure epic) is complex and involves EKS + RDS + ElastiCache provisioning, CD pipeline activation, and monitoring setup. Allow buffer.
- Legal work (attorney review of privacy policy and ToS) has external dependencies and lead times. Start early.
Release Info
| Release | Tag | Trigger | Contains |
|---|
v1.0.0 | web/v1.0.0, all services v1.0.0 | M11 complete | Production launch |
Tags follow <component>/v<semver> per release-please-config.json.
Note: This is the production release. All services get v1.0.0 tags. This is the first non-alpha release.
Relevant Risks
| Risk | Impact | Mitigation |
|---|
| Solo founder velocity | 38-week plan too aggressive | Founding users at Week 22 provide feedback before full scope; cut P3 scope if needed |
| Missing specification documents | DESIGN-SYSTEM.A1.md doesn't exist (referenced by M10/M11 UX flows) | Write DESIGN-SYSTEM.A1.md before P3 or merge content into DESIGN-SYSTEM.md |
| Clerk/Stripe integration complexity | Delays auth + billing (upstream dependency) | Start integration in parallel with reader; use sandbox environments early |
Cross-Cutting Concerns
Testing
Documentation
| Doc | Update Trigger |
|---|
| Deployment Overview | M11 — document production deploy |
| API OpenAPI specs | Final audit of all service specs |
| ADRs | Production architecture decisions, monitoring strategy |
CI/CD
| Addition | Phase | Detail |
|---|
| Production CD pipeline | P3 | Release tag → approval gate → deploy (activated in M11) |
| E2E tests | P3 | Playwright E2E tests for critical user journeys |
Dependencies
Upstream (what M11 needs)
| Dependency | Milestone | Detail |
|---|
| All milestones M00–M10 | M00–M10 | All features and services must be complete and deployed to staging |
| Billing operational | M10 | Subscription flow must work before production launch |
| Staging environment proven | M05 | Production config based on staging patterns |
| Legal review complete | External | Attorney review of privacy policy and ToS has external lead time |
Downstream (what depends on M11)
| Dependent | Detail |
|---|
| Post-MVP mobile app | apps/mobile scaffolded but not in MVP scope; depends on v1.0.0 API stability |
| Post-MVP admin dashboard | apps/admin scaffolded; depends on production operational insights |
| Post-MVP notifications | services/notifications scaffolded; depends on user engagement data from v1.0.0 |
Summary
| Metric | Count |
|---|
| Total Issues | 18 |
| Sub-Issues | 0 |
| Total Estimate (pts) | 95 |
| Sprints | S16–S18 |
| Dependencies (blocking) | 11 |
| Dependencies (blocked by) | 11 |