Experiment
A vibecoded bedside display that turns the information I check every day into one small physical interface.
I wanted to be able to leave my phone outside of my bedroom without missing out on the things I check anyway, like weather, subway arrivals, calendar, time, smart-light controls, and… obviously, the Mets score.
The display pulls live scores for the Mets, Nets, Jets, and Liberty (plus the baseball playoffs), weather, subway arrivals, and my calendar, and it can switch the LIFX lights between scenes. It dims at night, protects the screen from burn-in, and falls back to the last good data when a source goes down. Bluetooth buttons and a page on my phone control it.
This is a vibecoded prototyping project, not a claim of expertise in any of these technologies. I used language models to break the idea into pieces, reason through unfamiliar libraries, debug hardware and server issues, and keep adding to it as I figured out what I wanted.
An ESP32 microcontroller drives a tiny 128×64 OLED screen, and a Python server does the rest by gathering the data, choosing what to show, and handling the buttons and phone controls.
External data sources → Python control plane → canonical display payload → ESP32 OLED display
BLE buttons and the phone UI send inputs back to the control plane, which updates state and refreshes the display.
I use AI most on work outside my experience, and this project is the clearest example. I had never worked with ESP32 firmware or Bluetooth before it. I described what I wanted and tested each version on the real hardware until it worked.