Answer three questions. See three futures. Decide who you become.
A guided self-reflection app that turns your honest answers about your present, goals, and fears into three distinct future scenarios—so you can reflect, compare, and choose the path that fits you.
- See it in action
- What it does
- Features
- Quick start
- Running as desktop app
- Tech stack
- Project structure
- Privacy
- License
The app opens on a clean, dark-themed screen. You’re guided through three prompts: Current situation, Goals & ambitions, and Fears & doubts. Each field has a short hint to keep your answers honest and specific. A single Simulate My Future button runs the simulation. Everything stays local—your reflections are never sent to a server.
Input screen: three question blocks and the main call-to-action. Theme toggle and branding live in the header; a short privacy line sits at the bottom.
After a short loading state, you see Your Three Futures: the same inputs summarized at the top, then three path cards—Safe, Bold, and Compounded. Each card has a narrative written in second person (“I kept going…”, “I chose…”). You can expand a strategic breakdown (habits, sacrifices, outcomes), export the whole result as a PDF, or Edit inputs and Re-simulate. A streak counter encourages coming back day after day.
Results view: context (Situation, Goals, Fears), one future path card with narrative and “View strategic breakdown,” plus actions for PDF export and re-running.
1. You answer three questions
| Question | What it’s about |
|---|---|
| Current situation | Where you are now: work, life, what’s working and what isn’t. |
| Goals & ambitions | What you want to build, become, or achieve in the next 1–3 years. |
| Fears & doubts | What you’re most afraid of and what holds you back. |
2. You get three futures
- Safe path — A steady, low-risk trajectory based on your situation.
- Bold path — A more ambitious path aligned with your goals.
- Compounded path — A path that builds on habits and tradeoffs over time.
3. You decide
- Read narrative summaries and strategic breakdowns (habits, sacrifices, results).
- Export your result as a PDF to keep or share.
- Come back and re-run as often as you like; your data stays on your device.
- 100% local — Reflections are never sent to a server. Simulation runs entirely in your browser.
- Session & streaks — Last result is stored in
localStorage; optional streak count for repeated use. - Dark / light theme — Toggle in the header.
- PDF export — Download your three futures as a single PDF from the results view.
- Animated UI — Smooth transitions and loading state (Framer Motion).
- Responsive — Usable on desktop and mobile.
- Desktop app (optional) — Run as a native app on macOS, Windows, or Linux via Tauri.
Prerequisites: Node.js 18+
git clone <your-repo-url>
cd future-self-simulator
npm install
npm run devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start Next.js dev server (web app) |
npm run build |
Static export (used by Tauri) |
npm run start |
Serve production build |
npm run lint |
Run Next.js lint |
npm run tauri:dev |
Run as desktop app (dev) |
npm run tauri:build |
Build native app bundle |
You can run Future Self Simulator as a native desktop app (macOS, Windows, Linux) using Tauri 2.
Additional prerequisites
- Rust (stable)
- macOS: Xcode Command Line Tools or full Xcode
- Windows: Microsoft C++ Build Tools
- Linux: WebKit2GTK and other deps (see Tauri docs)
Dev (desktop)
npm install
npm run tauri:devThis starts the Next.js dev server and opens the Tauri window.
Production build
npm run tauri:buildThe built app will be in:
- macOS:
src-tauri/target/release/bundle/macos/(e.g.Future Self Simulator.app) - Windows:
src-tauri/target/release/bundle/msi/(ornsis/) - Linux:
src-tauri/target/release/bundle/(AppImage, deb, etc.)
Custom app icon
npm run tauri icon path/to/icon.pngUse a 1024×1024 PNG for best results.
macOS 26 (Tahoe) — A known Tao issue can cause the desktop app to crash on startup. Use the web app (
npm run dev) until upstream ships a fix.
| Layer | Tech |
|---|---|
| Framework | Next.js 14 (App Router) |
| UI | React 18, Tailwind CSS, Radix UI (shadcn-style) |
| Motion | Framer Motion |
| Export | jsPDF + html2canvas |
| Icons | Lucide React |
| Desktop | Tauri 2 |
future-self-simulator/
├── app/
│ ├── globals.css # Global styles and theme variables
│ ├── layout.tsx # Root layout and metadata
│ └── page.tsx # Main page (input → loading → results)
├── components/
│ ├── AnimatedBackground.tsx
│ ├── InputForm.tsx # Three-question form
│ ├── ResultsView.tsx # Results + PDF export + streak
│ ├── FutureCard.tsx # Single future path card
│ ├── StreakBadge.tsx
│ ├── ThemeToggle.tsx
│ └── ui/ # Reusable UI (Button, Card, etc.)
├── lib/
│ ├── simulationEngine.ts # Local simulation (themes → narratives)
│ ├── storage.ts # localStorage session and streak
│ └── utils.ts
├── types/
│ └── index.ts # UserInput, SimulationResult, etc.
├── src-tauri/ # Tauri desktop app
│ ├── src/ # main.rs, lib.rs
│ ├── capabilities/
│ ├── tauri.conf.json
│ └── Cargo.toml
└── docs/
├── screenshot.png
├── input-screen.png # Input form screenshot
└── results-screen.png # Results view screenshot
Your reflections are never sent anywhere. All input and simulation run in your browser. The only data stored is in your browser’s localStorage (last result and optional streak). You can clear it via your browser’s site data settings.
MIT
Future Self Simulator — Reflect. Decide. Become.

