Goal
Ship one more product from the vendor list in s8, under two constraints: English-first, and light on the USD 5 Cloudflare plan [s8].
Build
- Two candidates audited first — minvoice vs minshop. Both passed English-first with zero CJK, so the decision came down to deploy cost [s8].
- Minvoice won: one D1 database and one daily cron, against minshop's D1 plus two R2 buckets, three ratelimiter namespaces, and a 5-minute cron (288 runs a day). A store with no payment rail duplicated edgeKey's role besides [s8].
- Deployed with five D1 migrations applied, a Worker on a single daily cron, and a generated admin password stored with the campaign credentials [s8].
Verification
- GET /health returns 200 — the probe touches both Worker and D1, the strongest health check in the fleet [s8].
- Admin login serves 200; a correct password authenticates into the first-run setup page [s8].
- Zero CJK characters in README, source, and public assets [s8].