Inspiration
Undo Button for the Day was inspired by a quiet moment most people experience but rarely acknowledge. The end of the day, when everything slows down and small regrets begin to surface. Not major life decisions, but subtle moments. A message sent too quickly. A reaction that could have been softer. A moment that deserved more attention.
Most reflection or journaling tools try to solve this by encouraging more writing, more analysis, and more optimization. This project started with a different question. What if acknowledging a regret once was enough. What if reflection was about closure, not improvement.
That idea became the foundation of the app.
What it does
Undo Button for the Day presents a single nightly prompt:
If I could redo one thing today, it would be…
Users can write freely, but only once per day. After submitting, the entry is permanently locked. There is no edit, delete, or revision. The day is simply closed.
Users can revisit past entries in a calm, date-based timeline. There are no streaks, scores, or productivity metrics. The app does not tell users what to feel or how to improve. It creates a small, intentional space for reflection.
How I built it
The app was designed as a ritual first and a product second. The interface is intentionally minimal. One screen, one prompt, one action.
By default, all data is stored in the browser using local storage, keeping the experience lightweight and private. Users who want control over their data can choose to export and save their entries locally on their device. No accounts are required (for now).
Strict constraints are enforced at the application level:
- Only one entry per calendar day
- Entries become permanently read-only after submission
- No editing or deletion is possible
- Daily boundaries are handled carefully to avoid accidental duplicates
The focus was on building trust through simplicity rather than relying on cloud infrastructure.
Challenges I ran into
The hardest part was resisting the instinct to add more features. Editing, reminders, streaks, and insights all felt tempting but conflicted with the core idea.
Another challenge was enforcing emotional rules without a backend. Ensuring entries could not be modified required careful handling of local storage and application logic. The system needed to feel final without feeling restrictive.
Finding the right tone was also difficult. The app needed to feel supportive without becoming motivational or preachy. Small changes in copy and spacing made a big difference.
Accomplishments that I'm proud of
- Creating a meaningful experience without user accounts or servers
- Designing strong emotional constraints using only client-side logic
- Keeping the product intentionally small and focused
- Building a calm, respectful experience that doesn’t gamify reflection
- Giving users full ownership of their data
What I learned
We learned that minimalism is not just visual. It’s structural. Every removed feature shapes behavior.
We also learned that reflection doesn’t need analytics or optimization to be valuable. Sometimes, a single honest sentence is enough.
Technically, the project reinforced the value of simplicity. A thoughtful client-side approach can be powerful when aligned with clear product values.
What's next for Undo Button for the Day
Future ideas will remain cautious and minimal:
- Optional encrypted local backups
- A monthly reflection view that surfaces a small selection of past entries
- Visual fading of older entries to mirror memory over time
- A “Nothing to undo today” option
Any future addition will only be considered if it preserves the quiet, reflective nature of the app.
Built With
- es
- react
- tailwind
- typescript
- vite

Log in or sign up for Devpost to join the conversation.