172 lines
4 KiB
Markdown
172 lines
4 KiB
Markdown
# 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)
|
||
|
||
**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 30–45 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 (6–8 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 (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
|
||
|
||
- [ ] 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
|