Inspiration
I came up with RESET from a pretty simple problem.
After college or a long day of work, I sometimes feel really tired and overwhelmed. I know I should take a break, but instead I usually end up scrolling through TikTok, Instagram, YouTube, or just staring at my screen.
The problem is that taking a break does not always mean actually recovering. Sometimes I spend an hour scrolling and still feel tired afterwards.
That made me think: what if there was a simple tool that could help someone take a short break based on how they are feeling at that moment, instead of giving everyone the same advice?
That was the idea behind RESET.
I wanted to build something that was not another productivity app, not a chatbot, and not a complicated wellness platform. I wanted it to be something I could open when I feel overloaded, give it a little context and a few minutes of my time, and let it help me reset.
The main idea became:
"You don't need another productivity app. You need a reset."
What it does
RESET is a web app that creates short, personalized micro-resets for people who feel overwhelmed, tired, distracted, or drained by too much screen time.
The user first checks in by choosing what is currently draining them, such as too much screen time, exhaustion, school or work stress, social interaction, or difficulty focusing.
Then the user chooses how much time they have, from 2 to 20 minutes.
RESET sends that information to an AI system, which creates a structured reset for that specific moment.
One part I wanted to make different was the "Why This Reset?" section. Instead of just showing a list of random steps, RESET also explains the approach it selected and why it makes sense for the user's current situation.
The user then goes through the reset with an interactive timer. After finishing, they can say whether they feel worse, the same, better, or much better, and they can optionally write a short reflection.
That feedback is stored locally and used to discover patterns over time. For example, RESET can recognize that a user tends to prefer shorter resets or that certain approaches have received more positive feedback in previous sessions.
How I built it
I built RESET as a local-first web application using React, TypeScript, Tailwind CSS, and a Node.js/Express server.
For the AI generation, I used the Groq API with the openai/gpt-oss-20b model. The AI is called through the server side so the API key is not exposed to the browser.
The AI does not receive my entire local storage. Instead, the app prepares a smaller context containing things that are relevant to the current reset, such as the user's current drain, available time, and useful patterns from previous sessions.
I also structured the AI response as JSON instead of directly displaying free-form text. This makes it easier for the application to validate the response and turn it into an interactive reset session.
User feedback, reflections, and reset history are stored locally in the browser using localStorage. I chose this approach because RESET does not need an account or a centralized database for the core experience, and it also keeps the project simpler and more privacy-friendly for a hackathon.
I also added safety rules around the AI-generated content. RESET is designed as a non-clinical wellness tool, so it avoids diagnoses, medication recommendations, and unsafe activities. AI responses are checked before they are shown to the user, and there is also a deterministic fallback when the AI service is unavailable or returns an invalid response.
Challenges we ran into
One of the biggest challenges was making sure the AI did not just generate a generic list of wellness advice.
It was easy to create something that looked like AI on the surface, but I wanted the AI to actually use the user's current situation, available time, and previous feedback.
Another challenge was making the AI output reliable enough for a real interface. Since a language model can return unexpected content or formatting, I had to add structured responses, validation, and fallback behavior so that the reset session would not break.
I also had to think about safety. RESET is supposed to be a simple wellness tool, so I had to make sure the generated activities stayed within low-risk, non-clinical boundaries.
The biggest challenge overall was time. Since this was a 48-hour hackathon, I had to decide which ideas were actually worth building instead of trying to add too many features.
Accomplishments that I'm proud of
I am most proud that RESET became more than just an AI text generator.
The full experience now connects the different parts together:
- The user explains what is draining them.
- AI selects an approach and generates a reset.
- The user completes the reset with an interactive session.
- The user gives feedback afterwards.
- That feedback can be used to discover personal patterns for future resets.
I am also proud of building the project with a local-first approach. I did not need to add a full authentication system or database just to make the core experience work.
Another thing I am proud of is the safety layer. It is easy to connect an AI API and generate text, but making the output controlled and appropriate for a wellness product was a different challenge.
What I learned
One of the biggest things I learned from building RESET is that adding AI to an app is not just about calling an API.
The harder part is deciding what the AI should actually do and how the rest of the application should use its output.
I learned more about structured AI responses, server-side API handling, validation, fallback systems, and using user feedback as part of personalization.
I also learned that not every problem needs a complicated backend. For this project, local storage was enough to create a useful personalization loop without adding a database and authentication system.
Most importantly, I learned to focus on the actual user experience instead of just adding more features.
What's next for RESET
There are still a lot of things I would like to improve if I continue working on RESET.
One of them is making personalization more advanced, especially when users write natural-language reflections after a reset. I would like RESET to understand those reflections better and use them as another signal for future sessions.
I would also like to improve the pattern view, add better visualizations, and eventually support optional cross-device synchronization.
For now, I think the most important thing is continuing to test whether RESET actually helps people take better short breaks, and learning from how real users use it.
RESET started as a simple idea about taking a better break, but I would like to keep developing it into a system that learns what helps each person reset in their own way.
Built With
- groq
- motion
- node.js
- react
- tailwind
- typescript
- vite
- webaudioapi
Log in or sign up for Devpost to join the conversation.