Inspiration
Major life decisions can create stress, uncertainty, and decision paralysis. Choices about work, money, relationships, education, or lifestyle often affect emotional wellbeing as well as practical circumstances. People may rely on gut feeling or generic advice without a clear way to reflect on possible trade-offs.
I created Usaid as a preventive mental-wellness decision-support tool. It uses scenario planning to help people slow down, reflect on what matters to them, and explore several plausible paths before making a choice. It is not a medical, therapeutic, diagnostic, or predictive service.
What it does
Usaid generates multiple AI-assisted future scenarios from a real-world decision.
- A user describes a dilemma, such as whether to change jobs or move cities.
- The user can add their risk tolerance, life priorities, and current situation.
- Usaid generates 3–5 distinct, plausible timelines with events, trade-offs, second-order effects, and indicators for emotional wellbeing, finances, career, relationships, and risk.
- The user compares up to three timelines side by side and can add a follow-up decision to explore how circumstances may change a path.
The aim is not to tell someone what will happen. It is to make uncertainty easier to discuss and help people make calmer, more considered decisions.
How it is built
Usaid is a full-stack web application built around structured generative AI.
- AI engine: Google Gemini generates the scenario content. I provide it with a structured prompt containing the user's profile, current decision, and relevant earlier decisions, then request JSON timelines with a consistent schema.
- Frontend: React, TypeScript, and Vite provide the user interface. Zustand manages client state and React Query supports request caching. The interface includes a dark/light theme, timeline comparison, and optional interaction sounds.
- Backend: Node.js and Express manage the API, AI orchestration, and application logic. Prisma with SQLite stores users, decisions, timelines, events, and feedback.
- Safety and reliability: JWT authentication, bcrypt password hashing, Zod validation, Helmet, CORS, rate limiting, and protected user-scoped routes provide a practical security baseline.
Challenges I ran into
- Keeping scenarios balanced: AI-generated scenarios can become overly optimistic or overly negative. I designed the prompt to require distinct but realistic paths, trade-offs, and both first- and second-order effects.
- Reliable structured output: The interface needs data it can render consistently. I requested JSON output, added parsing fallbacks, and validated that timelines are present before saving them.
- Communicating uncertainty responsibly: Because this concerns personal wellbeing, I frame timelines as reflection tools rather than facts, predictions, or professional mental-health advice.
- Making AI wait time understandable: Scenario generation can take time, so the interface uses clear generation states and progress messages rather than leaving users with an unexplained delay.
Accomplishments that make us proud
- I turned an open-ended personal dilemma into a structured reflection experience with multiple comparable outcomes.
- I integrated profile-based context so the scenarios consider a user's values, risk tolerance, and current situation rather than producing generic advice.
- I built a working end-to-end system: secure accounts, saved decisions, generated timelines, comparison, and follow-up branching.
- I kept wellbeing central by including emotional and relationship effects alongside financial and career trade-offs.
What I learned
- Context improves usefulness: Risk tolerance, priorities, and current circumstances make scenario outputs more relevant and create a stronger basis for reflection.
- Structure matters as much as generation: Asking for defined fields—events, metrics, trade-offs, and second-order effects—turns AI text into information users can compare.
- Responsible framing is essential: AI can support reflection, but it should not present speculative scenarios as guaranteed outcomes or replace qualified mental-health support.
What's next for Usaid
- Reflection and feedback loop: Let users log what happened after a decision and reflect on whether the scenarios were useful.
- Wellness resources: Add evidence-based reflection prompts and links to professional support when users report high stress or distress.
- Accessibility and privacy: Improve accessibility, give users stronger controls over their personal context, and prepare a production-grade data-security model.
- Research and evaluation: Work with wellbeing professionals to evaluate whether the tool genuinely reduces decision-related stress and supports healthier decision-making.
Built With
- express-js
- framer-motion
- google-gemini-3-flash
- mermaid-js
- prisma
- react-query
- reacts
- sq-lite
- type-script
- vite
- zustand
Log in or sign up for Devpost to join the conversation.