Deterministic rules engine
The AI never decides readiness. Pure TypeScript rules check expiry windows, minimum savings, maximum limits, deadlines, and manual tasks against your target date.
Don't let your dreams be dreams.
Not another goal tracker. Tell Ascend what you want to achieve, and it breaks the goal into clear, checkable requirements, then shows what is ready, what is blocked, and what to do next.
$npm install && npm run dev
Free, local, and private. Data stays in data/ascend.db. No account required.
Six-day alpine traverse in the Bernese Oberland.
Setup guide
Ascend is a local app, not a hosted service. You need Node.js 24 or newer and npm. AI drafting is optional; every screen works with manual requirements.
Save Ascend.zip. No account or cloud setup.
Extract the archive. It creates an Ascend folder.
$unzip Ascend.zip
Install the app dependencies once.
$cd Ascend && npm install
Run the app, then open http://localhost:5173.
$npm run dev
AI setup Optional. Create a Gemini key in Google AI Studio, add it in Ascend under Settings, then press Test connection. Without a key, add requirements manually.
Updates
Goals and saved settings live in Ascend/data/ascend.db. Optional fallback keys live in Ascend/.env. The zip contains neither, so extracting an update over the existing folder keeps both.
Quit the app first. Do not use Finder's Replace option, because that deletes the whole folder. Extract in Terminal instead.
In the folder that contains Ascend/:
$unzip -o Ascend.zip
cd Ascend
npm install
npm run dev
Use the exact filename you downloaded if it has a suffix, such as Ascend (1).zip. Back up your goals first with Settings → Export data if you want a spare copy.
Ascend runs as a single local server and React client on your machine. Nothing leaves 127.0.0.1 unless you ask an AI model to draft requirements.
The AI never decides readiness. Pure TypeScript rules check expiry windows, minimum savings, maximum limits, deadlines, and manual tasks against your target date.
Uses Node.js 24 built-in node:sqlite in WAL mode. Export a clean JSON backup of goals and requirements at any time; saved API keys stay masked on the server.
Draft requirements with Google Gemini (with automatic rotation across up to 20 saved keys on HTTP 429 rate limits) or a local OpenAI-compatible proxy. Manual entry always works.