MindSplit is an AI-powered decision analysis tool that visualises the logical and emotional paths of any meaningful decision you're facing — step by step, as an interactive node graph.
Describe your scenario. Watch it split into two paths. Choose your steps. See where each decision leads.
- Dual-path node graph — logical (Jekyll) vs emotional (Hyde) paths rendered as a horizontal Blender-style graph with animated SVG bezier connectors
- Step-by-step progression — reveal one column at a time; each choice shapes the path forward
- Coin-flip external circumstances — random real-world events that modify outcomes at each step
- Short-term & long-term impact scores — tracked cumulatively as you build your path
- Smart input validation — client-side heuristics + AI-powered classifier reject vague, trivial, or non-decision inputs before hitting the main API
- How-to guide — built-in modal walkthrough, auto-shown on first visit
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| AI | Google Gemini 2.5 Flash via @google/generative-ai |
| Deployment | Vercel |
git clone https://github.com/Hestone/MindSplit.git
cd mindsplit
npm installCreate a .env.local file in the project root:
GEMINI_API_KEY=your_gemini_api_key_hereGet a free API key at aistudio.google.com.
npm run devOpen http://localhost:3000 in your browser.
app/
├── page.tsx # Main UI — node graph, state, interaction logic
├── globals.css # Canvas background, node animations, transition classes
├── layout.tsx # Root layout
├── components/
│ ├── Header.tsx # MindSplit gradient title
│ └── InputCard.tsx # (reserved)
└── api/
└── analyze/
└── route.tsx # POST /api/analyze — Gemini classifier + generation
- Describe a real decision or dilemma you're facing
- MindSplit validates your input (client-side heuristics → AI classifier)
- Gemini generates 4 logical steps, 4 emotional steps, and 4 external circumstances
- The node graph renders — choose Logical or Emotional at each step
- A random circumstance event fires at each step, modifying your score
- After 4 steps, your final impact scores and a summary are revealed
npm run dev # Start development server
npm run build # Production build
npm run start # Start production server
npm run lint # Run ESLint