Inspiration

Every side project starts the same way: a half-formed idea, a blank README, and a weekend you'll never get back. I kept watching good ideas die at the "now what?" step — before a single file was created. AbridgeAI came from wanting a tool that does the thinking a project needs before the coding starts: give it one sentence, and it hands you a feasibility verdict, an architecture, a stack, a real starter scaffold, and a week-by-week plan — instead of a blank screen.

What it does

AbridgeAI runs a seven-stage deterministic planning pipeline on your local backend:

  1. Builder Signals — reads your public GitHub profile for signal (optional)
  2. Research & Opportunities — market scan, risks, recommended direction
  3. Feasibility Assessment — a /100 score across five weighted axes
  4. Architecture Direction — module breakdown and data-flow spine
  5. Tech Stack — comfort-matched recommendation, or your own custom combo
  6. Builder Plan & Scaffold — a downloadable starter repo (.zip) with a project-specific README.md and PLAN.md
  7. Project Brief — the full brief, viewable or exported as Markdown

Feasibility is scored as

$$\text{score} = \min\left(100,\ c + s + p + t + b\right)$$

over five axes — idea clarity, stack fit, scope, time realism, and builder fit. Above 70 it says GO; between 50 and 70 it says Proceed with caution; below that, Rethink / reshape — so the plan is honest before you commit.

If you add a custom stack like FastAPI + React + PostgreSQL + Docker, the text gets parsed into structured components, the scaffold is auto-chosen for the backend language, and the README renders each layer. Type C++ + Rust together and both are recognized — the pipeline lists both and picks the best matching starter base.

How we built it

The backend is Express + Node, the frontend is React + Vite, and all planning logic lives server-side behind a typed stage registry (stages.js) — the UI never rebuilds project logic, it just consumes structured results over HTTP. Four stages are LLM-powered: Gemini goes first; if it's missing, out of quota, or unparseable, Groq is tried automatically; if both fail, a deterministic engine takes over so the app never 500s. Badges in the UI tell you which path ran (Gemini · live, Groq · live, LLM · cached, or fallback).

Even the deterministic fallback is idea-aware. Items are picked by hash-scored seeding — every candidate scores as

$$s_i = H(\text{seed} + \text{poolItem}_i)$$

with the best-seeded options chosen, so two similar ideas still diverge and a run never re-bills the same prompt twice (results are cached per input hash).

Challenges we ran into

The biggest was billing discipline: the Gemini free tier allows ~20 requests/day on this model, and one run already uses four — so a deployment "worked yesterday" and shows fallback today for no code reason. Debugging that led to the whole resilience story: a real provider chain (Gemini → Groq → deterministic) instead of a single point of failure. We also had to keep LLM output honest — models return malformed JSON, miss keys, or invent content — so every stage sanitizes and clamps LLM results before anything touches the UI.

Accomplishments that we're proud of

  • The pipeline always produces a complete plan — demo-proof, even with no keys
  • A real downloadable scaffold, not just text: README.md, PLAN.md, a test, a fixture, and a core module that embeds the project's planned architecture
  • Deterministic fallbacks are idea-specific, not generic canned text

What we learned

  • Resilient over ambitious: a fallback chain beats a single "perfect" model
  • LLM output is a contract to validate, not a source of truth
  • A typed stage registry made adding stages trivial — single source of truth
  • Caching identical inputs prevents cost and guarantees stable re-runs

What's next for AbridgeAI

  • More starter languages (C++/C#, web frameworks) and richer scaffolds
  • A persisted project store + cloud run for multi-user use
  • Cost-tiered provider routing (which stage uses which provider, by cost)

Built With

Share this project:

Updates

Submission history