Don't let your dreams be dreams.

Know what it takes to get there.

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.

Download for localhost .zip · Node 24+
Unzip and start on localhost:5173 Setup and updates ↓
$npm install && npm run dev
macOS Coming soon Windows Coming soon

Free, local, and private. Data stays in data/ascend.db. No account required.

Interactive rules specimen · Try editing dates or values

Hike in Switzerland

Six-day alpine traverse in the Bernese Oberland.

Readiness
50%
Blocking
2
Next step
Passport valid 6 months after trip

Requirements evaluated by server rules

2 of 4 satisfied

Setup guide

From download to running in four steps.

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.

  1. 01

    Download

    Save Ascend.zip. No account or cloud setup.

  2. 02

    Unzip

    Extract the archive. It creates an Ascend folder.

    $unzip Ascend.zip
  3. 03

    Install

    Install the app dependencies once.

    $cd Ascend && npm install
  4. 04

    Start

    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

A new download will not wipe your data.

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.

Inside the localhost package

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.

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.

date_valid_until numeric_min numeric_max date_before manual

Local SQLite ownership

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.

data/ascend.db 127.0.0.1:3000 JSON export/import

Optional AI with key rotation

Draft requirements with Google AI Studio (with automatic rotation across up to 20 saved keys on HTTP 429 rate limits) or a local OpenAI-compatible proxy. Manual entry always works.

gemini-2.5-flash HTTP 429 auto-rotate Manual fallback