The whole system is one Cloudflare Worker with a SQL database and an
object store attached. No servers to patch, no separate hosting bill,
and it runs close to the client wherever they are.
- Cloudflare Workers
- D1 (SQLite)
- R2 storage
- HTMLRewriter SSR
- pdf-lib
- Resend
- HMAC sessions
- ICS feed
The public gallery is server-rendered into the page by streaming the
database rows through an HTML rewriter, so it is fast and indexable
rather than a client-side fetch. Uploads are compressed on the client
before they ever reach storage. Sessions are signed rather than stored,
and repeated failed logins lock the address out for a while. The
calendar feed is a signed URL emitting standard iCalendar with a proper
timezone block, which is why Apple Calendar accepts it without
complaint.