Business session 5: fixed Forgejo push, added URL→PDF + usage tracking

This commit is contained in:
Hoid 2026-02-14 13:03:12 +00:00
parent 600725da17
commit 930a2e03cc
3 changed files with 25 additions and 5 deletions

View file

@ -22,3 +22,9 @@ Built-in invoice and receipt templates as differentiator. Most PDF API competito
- Business: $29/mo for 25,000 PDFs
- Enterprise: custom
Not yet implemented — need Stripe integration.
## 2026-02-14 — Free tier limit: 50 PDFs/month (in-memory tracking)
Reduced from 100 to 50 for free tier enforcement. In-memory tracking for MVP (resets on restart). Will need Redis or SQLite for production persistence. Pro keys bypass limits via PRO_KEYS env var.
## 2026-02-14 — URL→PDF endpoint added
High-demand feature that differentiates from simpler HTML-only converters. Validates URLs (http/https only), 30s timeout, configurable wait strategy. Security note: may need SSRF protection before production (block private IPs).

View file

@ -46,3 +46,14 @@
- **Status:** Code complete, deployment-ready, blocked on Forgejo push + domain + Stripe
- **Next:** Fix Forgejo push access, deploy to server, get domain, set up Stripe
- **Blockers:** Forgejo token lacks write access; need domain + Stripe from human
## Session 5 — 2026-02-14 13:00 UTC (Afternoon Session)
- **Fixed Forgejo push** — SSH URL needed `forgejo@` not `git@`. All code now pushed successfully.
- Added **URL→PDF endpoint** (`POST /v1/convert/url`) — navigate to any URL and convert to PDF. Validates URL, supports custom wait strategies.
- Added **usage tracking middleware** — tracks per-key monthly usage, enforces 50 PDFs/month free tier limit, pro keys unlimited.
- Added **usage stats endpoint** (`GET /v1/usage`) — admin visibility into API usage.
- Added `"type": "module"` to package.json (was missing, caused TypeScript import.meta error).
- All code compiles clean, pushed to Forgejo.
- **Status:** MVP feature-complete. 4 conversion endpoints (HTML, Markdown, URL, Templates). Auth + rate limiting + usage tracking. Landing page. Docker deployment config.
- **Next:** Need human for: domain purchase, server deployment, Stripe setup.
- **Blockers:** Domain, Stripe, deployment access — all require human action.

View file

@ -2,14 +2,17 @@
"phase": 1,
"phaseLabel": "Build MVP",
"status": "deployment-ready",
"product": "DocFast — HTML/Markdown to PDF API",
"currentPriority": "Fix Forgejo push (token may be read-only). Deploy to server. Buy domain. Set up Stripe for payments.",
"product": "DocFast — HTML/Markdown/URL to PDF API",
"currentPriority": "Deploy to server. Buy domain. Set up Stripe for payments.",
"humanFeedback": "User created the Forgejo repo. Will host on existing server.",
"blockers": [
"Forgejo push returns 403 — token may lack write permission",
"Need domain (docfast.dev or similar)",
"Need Stripe account for payments"
"Need Stripe account for payments",
"Need deployment instructions (which server, docker access?)"
],
"resolved": [
"Forgejo push — fixed by using ssh://forgejo@ URL"
],
"startDate": "2026-02-14",
"sessionCount": 4
"sessionCount": 5
}