Skip to content

vibesync

A Raspberry Pi device that scores how well your music matches your next calendar event, and tells you what to play instead.

I designed and built vibesync solo, end to end: the Python client that reads Spotify, the Node server that calls GPT-4 and Google Calendar, and the 3D-printed hardware enclosure it all lives in.

Role · Solo Engineer & Designer
Timeframe · Spring 2026
Status · Working prototype
Tools · Python, Node.js, Next.js, React, TypeScript, Socket.io, Spotify API, Google Calendar API, GPT-4, Raspberry Pi

Context

Who

Anyone whose focus gets derailed when their music doesn't match what they're about to do, prototyped through a persona: Maya, a graduate student who works from home and listens to music constantly.

What

A dashboard that syncs Spotify and Google Calendar data to score whether your current music matches your next event (0–100), then triggers AI-powered recommendations when it doesn't.

Why

Digital interactions often feel transactional and flat because they fail to capture the emotional energy, the vibe, that makes human connection feel authentic. Phone-based fixes make it worse: pulling out your phone to change the mood is what breaks focus in the first place.

Research

M

Maya

Graduate student · Works from home · Constant music listener

“I just need the right vibe, but finding it always pulls me down a rabbit hole.”

Background

Maya lives and works from home, and listens to music constantly; her playlist shifts widely depending on mood.

Pain point

Coming home hyped, she needs to shift into study mode, but switching music means opening her phone and getting lost scrolling. The fix becomes the distraction.

Goal

Transition between moods effortlessly, with music that matches her calendar automatically, without ever picking up her phone.

Before

Struggling to get into the right mindset. Music and upcoming tasks are out of sync, causing distraction and context-switching.

With vibesync

The dashboard surfaces a vibe match score and recommends tracks aligned to the next event.

After

Better focus without reaching for the phone; vibesync handles the transition.

Insight

The turning point was realizing the fix couldn't live on the phone. Any solution that required pulling out a screen to manage focus would just recreate the problem it was solving, so vibesync had to be a dedicated, ambient piece of hardware instead of an app.

vibesync user flow diagram, from opening Spotify to getting a vibe score

The full interaction path, from opening Spotify to getting a vibe score.

Design

Initial ideas

Hand-drawn dashboard design sketch

Tech stack

Python Client

Python 3.x · Spotipy · Google Calendar API

Polls Spotify for the current track and pushes data via WebSocket.

Node.js Server

Node.js · Socket.io · OpenAI SDK

Orchestrates data, calls GPT-4 for vibe analysis, broadcasts to the dashboard.

Dashboard

Next.js · React · TypeScript

Runs in Chromium kiosk mode on the Raspberry Pi.

APIs

Spotify · Google Calendar · GPT-4

Track metadata, event context, and LLM-powered vibe scoring.

vibesync systems diagram

Hardware build

The physical form went through several enclosure iterations before landing on the final framed stand: a Raspberry Pi 4 connected via DSI ribbon cable to a 7" touchscreen, housed in a 3D-printed white frame.

Bare Raspberry Pi device

Tucking in the wires behind the original device

Styrofoam frame prototype

Initial prototype using the screen's styrofoam packaging

First 3D print attempt
Second 3D print attempt

1st and 2nd 3D print attempts, sizing was wrong both times

Final enclosure with stand, front view
Final enclosure with stand, side view

Outcome

A fully working physical prototype with a 3D-printed enclosure, demonstrated live at the 531 final project showcase.

Reflection

Designing beyond the screen

Design doesn't end at the screen; it includes the environment the user is in.

Engineering mindset

Learned how to design with an engineering mindset, working across hardware, firmware, and interface at once.

In-device playback controls

Next: play and change music directly from the screen, and let users curate their own playlists.

A slimmer form factor

Slim down the physical screen and move secondary info to a companion web app.

Aishi Dua

Durham, NC

Open to work

Eat, sleep, create, & repeat

Let's design together!

Built with Next.js, Claude Code, and lots of coffee :)

Last updated August 2026