# LLMHosts.com — A→Z Launch Plan

## Status: Ready for E2E Verification

All core features built and deployed. Both previous blockers (Stripe + TestPyPI) resolved. Now entering systematic verification and launch prep phase.

---

## Phase 1: End-to-End Verification (2-3 hours)

### Test Flows (create GitHub issues for each)

#### Flow 1: User Registration & Onboarding
- [ ] Visit https://llmhosts.com
- [ ] Click "Get Started" or "Sign Up"
- [ ] Register with email + password
- [ ] Verify email confirmation (or confirm it's bypassed)
- [ ] Land in `/dashboard` with empty state
- [ ] Verify sidebar shows user email and "Free" plan

**GitHub Issue**: `E2E: User registration and onboarding flow`

#### Flow 2: Cost Entry Management
- [ ] Navigate to `/dashboard/add`
- [ ] Add first cost entry (e.g., OpenAI $50, current month, API usage)
- [ ] Verify redirect to `/dashboard/spending`
- [ ] Verify entry appears in spending table
- [ ] Navigate to `/dashboard` (Overview)
- [ ] Verify entry shows in "Recent Entries" and "This Month" stat
- [ ] Navigate to `/dashboard/projections`
- [ ] Verify projections update with real data
- [ ] Navigate to `/dashboard/achievements`
- [ ] Verify "Savings Total" updates
- [ ] Go back to `/dashboard/spending`
- [ ] Delete the entry
- [ ] Verify it disappears from all pages

**GitHub Issue**: `E2E: Cost entry full lifecycle (add, view, delete)`

#### Flow 3: API Key Management
- [ ] Navigate to `/dashboard/keys`
- [ ] Create first API key (give it a label like "Test Key 1")
- [ ] Verify key shown with `lh_sk_...` prefix (full key only on creation)
- [ ] Copy the full key
- [ ] Create second API key
- [ ] Verify 2 keys listed
- [ ] Try to create 3rd key
- [ ] Verify blocked with "Free plan limited to 2 API keys" message
- [ ] Revoke one key
- [ ] Verify it shows "Revoked" status
- [ ] Verify can create 3rd key now (2 active + 1 revoked = allowed)

**GitHub Issue**: `E2E: API key management with plan limits`

#### Flow 4: Stripe Checkout (Test Mode)
- [ ] Navigate to `/dashboard/settings`
- [ ] Scroll to "Plan" section
- [ ] Click "Upgrade" on Pro plan
- [ ] Verify redirects to Stripe checkout (`https://checkout.stripe.com/...`)
- [ ] Use test card: `4242 4242 4242 4242`, any future date, any CVC
- [ ] Complete checkout
- [ ] Verify redirects back to `/dashboard?checkout=success`
- [ ] Verify plan shows "Pro" in sidebar
- [ ] Verify settings page shows "Current" badge on Pro plan
- [ ] Navigate to `/dashboard/keys`
- [ ] Verify can now create up to 10 API keys
- [ ] Create 3 more keys (total 5)
- [ ] Verify all 5 shown

**GitHub Issue**: `E2E: Stripe checkout and plan upgrade (test mode)`

#### Flow 5: Billing Portal
- [ ] Navigate to `/dashboard/settings`
- [ ] Click "Manage Billing" button (only visible for paid users)
- [ ] Verify redirects to Stripe billing portal
- [ ] Verify subscription shows Pro plan at $29/mo
- [ ] Cancel subscription in billing portal
- [ ] Verify webhook fires and plan downgrades to Free
- [ ] Navigate back to `/dashboard/settings`
- [ ] Verify plan shows "Free" again
- [ ] Navigate to `/dashboard/keys`
- [ ] Try to create 3rd key (should be blocked again)

**GitHub Issue**: `E2E: Stripe billing portal and subscription management`

#### Flow 6: LLMHost CLI Integration (if applicable)
- [ ] Install `llmhosts`: `pip install llmhosts` (or from TestPyPI: `pip install --extra-index-url https://test.pypi.org/simple/ llmhosts`)
- [ ] Run `llmhosts --version`
- [ ] Verify version shows `0.1.0`
- [ ] Run `llmhosts setup` (if wizard exists)
- [ ] Add one of the created API keys from dashboard
- [ ] Run `llmhosts serve`
- [ ] Verify proxy starts
- [ ] Make test request to `/v1/chat/completions` with API key
- [ ] Verify request succeeds (or fails gracefully if no backend configured)
- [ ] Stop server
- [ ] Uninstall for cleanup

**Automated coverage**: `tests/e2e/cli_install.sh` implements the above. Run with TestPyPI: `TESTPYPI=1 ./tests/e2e/cli_install.sh` (from repo root). CI job `e2e-cli` runs this in Docker on every push/PR.

**GitHub Issue**: `E2E: CLI installation and API key integration`

---

## Phase 2: GitHub Organization (1 hour)

### Milestones to Create
1. **MVP Launch v0.1.0** (due: this week)
   - All E2E flows passing
   - Documentation complete
   - Ready for soft launch (TestPyPI + Stripe test mode)

2. **Production Ready v0.2.0** (due: 1-2 weeks)
   - Real PyPI publish
   - Stripe live mode
   - Email verification working
   - SSL/security audit complete

3. **Scale & Polish v0.3.0** (due: 1 month)
   - Multi-region support
   - Kubernetes deployment
   - Advanced features (Hive Mode, RBAC, etc.)

### Issue Labels to Create
- `P0-blocker` — Blocks launch
- `P1-critical` — Should fix before launch
- `P2-important` — Fix soon after launch
- `P3-nice-to-have` — Future improvement
- `e2e-test` — End-to-end test verification
- `documentation` — Docs, README, guides
- `frontend` — Next.js frontend work
- `backend` — Python proxy work
- `infrastructure` — Docker, deployment, CI/CD
- `stripe` — Billing integration
- `pypi` — Package publishing

### Issues to Create
Based on current session tracker and this plan:

1. `E2E: User registration and onboarding flow` (P0, e2e-test, frontend)
2. `E2E: Cost entry full lifecycle (add, view, delete)` (P0, e2e-test, frontend)
3. `E2E: API key management with plan limits` (P0, e2e-test, frontend)
4. `E2E: Stripe checkout and plan upgrade (test mode)` (P0, e2e-test, frontend, stripe)
5. `E2E: Stripe billing portal and subscription management` (P0, e2e-test, frontend, stripe)
6. `E2E: CLI installation and API key integration` (P1, e2e-test, backend)
7. `Audit README.md for accuracy` (P1, documentation)
8. `Update CHANGELOG.md with v0.1.0 release notes` (P1, documentation)
9. `Verify email confirmation flow` (P1, frontend)
10. `Add Recharts to Overview page` (P2, frontend)
11. `Add period filter to Spending page` (P2, frontend)
12. `Write integration tests for frontend API routes` (P2, frontend)
13. `Publish to real PyPI` (P1, pypi) — blocked until E2E passes
14. `Switch Stripe to live mode` (P1, stripe) — blocked until E2E passes
15. `Create CONTRIBUTING.md` (P2, documentation)
16. `Set up GitHub Actions for CI` (P2, infrastructure)
17. `Create Docker Hub automated builds` (P2, infrastructure)
18. `Write deployment guide for DigitalOcean` (P2, documentation)
19. `Write deployment guide for AWS` (P2, documentation)
20. `Add OpenAPI spec generation` (P3, backend)

---

## Phase 3: Documentation Audit (1 hour)

### Files to Review and Update

#### `/README.md`
- [ ] Installation instructions accurate?
- [ ] Screenshots up to date?
- [ ] Feature list complete?
- [ ] Links working?
- [ ] Badges (build status, version, license) accurate?

#### `/CHANGELOG.md`
- [ ] v0.1.0 release notes drafted
- [ ] All features since last version listed
- [ ] Breaking changes noted
- [ ] Contributors acknowledged

#### `/CONTRIBUTING.md`
- [ ] Does it exist? If not, create it
- [ ] Development setup instructions
- [ ] PR guidelines
- [ ] Code style guide
- [ ] Testing requirements

#### `/docs/`
- [ ] Deployment guides accurate?
- [ ] Architecture docs up to date?
- [ ] API docs match implementation?
- [ ] Roadmap reflects current state?

#### `/frontend/README.md`
- [ ] Next.js setup instructions
- [ ] Environment variables documented
- [ ] Build process explained

#### `/CLAUDE.md`
- [ ] Project state accurate?
- [ ] Latest session tracked?
- [ ] Open questions current?

---

## Phase 4: Launch Checklist (30 min)

### Pre-Launch Tasks
- [ ] All E2E flows pass
- [ ] No P0 or P1 issues open
- [ ] Documentation complete
- [ ] CHANGELOG.md finalized
- [ ] Git tag created: `v0.1.0`
- [ ] GitHub release drafted
- [ ] TestPyPI package verified
- [ ] Stripe test mode verified

### Soft Launch (TestPyPI + Stripe Test)
- [ ] Announce in Discord/Slack (if we have a community)
- [ ] Tweet from personal account
- [ ] Post in r/selfhosted (soft pitch)
- [ ] Invite 5-10 beta testers
- [ ] Monitor for bugs

### Production Launch Decision
After 3-7 days of soft launch:
- [ ] No critical bugs reported
- [ ] Stripe webhooks working reliably
- [ ] CLI package installs correctly
- [ ] User feedback positive

Then:
- [ ] Publish to real PyPI
- [ ] Switch Stripe to live mode
- [ ] Update all docs to production URLs
- [ ] Major announcement push

### Production Launch (Real PyPI + Stripe Live)
- [ ] Hacker News "Show HN" post
- [ ] Reddit r/selfhosted, r/LocalLLaMA, r/Python
- [ ] Product Hunt launch
- [ ] Twitter/X thread with demo video
- [ ] Update personal site/portfolio
- [ ] Email interested users from waiting list

---

## Phase 5: Post-Launch Monitoring (Ongoing)

### Metrics to Track
- [ ] User signups per day
- [ ] Conversion rate (free → paid)
- [ ] API key creation rate
- [ ] Cost entries added per user
- [ ] Stripe checkout abandonment rate
- [ ] Error rates (frontend + backend)
- [ ] Performance (page load times)

### Support Channels
- [ ] GitHub Issues for bugs
- [ ] GitHub Discussions for questions
- [ ] Discord/Slack for community (if we create one)
- [ ] Email for enterprise inquiries

---

## Risk Register

| Risk | Impact | Mitigation |
|------|--------|------------|
| Stripe webhook fails | High | Retry logic + alerting already built into webhook handler |
| Email verification broken | Medium | Check Auth.js config, test with real email |
| PyPI package doesn't install | High | Already verified on TestPyPI, dependency tree clean |
| GitHub account still flagged | Medium | Waiting on support; doesn't block soft launch |
| User data loss (SQLite) | Medium | Volume mount persists data; add backup script |
| SSL cert renewal fails | High | Traefik auto-renews; monitor cert expiry |

---

## Success Criteria

### Soft Launch (Week 1)
- ✅ 5+ users sign up
- ✅ 2+ users upgrade to paid plan (test mode)
- ✅ 0 critical bugs reported
- ✅ All core flows working

### Production Launch (Week 2-3)
- 🎯 50+ users sign up
- 🎯 5+ paying customers
- 🎯 100+ package downloads
- 🎯 Featured in at least one newsletter/blog

### Month 1
- 🎯 200+ users
- 🎯 20+ paying customers
- 🎯 $500+ MRR
- 🎯 5-star rating on Product Hunt (if launched there)

---

## Next Steps

**Immediate (Tonight/Tomorrow)**:
1. Create GitHub milestone `MVP Launch v0.1.0`
2. Create the 20 issues listed above
3. Run E2E Flow 1 (User Registration)
4. Run E2E Flow 2 (Cost Entry)
5. Document results in this file

**This Week**:
6. Complete all 6 E2E flows
7. Fix any blockers found
8. Update all documentation
9. Soft launch announcement

**Next Week**:
10. Monitor soft launch feedback
11. Fix any issues reported
12. Decide on production launch timing
13. Execute production launch plan
