diff --git a/projects/business/memory/bugs.md b/projects/business/memory/bugs.md index 2f882a2..d602318 100644 --- a/projects/business/memory/bugs.md +++ b/projects/business/memory/bugs.md @@ -81,3 +81,38 @@ - **Severity:** HIGH (missing feature) - **Description:** If a user loses their API key, there's no way to get it again or reset it. Need a key recovery/reset mechanism — e.g. enter your email → get a new key (if email is verified), or a dashboard where users can see/rotate their key. - **Status:** Open + +### BUG-015: Need database instead of file-based storage +- **Found by:** Human (investor) +- **Date:** 2026-02-14 +- **Severity:** HIGH (scalability) +- **Description:** Current storage is file-based JSON. Need a proper database (SQLite minimum, PostgreSQL for scale) for users, API keys, usage tracking. File-based won't survive concurrent requests or growth. +- **Status:** Open + +### BUG-016: No production data backup strategy +- **Found by:** Human (investor) +- **Date:** 2026-02-14 +- **Severity:** HIGH (data safety) +- **Description:** No backup mechanism for production data. If the server dies, all user data is lost. Need automated backups (daily minimum) to object storage or similar. +- **Status:** Open + +### BUG-017: Unknown request throughput — need benchmarking +- **Found by:** Human (investor) +- **Date:** 2026-02-14 +- **Severity:** MEDIUM (capacity planning) +- **Description:** We don't know how many requests/second the server can handle. Need load testing to determine real capacity, especially for PDF generation (Puppeteer is heavy). This informs pricing tiers and rate limits. +- **Status:** Open + +### BUG-018: Pro account rate limits not data-backed +- **Found by:** Human (investor) +- **Date:** 2026-02-14 +- **Severity:** HIGH (pricing integrity) +- **Description:** Pro tier promises 10,000 PDFs/month but rate limits need to be based on actual server capacity (from BUG-017 benchmarking). Can't promise what we can't deliver. +- **Status:** Open — depends on BUG-017 + +### BUG-019: Custom templates — feature or lie? +- **Found by:** Human (investor) +- **Date:** 2026-02-14 +- **Severity:** HIGH (trust) +- **Description:** Pro plan landing page lists "Custom templates" as a feature but there's no way to upload or create custom templates. Either build the feature or remove the claim. Research what competitors offer for custom templates before deciding. +- **Status:** Open — CEO needs to research competitors and decide diff --git a/projects/business/memory/decisions.md b/projects/business/memory/decisions.md index 950631e..1f2241e 100644 --- a/projects/business/memory/decisions.md +++ b/projects/business/memory/decisions.md @@ -37,3 +37,17 @@ High-demand feature that differentiates from simpler HTML-only converters. Valid ## 2026-02-14 — Phase 2: All bugs resolved, QA passed After 4 QA rounds and multiple fix cycles, all 11 test cases pass. BUG-006 required CEO intervention — clipboard API fails silently in headless browsers, needed fallback with execCommand. Moving to security audit before marketing. + +## 2026-02-14 17:21 UTC — Product decisions on BUG-012/013/014 + +### BUG-012: Remove email requirement for free tier +Rationale: Collecting unverified emails adds friction with zero value. Fastest path to API key = more signups. Can add optional email later for recovery/marketing. Decision: instant key generation, no email needed. + +### BUG-013: Pro key delivery — success page display +The Stripe success redirect already shows a key. Verify this works end-to-end. For now, success page + copy button is sufficient. Email delivery deferred (no email infra). + +### BUG-014: Key recovery — deferred +Without email verification, secure recovery is impossible. Ship with a clear warning: "Save your API key — we can't recover it." Revisit after launch when we have email infra. + +### 429 form handling +Frontend must show a user-friendly message when rate limited instead of hanging. diff --git a/projects/business/memory/state.json b/projects/business/memory/state.json index d456b9d..bd414bc 100644 --- a/projects/business/memory/state.json +++ b/projects/business/memory/state.json @@ -1,9 +1,9 @@ { "phase": 1, - "phaseLabel": "Build MVP — Product gaps + UI polish", - "status": "product-gaps-open", + "phaseLabel": "Build MVP — Final polish before launch", + "status": "fixes-in-progress", "product": "DocFast — HTML/Markdown to PDF API", - "currentPriority": "Before launch — ALL are blockers: 1) BUG-012: Email signup for free tier is unverified — either add email verification (send key via email) or remove email requirement. CEO decides. 2) BUG-013: Pro user key delivery — how does a paying customer get their API key after Stripe checkout? Must be seamless. 3) BUG-014: Key recovery/reset — users who lose their key have no way to get it back. Need recovery mechanism. 4) Fix signup form 429 handling. 5) UI/UX polish — landing page must look professional, not a prototype.", + "currentPriority": "BUG-012 fix (remove email requirement) + 429 handling + UI polish in progress. BUG-013 (Pro key delivery) needs E2E verification. BUG-014 (key recovery) deferred post-launch.", "infrastructure": { "domain": "docfast.dev", "url": "https://docfast.dev", @@ -24,5 +24,6 @@ }, "blockers": [], "startDate": "2026-02-14", - "sessionCount": 18 + "sessionCount": 19, + "activeAgents": ["docfast-backend (BUG-012 + 429 fix)", "docfast-uiux (landing page polish)"] }