goaldrift
Open

local-first · no account · no streaks

The useful signal isn't progress. It's silence.

goaldrift counts the days since you last wrote anything about each goal, sorts your list by that gap, and puts the one you have been quietly avoiding at the top. You never update a percentage, because there isn't one.

Free. No sign-up screen — the link goes straight into the app.

StalledBlocked 19 days

Ship the beta to ten testers

28 days agotoday
Nobody wrote a note on this goal for 19 days. Nothing had to be marked overdue for that to show.

the problem

A progress bar is a thing you maintain.

Every tracker asks you to keep a number honest. So the number stops being about the work and starts being about the last time you felt like updating it — which is exactly the moment it stops being useful.

a progress bar

Ship the beta to ten testers60%
set by youthree weeks ago

Still 60%. It has been 60% since the last time you moved it there by hand.

the same goal, in goaldrift

Ship the beta to ten testersStalled
28 days agotoday

Nobody typed that number. It is the distance between today and the last thing you wrote.

A percentage is a claim you have to keep making. A gap is a fact that accumulates whether you look at it or not.

how it works

28 days, today on the right.

Every goal carries the same small chart. There is nothing to configure and nothing to fill in — it is drawn entirely from the notes you have already written.

a bar
A day you wrote something down.
a taller bar
More than one entry that day. Two lines beat one.
a hairline
A day you didn't — but before the silence started counting.
the dotted run
The gap since your last note. It holds off for the first three days, then starts drawing.

The number the dots end in runs the whole app. It decides the goal's state, and it decides where the goal sits in your list.

the order

The order is the opinion.

You cannot drag this list. Goals were added in whatever order they occurred to you; what you see is what the sort decided, and the quietest thing is always first.

  1. Ship the beta to ten testers
    StalledBlocked 19 days
  2. Get through the Spanish B1 book
    Stalled
  3. Run 10k without stopping
    Easing off
  4. Build the shelves
    Moving
0–3 days quiet
Moving
4–7 days quiet
Easing off
8+ days quiet
Stalled

getting going again

Three things put a goal back to zero.

Each of them resets that goal's clock and drops it down the list. None of them asks you to estimate anything.

  • Write a noteOne line about what you did, or what you found out. It draws a bar on today.
  • Tick a stepTicking logs it for you, so the chart fills as a by-product of working rather than as a second chore.
  • Clear a blockerGetting unblocked is progress, and it counts as progress. The toast says so, because the list moves.

the one ai feature

It has to quote you back.

Unstick this reads one goal — the notes, the steps, the open blocker — and returns 3 moves of 30 minutes or less. Every answer carries a line copied verbatim out of your own log, so you can tell at a glance whether it actually read anything.

Ship the beta to ten testers

waiting on someone

You aren't stuck on the work, you're stuck on one person — and in nineteen days you have chased them exactly once. The goal has quietly become somebody else's queue.

your words:
Still no build. Chased Priya on Slack.
  • Reply on the same Slack thread with a date and a fallback: if the signed build isn't through by Thursday, five testers get an unsigned one.

    10 min

  • Send the invite email to the twelve names with that Thursday in it, so the build has something to be late for.

    20 min

  • Write one line on what shipping looks like if the build never arrives.

    15 min

3 moves of 30 minutes or less, and one line lifted out of your own log. A goal with an empty log gets nothing written down back instead of an invented diagnosis.

It runs on your key

Add an OpenAI key in Settings and it stays in that browser, goes to our route in a header, is used once, and is never written down server-side. OpenAI bills you directly.

It is one button

No chat window, no assistant, no daily digest. You ask when you are stuck, and the rest of the app never mentions it.

It can say no

A goal with an empty log gets told there is nothing written down, rather than handed a confident diagnosis of nothing.

your data

There is no server to leak it.

Goals live in your browser under a single key and never leave it. We hold no database, no account table and no copy of your notes — there is nothing on our side to hand over, sell, or lose.

Kept in this browser

One key, one device. Clearing your site data clears your goals, which is the honest consequence of nobody else holding them.

Moved as a file

Settings saves every goal to one JSON file and loads it back elsewhere. Loading only adds what is missing, so restoring a backup can never overwrite newer work.

Never carries your key

That file holds goals and nothing else. Your OpenAI key is not in it.

Settings → Save goals to a file

deliberately missing

What it leaves out.

Most of the work went into the things that are not here. Each one was considered, and each one would have made the silence easier to hide.

  • streaks
  • points
  • badges
  • percentages
  • folders
  • tags
  • reminders
  • notifications
  • a chat bot
  • a social feed
  • a subscription
  • an account

Just the days.

questions

The short answers.

Do I need an account?
No. There is no sign-up, no email and no password. Open goaldrift and add a goal — that is the whole onboarding.
Where are my goals stored?
In your browser, under a single key, and nowhere else. There is no database on our side and nothing to breach.
Does it sync between devices?
Not on its own — that is the trade for having no account. Save your goals to a file in Settings and load that file on the other device; loading only adds what is missing and never overwrites what is already there.
What does it cost?
Nothing. The single AI feature runs on your own OpenAI key and OpenAI bills you directly for it; everything else in the app works with no key at all.
Are there streaks, reminders or notifications?
None. Nothing chases you. The list quietly reorders itself so the goal you have ignored longest is the first one you see, and that is the entire mechanism.
What happens if I disappear for two months?
The app is built for exactly that. Come back and the list is already sorted by how long each goal has been quiet, so you are reading a state of play rather than a pile of missed days.

Add one goal. Come back in a week.

The list will have sorted itself by then, and the top of it will be a goal you had stopped mentioning. That is the whole product.

Open goaldrift

No account. Nothing to cancel.