killmyidea
Startup-idea evaluator that chooses kill, fix, or ship.
# Kill My Idea Describe a startup idea. Jev decides: **KILL IT**, **FIX IT** or **SHIP IT**. No generative LLM. One request asks [TypeSafe](https://typesafe.ai) Jev 10 questions in parallel: 8 plain indie-hacker questions scored 0–4, plus the category and whether the idea is understandable. ``` idea → Jev (8 scores) → each × 25 → weighted average → clarity gate → KILL / FIX / SHIP ``` ## 1. Install ```bash npm install ``` ## 2. Environment ```bash cp .env.example .env ``` ``` TYPESAFE_API_KEY=your_key ``` The key is only read by `api/evaluate.ts` and never reaches the browser. Successful evaluations are archived in SQLite at `data/analytics.sqlite` by default. Set `ANALYTICS_DB_PATH` to an absolute path on a persistent disk in production. Users can opt out per request with the checkbox below private history. `SITE_URL` (optional) sets the absolute URL used in the OG/Twitter image tags. It defaults to `https://killmyidea.stemonte.io`. The image itself is `public/og.png` (1200×630). For UI work without a key, set `TYPESAFE_MOCK=1`. The API then returns deterministic fake answers labelled `MOCK DATA` in the raw-data panel. Mock mode is ignored on Vercel. ## 3. Run locally ```bash npm run dev # http://127.0.0.1:5317 (serves /api/evaluate too) npm test # unit tests npm run benchmark # balanced scoring benchmark; requires the app to be running ``` Every result has a collapsed "How Jev decided" panel with raw Jev answers, probabilities, confidence, the average, the verdict, latency and token usage. `?debug=1` opens it by default. ## 4. Build ```bash npm run build # typecheck + static build in dist/ ``` ## 5. Deploy to Vercel 1. Import the repo in Vercel. The framework is detected as Vite. 2. Add `TYPESAFE_API_KEY` under Project