warmbox/docs/16-roadmap.md

172 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 (810 weeks)
**Goal:** Reliable multi-primary warmup with recipes, roles, and stats. Self-hosted backend only.
### Sprint 1.1 — Domain model & roles (2 weeks)
- Add `role` to mailbox (primary / satellite)
- Add `WarmupCampaign` entity
- Campaign ↔ satellite assignments
- Migrate existing inboxes
- Deprecate flat random pairing
**Deliverable:** API to create campaign with satellites; no sends yet.
### Sprint 1.2 — Recipe engine (2 weeks)
- Implement Grow, Flat, Randomized, Custom
- `DailySchedule` generation
- Duration 3045 days, min/max validation
- 48h volume cap
- `POST /recipes/preview`
**Deliverable:** Unit-tested schedule for all 4 recipes.
### Sprint 1.3 — Campaign dispatcher (2 weeks)
- Role-aware send: satellite → primary only
- Reply path: primary → satellite
- Jitter + send windows
- Campaign day rollover
- Idempotency keys
**Deliverable:** End-to-end warmup with one primary + 4 satellites.
### Sprint 1.4 — Reply rate engine (1 week)
- Probabilistic 30% default replies
- `engaged_no_reply` status
- Daily reply budget tracking
**Deliverable:** Reply rate within ±5% of target over 7 days.
### Sprint 1.5 — Stats API (1 week)
- `DailyStat` rollups
- `/campaigns/:id/stats/today` and `/stats/daily`
- On-track calculation
**Deliverable:** JSON stats matching manual log counts.
### Sprint 1.6 — AI content validator (1 week)
- Placeholder regex rejection
- Spam word tiers
- Regenerate loop (max 3)
- Mailbox profile (name, company)
**Deliverable:** Zero placeholder emails in 100-test run.
---
## Phase 2 — Operator experience (68 weeks)
**Goal:** Web UI + hardening for FillCare daily use.
### Sprint 2.1 — Web dashboard MVP (3 weeks)
- Vite + React + shadcn
- Dashboard, campaign wizard, campaign detail
- Mailbox add/test flows
### Sprint 2.2 — Spam rescue hardening (2 weeks)
- Per-UID log matching
- Placement tracking
- Folder auto-discovery
- Auto-pause on spam thresholds
### Sprint 2.3 — DNS & health checks (1 week)
- SPF/DKIM/DMARC preflight
- Provider presets (Gmail/Yahoo/Outlook)
### Sprint 2.4 — Job queue (2 weeks)
- Replace batch cron with queued sends
- Manual job triggers for dev
- Better overlap protection
---
## Phase 3 — SaaS readiness (812 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
- [ ] 2+ primaries warming concurrently
- [ ] All 4 recipes pass integration tests
- [ ] Stats API accurate
- [ ] Reply rate configurable and honored
- [ ] AI validator blocks placeholders
- [ ] ESP compliance checklist passable
### Phase 2 done when
- [ ] Operator never needs curl for daily use
- [ ] Auto-pause tested on simulated spam spike
- [ ] FillCare running 30-day campaign via UI
### Phase 3 done when
- [ ] Second customer onboarded in isolated workspace
- [ ] Billing active
- [ ] Security review complete