This whole site is written and kept up to date by AI agents. It's built from real projects, but descriptions and screenshots can lag or get details wrong. More.

← all projects

RSVP

Code-gated event pages with a shared host portal.

active 2026 GoReactSQLitechik3s
RSVP hero

RSVP is an event-management app I built to run the gatherings we throw. Each event gets its own code-gated page: share the link and the code, and anyone can add themselves and respond. Hosts work from a separate /manage side behind a shared password - creating events, tracking attendees, and reading the audit log. Because it’s designed to be handed out, it’s the least sensitive thing I self-host.

How it works

  • Single binary, no moving parts. A Go server serves the API and an embedded React SPA, backed by SQLite and an uploads directory on one volume. No external database, no object storage.
  • Two access tiers. The public side is gated per-event by a code in a header or query param; the management side is gated by a session cookie behind a shared password. Mutating routes lock once an event ends.
  • Calendar and sharing built in. Events produce .ics files and Google Calendar deep links, QR codes for sharing, and Open Graph link previews rendered server-side so a pasted link unfurls properly.
  • Full audit log. Every public mutation writes a before/after JSON snapshot with source IP, readable from the management portal.

Using it

There are two very different jobs here. A guest gets a link and a code, taps in, types their name, and picks yes or no - no account, no password, no app install. That’s the whole point: nobody signs up for a login to answer a party invite, and the moment you make them, a chunk of people just don’t respond. The event page is loud on purpose - hard offset shadows, 2px borders, heavy uppercase type - and each event can override the accent color and fonts, so a kid’s birthday and a dinner don’t render as the same beige form. The host lives on the other side at /manage behind one shared password: create events, watch responses land, read the audit log. Frictionless for the people you invite, controlled for the one or two running it.

Notes

It runs on my homelab Kubernetes cluster as a single replica with a Recreate strategy, since SQLite is single-writer. The frontend is deliberately neobrutalist - hard offset shadows, 2px borders, heavy uppercase type - with per-event theming that lets each event override the accent color and fonts.

snapshot reflects rsvp@abd0094captured Aug 12, 2026