Inspiration

Most productivity tools assume that people have the same amount of energy and capacity every day. In reality, a task that feels manageable today can feel overwhelming tomorrow. When someone is already tired or stressed, another long to-do list can create even more pressure. I built GentleMode around a simple idea, instead of always asking the user to adapt to the productivity system, the system should sometimes adapt to the user.

What it does

GentleMode is an adaptive wellness app that looks at your current energy, stress, available time, situation, and what feels difficult before deciding what kind of support fits right now. A Capacity Engine first estimates whether you are in Recovery, Gentle, or Focus Mode. Gemini then chooses between four types of interventions: Recovery, Reduce Load, Tiny Action, or Focus Window. Before starting, users can tell GentleMode if the suggestion is still too much, feels right, or if they have more room. After completing it, GentleMode asks whether they feel 'Better', 'About the same', or 'Worse', then adapts the next intervention based on that feedback. GentleMode also includes Tiny Wins, local calibration, a live Capacity Lens, and an explanation panel showing why a specific intervention was chosen.

How we built it

GentleMode was built with Next.js, React, JavaScript, Tailwind CSS, Lucide React, GeminiAPI and deployed on Vercel. The app combines deterministic logic with Google Gemini 3.5 Flash-Lite through the Gemini API Free Tier. The Capacity Engine calculates the user's current capacity using energy, stress, and available time, while Gemini handles intent classification, safety routing, intervention selection, and structured intervention generation.

Challenges we ran into

The first version of GentleMode was too similar to a normal task-breakdown tool, so I redesigned it around capacity instead of simply making tasks smaller. Another challenge was to prevent the AI from becoming a general chatbot because of user abuse, which now the AI is restricted based on off-topic, medical, crisis, unsafe, and prompt-injection-style inputs to stop the normal wellness flow. The last challenge was the feedback system, where the 'Better', 'About the same', and 'Worse' flow originally caused overlapping frontend states, so I separated feedback before an intervention from feedback after completing one.

Accomplishments that we're proud of

I am most proud that GentleMode became more than a task generator. I am also proud of successfully combining deterministic logic with generative AI, adding safety boundaries, creating local personalization without requiring accounts, and making the application's reasoning visible through the interface.

What we learned

I learned that AI does not need to control every part of an application. Separating deterministic logic, classification, and generation made GentleMode more predictable and easier to explain. I also learned how important safety and negative use cases are when building AI products. Testing off-topic requests, unsafe inputs, and prompt injection was just as important as testing the normal user flow. From the UX side, I learned that wellness software should not always push users toward doing more. Sometimes reducing cognitive load or recovering first can be the better next step.

What's next for GentleMode

I would like to explore longer-term personalization, more intervention types, accessibility improvements, localization, optional cross-device sync, and real user testing. I also want to improve how GentleMode learns which interventions are most helpful over time while keeping the experience privacy-conscious and low-pressure.

Development disclosure

I used ChatGPT GPT-5.6 SOL as a development support tool for brainstorming, debugging, code review, refactoring, and implementation guidance. The prompt:

  • The project feels too simple and kind of like Goblin Tools. How can we make GentleMode more unique and suitable for the intermediate wellness track?
  • Does Gemini have restraints if users input negative, unsafe, or completely unrelated requests? We also need to think about positive and negative use cases.
  • When I test an unsafe request, it shows both "Outside GentleMode" and "GentleMode paused." Help me find the bug.
  • Is it possible to refactor this project? page.js is more than > 1000 lines and I want the code to be cleaner.

Built With

Share this project:

Updates