Inspiration
I built Mirror because I noticed how easy it is to acknowledge that you're having a difficult day without actually understanding why. Sometimes we don't need another productivity tool or another piece of advice ,we need a place to pause, put our feelings into words, and see patterns we couldn't notice on our own.
The idea behind Mirror was to create a quiet space where people could check in with themselves and gradually build a clearer picture of their emotional journey.
What Mirror Does
Mirror is a personal reflection space that turns small emotional check-ins into something meaningful over time.
Instead of simply storing journal entries, Mirror helps users notice their emotional patterns through their Journey dashboard. It remembers previous check-ins and reflects back things like recurring emotions, contexts, lighter moments, and changes in emotional rhythm.
The goal isn't to diagnose, judge, or replace therapy. It's simply to help people understand themselves a little better.
How I Built It
I built Mirror from scratch using *Next.js, React, TypeScript, and Tailwind CSS.
I designed the experience around a few core interactions rather than trying to build dozens of features:
Meet Mirror :a short onboarding experience that helps Mirror understand the user's context. Daily Check-In : users can describe how they're feeling and what is on their mind. Journey: previous check-ins are transformed into an emotional timeline, allowing users to see patterns and changes over time. Reflection Cards : small prompts encourage users to pause and reflect beyond their daily check-in. Future Letters : users can write a letter to their future self and choose when it should become available.
I also implemented browser-based persistence so that a user's journey, profile, reflections, and letters remain available between sessions. Challenges
One of the biggest challenges was deciding what not to build.
It was tempting to keep adding features, especially for a hackathon. I eventually realized that Mirror would be stronger if I focused on a small number of meaningful interactions and made those experiences feel intentional.
Another challenge was designing an emotional experience without making it feel clinical or overwhelming. I wanted the interface to feel calm and human, while still giving users something useful to take away from their reflections.
Building the project in a short timeframe also meant learning to iterate quickly, debug problems as they appeared, and make decisions without constantly rebuilding everything from scratch.
What I Learned
The biggest thing I learned is that building a product isn't only about making features work. It's about understanding why each feature exists.
I also learned a lot about building with Next.js and React, managing state and browser storage, designing user flows, and turning an idea into a working product that someone else can actually use.
Most importantly, I learned that constraints can make a product better. Having limited time forced me to ask: What is the smallest version of this idea that can still make someone feel something?
That question shaped Mirror more than any technical decision.
What's Next
Mirror is still a beginning.
I'd like to eventually make its reflections more personalized, improve the way it recognizes patterns over time, and explore ways for users to understand their emotional journey without turning it into another metric they feel pressured to optimize.
For now, Mirror has one simple purpose:
to give people a place to pause, reflect, and better understand themselves.
Built With
- css
- git
- github
- html
- javascript
- next.js
- react
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.