# Product Roadmap ## Phase 0 — Foundation (complete) **Status:** Done - Barebone MVP: flat inbox pool, dispatcher, rescuer, AI, REST API - Prisma 7 + SQLite - OpenRouter AI integration - Documentation scaffold (this folder) --- ## Phase 1 — Production warmup core (8–10 weeks) — **Done** **Goal:** Reliable multi-primary warmup with recipes, roles, and stats. Self-hosted backend only. ### Sprint 1.1 — Domain model & roles (2 weeks) — **Done** - Workspace, `WarmupCampaign`, satellite assignments, Grow recipe, AI validator - Campaign API; legacy dispatcher gated when campaigns exist **Deliverable:** API to create campaign with satellites; Grow schedule + preview. ### Sprint 1.2 + 1.3 — Recipes + live dispatcher (combined) — **Done** - All 4 recipes: Grow, Flat, Randomized, Custom - Campaign dispatcher (satellite → primary), send windows, jitter - Day rollover, maintenance at 20%, campaign-aware rescuer **Deliverable:** End-to-end warmup with any recipe; emails actually send. ### Sprint 1.2 — Recipe engine (original scope, absorbed) - ~~Implement Grow, Flat, Randomized, Custom~~ → shipped in 1.2+1.3 combined sprint - Grow + preview delivered in 1.1; remainder completed in 1.2+1.3 ### Sprint 1.3 — Campaign dispatcher (original scope, absorbed) - ~~Role-aware send, jitter, rollover~~ → shipped in 1.2+1.3 combined sprint ### Sprint 1.4 — Reply rate engine (1 week) — **Done** - Probabilistic 30% default replies, `engaged_no_reply` status - Daily reply budget tracking, spam counter increments - See [`docs/sprints/sprint-1.4.md`](sprints/sprint-1.4.md) **Deliverable:** Reply rate within ±5% of target over 7 days. ### Sprint 1.5 — Stats API (1 week) — **Done** - `DailyStat` rollups, stats endpoints, workspace overview - On-track calculation, compliance API (warn-only DNS) - See [`docs/sprints/sprint-1.5.md`](sprints/sprint-1.5.md) **Deliverable:** JSON stats matching manual log counts. ### Sprint 1.6 — AI content validator (1 week) — **Done (merged into 1.1)** - Placeholder regex rejection, spam word tiers, regenerate loop - Delivered with Sprint 1.1 --- ## Phase 2 — Operator experience (6–8 weeks) — **Done** **Goal:** Web UI + hardening for FillCare daily use. ### Sprint 2.0 — Monorepo foundation — **Done** - npm workspaces (`apps/api`, `apps/web`, `packages/shared`) - Dev CORS + production static SPA hosting - See [`docs/sprints/sprint-2.0.md`](sprints/sprint-2.0.md) ### Sprint 2.1 — Web dashboard MVP (3 weeks) — **Done** - Vite + React + shadcn operator dashboard - Dashboard, campaign wizard, campaign detail, mailboxes, settings - See [`docs/sprints/sprint-2.1.md`](sprints/sprint-2.1.md) ### Sprint 2.2 — Spam rescue hardening (2 weeks) — **Done** - Per-UID log matching - Placement tracking - Folder auto-discovery - Auto-pause on spam thresholds - See [`docs/sprints/sprint-2.2.md`](sprints/sprint-2.2.md) ### Sprint 2.3 — DNS & health checks (1 week) — **Done** - SPF/DKIM/DMARC preflight - Provider presets (Gmail/Yahoo/Outlook) - See [`docs/sprints/sprint-2.3.md`](sprints/sprint-2.3.md) ### Sprint 2.4 — Job queue (2 weeks) — **Done** - SQLite-backed send queue with idempotency - Job run log + manual triggers - See [`docs/sprints/sprint-2.4.md`](sprints/sprint-2.4.md) **FillCare QA:** [`docs/fillcare-qa-playbook.md`](fillcare-qa-playbook.md) --- ## Phase 3 — SaaS readiness (8–12 weeks) **Goal:** Multi-tenant, billing, optional integrations. - Postgres migration path - Workspace + JWT auth - Stripe billing per primary - Webhooks (campaign events) - Google Postmaster integration - Session-based web auth - Optional peer network (beta) --- ## Phase 4 — Scale & ecosystem (ongoing) - Instantly / Smartlead sync - Inbox placement tests - Team roles - White-label - Mobile notifications --- ## Milestone timeline (visual) ``` 2026 Q2 [Phase 1: Core backend ██████████] 2026 Q3 [Phase 2: Web UI + hardening ░░░░████████] 2026 Q4 [Phase 3: SaaS beta ░░░░░░░░████] ``` --- ## FillCare-specific milestone | Week | Milestone | |------|-----------| | 1 | hello@fillcareapp.com campaign created, 4 satellites assigned | | 2 | Grow recipe running, stats visible via API | | 4 | Web dashboard live | | 6 | 30-day warmup complete, inbox rate ≥95% | | 8 | Maintenance mode + cold email tool connected | --- ## Definition of done (per phase) ### Phase 1 done when - [x] 2+ primaries warming concurrently - [x] All 4 recipes pass integration tests - [x] Stats API accurate - [x] Reply rate configurable and honored - [x] AI validator blocks placeholders - [x] ESP compliance checklist passable (`GET /api/campaigns/:id/compliance`) ### Phase 2 done when - [x] Operator never needs curl for daily use - [x] Auto-pause tested on simulated spam spike (unit threshold tests + rescuer integration path) - [ ] FillCare running 30-day campaign via UI (operator acceptance — see FillCare QA playbook) - [x] Dashboard usable on phone (375px) for monitoring; setup flows work on tablet+ ### Phase 3 done when - [ ] Second customer onboarded in isolated workspace - [ ] Billing active - [ ] Security review complete