Frame 03A web 2026

Floor Board

The QR code on my dorm door, and the reason my floor actually reads the calendar

the qr code on my door

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

  1. 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.
  2. 02The page revalidates every ten minutes, otherwise the "up next" pick would freeze at whatever was true when the site last built.
  3. 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.
  4. 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.
  5. 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?