Local-first · works offline · account optional

Every goal you're chasing, on one horizon.

Not a to-do list. Give each goal its own track — a real deadline, the phases in between, the rhythm you'll keep — and whenever you open it, it tells you where you are.

Open the app

Try it: the track name at the top really does switch.

One colour each

Every track in its own colour, on one year.

Pick a track's colour when you make it and the whole app wears it while that track is open — buttons, rings, links, and its own run of days. Run as many tracks as you like; they stack on the same calendar, whatever their number.

Available track colours
The difference

A to-do list tells you what's left. Horizon tells you where you are.

Long goals don't fail because you forgot a task. They fail because the distance is invisible — nothing tells you that month three was meant to look different from month one.

A to-do app

  • A flat list that resets every morning
  • Every ambition competing in one inbox
  • “Done” is the only signal you get
  • Tasks with no story behind them

Horizon

  • A dated horizon, with phases between here and it
  • One track per ambition — switch between them, or run them side by side
  • Streaks, phase progress, deliverables shipped, materials worked through
  • A full written plan living behind every track
Tracks

Split your ambitions into as many tracks as you need.

One goal with everything it needs around it — its own horizon, phases, rhythm, materials, deliverables and streak. Nothing bleeds between them, and each one remembers exactly how you left it.

Learn the guitar
12 months

Chords, then rhythm, then songs — with a practice rhythm for the week and a book to work through.

Half marathon in October
20 weeks

Strength, cardio and rest laid out across the week, building volume phase by phase.

Land the senior role
6 months

Skill up, get visible, apply in volume, then close — each stage with its own checklist.

Every new track starts as the same blank skeleton and becomes whatever you rewrite it into.

A real week

This is what a week in a track actually looks like.

Below is week 12 of a training track. Each day carries the focus type it was assigned, the rotation due on it and the work that belongs there.

Days, focus types, colours, rotations and tasks are all yours to define — this is one track's answer, not a fixed format.

The dashboard

Modules. Arranged the way you think.

Drag panels between columns, reorder them, close the ones a track doesn't need — closing only hides the panel, the data behind it stays untouched until you bring it back. Every track keeps its own layout, and what a new track opens with follows from what it is about.

Weekly overview

A seven-day board built from the rhythm you set — focus types you name and colour yourself. Tick off today; tomorrow arrives already laid out.

Phases

Your phases as a dated vertical timeline with editable deadlines. Horizon works out which phase today belongs to and flags it when you drift.

Consistency

A year of days in the track's own colour, and the streak riding on it. Run more than one track and the same panel stacks them on the same calendar columns — one glance for all of them.

Materials

Books, courses, videos and links, grouped how you like — each with its own notes beside it.

Deliverables

The things a track has to actually produce, ticked off as they land. Link a code repository and it keeps an eye on that too.

Timer

Twenty-five minutes of work, five of rest, sitting next to the plan it belongs to — for a set at the gym as readily as a stretch of reading.

Workout

Named sessions you pick from — push, pull, legs — each with its exercises, a row per set, and last week's numbers beside today's so you know what to beat.

Rotations

For anything that cycles — a ten-week exercise rotation on Mon/Wed/Fri, a reading rotation on Tue/Thu. Define the cycle once; the right item lands in the right day automatically, week after week.

Built for both screens

A two-column control panel on the desktop, a single readable column on the phone — same data, same dark and light themes, and the phone version installs to your home screen.

In your hand

The same tracks, rebuilt for a thumb.

Not the website squeezed into a phone. Same data, same rules, laid out for one hand — the grid turns ninety degrees so a day is big enough to press.

ProgressA week to a row, running down the page. Tap any day to see what was done on it.
My SpaceThe whole track as one column. Hold any panel to pick it up and rearrange.
WorkoutA row per set, with last week's numbers beside today's. Phone only.

Install the website

Add to Home Screen on Android or iOS and it runs full-screen, offline, with its own copy of your data. A complete way to use Horizon, not a preview of one — everything on this page is in it.

