A full-stack AI book co-authoring web app where users generate and edit complete books with Claude as the writing partner. Credit-based usage, a secure access-code redemption API, manual payment via Fidelity Bank with WhatsApp proof submission, and a standalone offline admin tool for the operator.
Users describe the book they want, and Claude drafts it chapter by chapter. Each chapter can be regenerated for 1 credit or kept as-is. A live credits badge in the nav, a 3-day expiry countdown on each book, and an AI coach for tone and pacing notes — all wrapped in a single-file vanilla JS frontend talking to a tiny Vercel serverless proxy.

Users pay manually via Fidelity Bank transfer and submit proof on WhatsApp. The operator generates an access code from a standalone offline admin tool; the user redeems it through a secure /api/redeem.js route using the Supabase service-role key. Credits drop into the account; the badge in the nav updates instantly.

Many Nigerian creators want to publish but can't justify hundreds of dollars on a typical book-writing SaaS — and can't always get card processors to work reliably. We needed an AI book co-author that met the local payment reality: manual bank transfer, proof-of-payment over WhatsApp, and an operator who could fulfill orders without writing a single line of code.
And it had to feel reliable. Books expire after 3 days. Sessions log out after 10 minutes of inactivity. Credits reconcile precisely. None of that's allowed to feel cheap.
A single-file vanilla JS frontend talks to Vercel serverless functions acting as a thin Claude API proxy — keeping the API key off the client, and giving us a place to enforce credit deductions atomically. Supabase handles auth, profiles, books, and the credit ledger. A live credits badge in the nav reflects the current balance in real time.
The payment loop is the elegant part: users transfer to Fidelity Bank and send proof on WhatsApp. The operator opens a standalone offline admin tool (a single HTML file with password auth, live DB stats, and one-click code generation), creates a code, and sends it back. The user pastes it; /api/redeem.js validates it server-side with the Supabase service-role key, credits land, badge updates.