Why I rebuilt it
Grav-IT had been running on WordPress + WooCommerce since 2019, but the only thing WooCommerce was doing was generating invoice URLs to email clients. Everything else WordPress brought along — auto-updates, theme drift, plugin sprawl, hosting fees — was rent paid for software I wasn’t using.
What I shipped
- A static Astro site that builds to a directory and deploys to Cloudflare Pages.
- Per-customer invoice pages addressed by unguessable slug, with an optional per-invoice email-gate for ones that warrant an extra layer.
- Cloudflare Turnstile gating every form action — contact, donation, and the invoice “Pay” button — invisible most of the time, no proof-of-work CPU cost.
- Embedded Stripe Checkout right on the invoice page — no redirect to a hosted payment page, no leaving the site.
- A donation page with a $5 floor and per-IP rate limiting on the checkout endpoint to make it a poor card-testing target.
What it costs to run
$0/month. Cloudflare Pages free tier covers the static hosting and the 100k/day Functions quota I’ll never hit. Stripe takes its cut on actual payments, same as before.