Or the Android app

A real app sharing the same core, for the handful of things a browser cannot reach: a step counter wired to Health Connect, the share sheet, deep links, and backups written straight to your files.

How it works

From a vague ambition to a dated plan, in one sitting.

No setup wizard: you land on a working dashboard and shape it as you go. Five minutes, and the track is real.

01

Open it and start

No sign-up and no setup screens. The first visit opens on a blank track — four placeholder phases and a weekly rhythm — ready to use.

02

Set the horizon

Name the track, then give it a start date and a real deadline in its settings. That single decision is what turns a wish list into a roadmap: from then on every day counts against something.

03

Shape the phases

Rewrite the placeholder phases, add your own, give each a deadline. Then write the plan out in full if you want one.

04

Show up on rhythm

Say what each day of your week is for, add the materials you'll work through, and start ticking. The dashboard takes it from there.

Accounts

No sign-up. An account only if you want one.

Horizon opens and works with no account at all. Sign in with Google — from Settings, whenever you feel like it — and the same tracks follow you between devices. Sign out and nothing breaks; the app keeps running on the copy in your browser. How your data is protected.

The same tracks on every device

Sign in on your laptop and your phone and both see the same data. Edits are merged item by item on the server, inside a transaction, so two devices ticking different boxes on the same day keep both — no last-one-wins.

Search and history, signed in

Full-text search across every track, material, phase, roadmap and note, and a history view — active days, weekday habits, months, longest streaks per track — computed by the database rather than your browser.

Only ever your own data

Every query is scoped to your account, the session lives in a cookie your browser can't read from JavaScript, and the server keeps only a hash of it. Nothing is shared between accounts, and there is nothing to share.

Delete it in one click

Settings → Account → Delete account removes everything the account holds on the server, in a single transaction. Your device keeps its own copy, and the app carries on working offline as before.

Your data

Nobody is holding your goals hostage.

It lives in your browser

Everything is stored locally in IndexedDB. Without an account, nothing ever leaves the device — there is no server copy to cancel or ask about.

Offline is the normal case

No connection, no problem: everything is read and written locally first. A sync catches up whenever you have signal, and the server merges it with whatever your other devices did meanwhile.

Installs like an app

Add it to your phone's home screen and it opens full-screen, works offline, and keeps its own copy of your data on that device.

Yours to take

Export the whole workspace as one JSON file, or a zip with every roadmap, plan and note broken out as readable markdown.

Before you start

The things worth knowing first.

Do I need an account?

No. The app opens straight into a working track and keeps everything in your browser. An account only exists to carry your data between devices, and you can add or remove one at any point without losing anything.

What does it cost?

Nothing. There is no paid tier, no trial, no ads and no analytics following you around. It is a personal project, not a business.

Where is my data kept?

In your browser, always. If you sign in, a copy also lives in a MongoDB database in Frankfurt, in the EU, reachable only by the app's own server with credentials scoped to that one database.

Can I use it on my phone?

Two ways, and both are complete. Open it in your phone's browser and choose Add to Home Screen: it installs, opens full-screen, works offline and keeps its own copy of your data. Or install the Android app, which is the same tracks arranged for a thumb and adds the things a browser cannot reach — a step counter, the share sheet, deep links.

Can I get my data out?

At any time, in two shapes: one JSON file with the whole workspace, or a zip with every roadmap, plan and note as readable markdown. No export request, no waiting.

Is it finished?

No, and it says so — the version sits in the corner of every screen. It is used daily by the person building it, which is why the rough edges get fixed.

Community

There's a Discord.

Ask something, say what is broken, or show the track you are running. It is also where new versions get announced and where a feature usually starts as somebody complaining about the current one.

Join the Discord

Pick the goal you keep postponing. Give it a horizon.

No account, no trial, nothing to install unless you want to. The app opens on the next click.

Open the app
v0.103.0