Track: Lifestyle Hacks.
It's 11:40 at night. Nothing went wrong today, exactly. Class was fine and the message you were waiting for never came, and now the day is sitting on your chest and there's nobody you'd text about it, because what would you even say? "Had a day." So you scroll instead, and the day stays where it is.
Same Day is for that night. You draw the shape of your day as five points, morning to night. The app finds one person in the pool whose day had the same shape. You record thirty seconds for them before you get to hear theirs. Then you mark where you are right now, and the app shows the distance between that and where your day ended. No sign-up, no name, no feed, no text box, and nobody finds out who anybody is. Live at https://same-day-seven.vercel.app.
Inspiration
Every mood app I've seen starts with a mood wheel or a chatbot. Both assume the problem is that you haven't said how you feel yet. On the nights I mean, you know exactly how you feel. What's missing is one other person who had the same day and doesn't need it explained.
Epley and Schroeder (2014) found that commuters told to talk to a stranger reported a happier journey than the ones who sat alone, while a separate group predicted the opposite. People are sure a stranger will be awkward, and it reliably isn't. Same Day makes the approach for you so you never have to decide to do it.
What it does
The ask depends on both days. If their day was heavy, you're asked to say what you'd want to hear right now. If both days went well, you pass the good thing on. Every fourth exchange asks you to sing instead, badly is fine, because thirty seconds of someone murdering a chorus is warmer than thirty seconds of advice.
You give before you receive. If hearing came first, most people would take the good thing and close the tab.
Your day is never redrawn. Hearing from a stranger doesn't change what your afternoon was, and asking someone to redraw it invites them to lie about their own morning. So you add one point, "right now", and the number between it and your night is allowed to be negative. Something that can only report improvement isn't measuring anything.
The counter says "you've made N people smile" and it only goes up. Miss four days and it costs nothing.
How I built it
Next.js 16, React 19, TypeScript, Tailwind v4, on Vercel. The core is three small files: lib/curve.ts (the five-point day, Euclidean distance, the now-delta), lib/prompts.ts (which ask you get) and lib/pool.ts (match, store, block, history, smiles). 49 unit tests pass under Vitest, including one asserting the delta is never clamped and one asserting the smile counter has no reset path. Recording uses the browser's MediaRecorder; typing 240 characters or an emoji is a full alternative for anyone who can't use a microphone, every curve point has up and down buttons, and every seeded clip carries a caption.
No model runs at runtime. Matching is arithmetic over five numbers and nothing generates text at the user. Every voice in the pool is a real person.
What I learned
I assumed the honest measurement was draw before, draw after. Halfway through the build it was obvious that asks people to re-report a morning that already happened, and the second drawing drifts toward whatever you just heard. That's where the "right now" point came from, and it's the best decision in the app.
Honest limits: the starting pool is ten clips I recorded myself, real voice but not yet a crowd. Clips recorded in the app stay in that browser's localStorage, so the pool is per-device; a shared pool only has to replace the storage functions in lib/pool.ts. The delta is a self-report a few minutes apart, not a clinical measure.
Disclosures
Same Day was first built on 17 August 2026 for the CS Girlies wellness hackathon. The code entered here is the same; what's new for Hacksocial is this writeup and the Lifestyle Hacks framing.
Claude Code (Claude Opus 5) wrote most of the TypeScript alongside me, including the test suite and the README, and helped draft this description. Nothing model-generated is ever shown or played to a user.
Back to 11:40. You still won't text anyone. But somebody had the same day as you, you heard them, and you told them the thing you needed to hear yourself.
Built With
- localstorage
- mediarecorder
- next.js
- react
- tailwind
- typescript
- vercel
- vitest
Log in or sign up for Devpost to join the conversation.