← joshdavidoff.com

Experiment

Home dashboard system

A vibecoded bedside display that turns the information I check every day into one small physical interface.

Why I Built It

I wanted to be able to leave my phone outside of my bedroom without missing out on key modules like weather, subway arrivals, calendar, time, smart-light controls, and… obviously, the Mets score.

What It Does

The display pulls together live MLB data, weather and air quality, NYC subway arrivals, calendar events, Google Sheet data, LIFX scenes, and a short AI-generated weather summary. It includes night mode, burn-in mitigation, stale data fallbacks, background refreshes, BLE button controls, a phone web UI, and a DigitalOcean deployment.

How I Built It With AI

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 modules, reason through unfamiliar libraries, debug hardware and server issues, and keep extending the system while learning in motion.

The architecture is split: an ESP32 drives a tiny 128×64 OLED screen, while a Python control plane handles data aggregation, caching, module selection, button dispatch, and phone controls.

Architecture

Mets weather subway · calendar · LIFX Python control plane aggregate · select · cache Payload canonical display state ESP32 OLED 128×64 display BLE buttons · phone UI External data sources Control plane Display

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.

What I Learned

This project shows how I use AI in practice: not as a substitute for judgment, but as a way to move faster through unfamiliar terrain, build working prototypes, and learn by iterating on something real.

All projects