Frame 03A web 2026
Floor Board
The QR code on my dorm door, and the reason my floor actually reads the calendar

The story
I am the RA for Chandler 1 at Elon, and a floor calendar is usually a sheet of paper by the elevator that nobody stops to read. Mine is a page instead. The QR code on my door opens it, and a resident sees the next event as a full comic panel with a live countdown, the flyer, a share button, and one tap to drop it on their calendar. Adding an event is one entry in a TypeScript file plus a script that converts the flyer, and that is the entire backend, because I post about one flyer a week and an upload form would have cost me more time than it saved. The two jobs meet in the same place: the RA half is knowing people only show up to something that looks worth showing up to, and the CS half is making that take five minutes a week.
What I learned
- 01Timezone bugs are real bugs: the server renders in UTC, so every event time resolves through America/New_York or the board drops events four hours early.
- 02The page revalidates every ten minutes, otherwise the "up next" pick would freeze at whatever was true when the site last built.
- 03One shell script over the sips command that ships with macOS beat every CMS I considered, since a flyer a week does not need auth.
- 04The whole comic theme is scoped under .floor, so a hard bordered red and blue world lives inside a site that is otherwise warm paper and film grain.
- 05Link previews are generated from the next event, so dropping the board in the floor group chat shows the flyer instead of a bare URL.
Stack · as built
Frontend
- Next.js 14
- TypeScript
- Scoped CSS
- Web Share API
Backend
- Typed Event File
- ISR Revalidation
- Google Calendar Links
Infra
- Vercel
- sips Flyer Script
- QR Code
Want the full story behind this one?