Inspiration
Big personal decisions, like a dream job abroad versus staying near family, don't fail for lack of information. They fail because our own reasons are tangled. Most AI tools answer by telling you what to do. I wanted the opposite: an AI that makes your own thinking visible and leaves the choice with you.
What it does
Tipping Point is a decision buddy for one personal choice between two options, plus "Wait / neither".
- It asks one question at a time, chosen from your whole picture, not just your last sentence. You can skip any question or ask for your result whenever you like.
- Your answers become numbered statements in your exact words, grouped live into themes, with a clarity bar that rises as the picture fills in.
- You confirm what matters, mark dealbreakers, and set how much each value weighs (0 to 10).
- The decision board scores each option against your values. Every score cites the words it came from, and gaps show "Not enough from you yet" instead of a guess.
- It finds the tipping point: the one value whose weight would flip the result. Drag it and the leader changes instantly.
- It pictures an ordinary Tuesday one year from now on each path, built only from what you said.
- You can speak in your own language. It translates to English for you to check before anything is used.
- If you write crisis wording, it stops and shows support resources instead of results.
Who it's for
Anyone stuck between two real-life options (students, young professionals, people weighing a move) who wants clarity without handing the decision to an AI.
How I built it
I planned before writing code, using the Devpost Learn Skill Pack: scope, PRD, spec, then a sliced build checklist. All of it is in the repo's devpost/ folder, with every revision recorded. Planning started in Codex. When my Codex credits ran out, I continued in Claude Code with the same Skill Pack and the same project folder, and Claude Code wrote the code.
- Server: Python and FastAPI, calling the OpenAI Responses API with strict JSON-schema structured outputs (store: false).
- Front end: plain HTML, CSS and JavaScript, with no build step.
- The maths (fit scores, dealbreakers, tipping point, clarity) is plain JavaScript, not AI, so it's deterministic and testable.
- A citation validator on the server removes any claim that doesn't point to a real statement.
- Daily cost caps are kept in SQLite, with salted IP hashes.
Challenges
- Stopping the AI from inventing reasons. The answer was a strict citation contract plus a server-side validator.
- Stopping the interview from just echoing my last answer. Questions now come from the whole picture.
- Making "clarity" honest. It measures how complete and steady your picture is, not the chance that you're right.
What I learned
Planning first with scope, PRD and spec made the AI build far more predictable. Each slice had clear acceptance criteria, so I could test it rather than hope. I also learned to split the work: the AI handles language, and plain code handles the maths and the trust.
What's next
Merging and splitting statements, more than two options, and a hosted version with per-user budgets.
Built With
- codex
- css
- fastapi
- html
- javascript
- openai
- python
- sqlite
- web-speech-api

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