103 lines
No EOL
5 KiB
JSON
103 lines
No EOL
5 KiB
JSON
{
|
|
"phase": 1,
|
|
"phaseLabel": "Build Production-Grade Product",
|
|
"status": "launch-ready",
|
|
"product": "DocFast \u2014 HTML/Markdown to PDF API",
|
|
"currentPriority": "v0.4.0 deployed. Free tier removed, public demo endpoint live. Focus on growth.",
|
|
"ownerDirectives_PRIORITY": "Process these IN ORDER. Do not skip.",
|
|
"ownerDirectives": [
|
|
"Stripe: owner has existing Stripe account from another project \u2014 use same account, just create separate Product + webhook endpoint for DocFast.",
|
|
"Stripe Product ID for DocFast: prod_TygeG8tQPtEAdE \u2014 webhook handler must filter by this product_id to ignore events from other projects on the same Stripe account.",
|
|
"OFF-SITE BACKUPS: BorgBackup installed and running locally. Need Hetzner Storage Box for true off-site. Ask investor to provision one (~\u20ac3/mo for 100GB).",
|
|
"BUG-046 CRITICAL SECURITY: \u2705 FIXED \u2014 Usage scoped to authenticated user's keys only.",
|
|
"BUG-047: \u2705 FIXED \u2014 Copy button added to Pro key success page.",
|
|
"BUG-048: \u2705 FIXED \u2014 Change email links fixed.",
|
|
"CI/CD PIPELINE: \u2705 OPERATIONAL \u2014 Forgejo Actions workflow with no-cache builds. Push main\u2192staging, tag v*\u2192prod.",
|
|
"REPRODUCIBLE INFRASTRUCTURE: \u2705 DONE.",
|
|
"PRO PLAN LIMITS: \u2705 DONE \u2014 5,000 PDFs/month at \u20ac9/mo. Landing page, JSON-LD, Stripe all consistent.",
|
|
"STATUS PAGE: \u2705 DONE \u2014 Styled /status page live.",
|
|
"SUPPORT EMAIL LIVE: \u2705 DONE \u2014 support@docfast.dev in FreeScout.",
|
|
"BUG-049 HIGH: \u2705 FIXED \u2014 Stripe invoicing enabled.",
|
|
"WEBSITE TEMPLATING: \u2705 DONE.",
|
|
"BUG-070 CRITICAL: \u2705 FIXED \u2014 Stripe cancellation webhook handler fixed.",
|
|
"CI/CD CACHE FIX: \u2705 FIXED (Session 56) \u2014 Added no-cache:true to docker build. Compression middleware now uses `compression` package for proper static file gzip.",
|
|
"FREE TIER REMOVED (v0.4.0): Demo endpoint at /v1/demo/html and /v1/demo/markdown. 5 req/hr/IP, watermarked. No signup needed.",
|
|
"IDEA — CLIENT LIBRARIES: Build official SDK/libraries for popular platforms (Node.js, Python, Go, PHP, Ruby, etc.) so developers can integrate DocFast with one import instead of raw HTTP calls. Lowers friction, increases adoption. Plan and prioritize when ready."
|
|
],
|
|
"launchChecklist": {
|
|
"emailVerificationReal": true,
|
|
"smtpWorking": true,
|
|
"dnsRecordsLive": true,
|
|
"userAccountSystem": true,
|
|
"proPaymentFlow": true,
|
|
"proPaymentFlowNote": "E2E tested 2026-02-16. Payment + Pro key provisioning works.",
|
|
"postgresqlMigration": true,
|
|
"keyRecovery": true,
|
|
"databaseBackups": true,
|
|
"databaseBackupsNote": "CNPG WAL archiving + MinIO in-cluster. Daily scheduled backup at 03:00 UTC, 7-day retention.",
|
|
"loadTested": true,
|
|
"rateLimitsDataBacked": true,
|
|
"landingPageHonest": true,
|
|
"legalPages": true,
|
|
"legalPagesNote": "Impressum, Privacy Policy, Terms of Service \u2014 all live",
|
|
"euHostingMarketed": true,
|
|
"jsDisabledInPdf": true,
|
|
"zeroConsoleErrors": true,
|
|
"mobileResponsive": true,
|
|
"securityAuditPassed": true,
|
|
"healthEndpointComplete": true,
|
|
"cicdPipeline": true,
|
|
"cicdPipelineNote": "Forgejo Actions with no-cache builds. Push main\u2192staging, tag v*\u2192prod. Fixed session 56.",
|
|
"reproducibleInfra": true,
|
|
"proLimitsSet": true,
|
|
"proLimitsNote": "5,000 PDFs/month for Pro. Enforced in usage middleware.",
|
|
"websiteTemplating": true,
|
|
"supportEmailLive": true,
|
|
"statusPage": true,
|
|
"stripeInvoices": true,
|
|
"stripeWebhookEvents": true,
|
|
"emailDelivery": true,
|
|
"compressionWorking": true,
|
|
"compressionNote": "Gzip via `compression` package. Verified on production 2026-02-19.",
|
|
"freeAccountsRemoved": true,
|
|
"demoEndpointLive": true
|
|
},
|
|
"loadTestResults": {
|
|
"k3s_current": {
|
|
"sequential": "~0.2s avg per PDF (10x improvement over Docker)",
|
|
"p95": "0.235s",
|
|
"concurrent": "2 concurrent at ~0.27s, 15-worker pool",
|
|
"largePayload": "1.65s for 104KB/3-page PDF",
|
|
"server": "K3s cluster, 2x CAX11 workers"
|
|
}
|
|
},
|
|
"infrastructure": {
|
|
"domain": "docfast.dev",
|
|
"url": "https://docfast.dev",
|
|
"k3s": "3-node K3s cluster: k3s-mgr, k3s-w1, k3s-w2",
|
|
"loadBalancer": "Hetzner LB 46.225.37.135",
|
|
"email": "noreply@docfast.dev",
|
|
"supportEmail": "support@docfast.dev (FreeScout)",
|
|
"backups": "CNPG WAL archiving + MinIO. Daily 03:00 UTC, 7-day retention.",
|
|
"smtp": "mail.cloonar.com:587 \u2014 MANAGED BY CLOONAR. DO NOT DEPLOY OWN MAIL SERVER. Verified working 2026-02-19."
|
|
},
|
|
"credentials": {
|
|
"file": "/home/openclaw/.openclaw/workspace/.credentials/docfast.env",
|
|
"keys": [
|
|
"HETZNER_API_TOKEN",
|
|
"STRIPE_SECRET_KEY",
|
|
"STRIPE_WEBHOOK_SECRET"
|
|
],
|
|
"NEVER_READ_DIRECTLY": true
|
|
},
|
|
"openBugs": {
|
|
"CRITICAL": [],
|
|
"HIGH": [],
|
|
"MEDIUM": [],
|
|
"LOW": [],
|
|
"note": "All clear. SMTP is mail.cloonar.com:587 \u2014 tested and verified working."
|
|
},
|
|
"blockers": [],
|
|
"startDate": "2026-02-14",
|
|
"sessionCount": 66
|
|
} |