Tability

tability.iocontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

Goal tracking for teams: objectives with measurable results, a weekly check-in that nudges the owner, and a view of what is on track.

Promptfree, for everyone, and the only version there is
Build me goal tracking that replaces Tability: objectives with real numbers, a weekly check-in short enough that people finish it, and an honest view of what is on track.

STACK
- Node 20+ with Fastify, server-rendered HTML with a little vanilla JS
- SQLite through better-sqlite3, WAL mode
- A worker for the nudges
- Caddy in front

THE DATA MODEL
- cycles: id, name, starts_on, ends_on, is_active — a quarter, usually
- objectives: id, cycle_id, parent_id, title, description_md, owner_id, team_id, position, archived_at
- results: id, objective_id, title, kind, start_value, target_value, unit, direction, owner_id, source_kind, source_config_json, is_binary
- checkins: id, result_id, value, confidence, note_md, actor_id, at — append-only. This table is the whole product
- reminders: id, user_id, weekday, local_time, timezone, channel, is_active
- nudges: id, reminder_id, result_id, sent_at, responded_at
- Progress is always computed from the check-in series, never stored. A stored percentage is a percentage that stops matching its own history

THE CHECK-IN, WHICH IS THE ENTIRE PRODUCT
- Once a week, each owner is asked one thing per result: what is the number now, how confident are you, and one line of why
- Three fields. If it takes longer than two minutes for all of somebody's results, it will not be done, and a goal tool nobody updates is a spreadsheet from January
- The reminder goes to where they already are — email or chat — and the reply can happen from there, with a link that opens straight into their own results and nothing else
- One reminder, one follow-up, then silence until next week. A nudge that arrives four times is a nudge that gets filtered
- The previous value and the previous note are shown while they type, because the useful question is what changed

CONFIDENCE, WHICH IS THE HONEST SIGNAL
- Alongside the number, a confidence: on track, at risk, off track
- The number is lagging; the confidence is leading. A result at 60% with the owner saying at risk is a different conversation from the same 60% saying on track, and only one of them needs attention this week
- Confidence changes are what a review meeting should be about, so make the change visible rather than only the current state
- Never average confidence into a score. It is a judgement, and averaging judgements produces a number nobody owns

RESULTS THAT MEAN SOMETHING
- Kinds: a number moving to a target, a percentage, a currency amount, a value to keep above or below a threshold, or a binary done or not
- Direction matters: some results go up and some go down, and the progress calculation must handle both without anybody thinking about it
- A start value, so progress is measured from where you began rather than from zero
- Binary results exist because some things are genuinely done or not, and forcing them into a percentage is theatre
- Automatic sources where a number already lives somewhere: an HTTP endpoint returning a value, a query against a database, or a CSV. Pulled on a schedule and appended as a check-in with the source recorded. A number that updates itself still needs the confidence and the note from a person

STRUCTURE
- Objectives can nest, one or two levels, tied to teams
- Every result has exactly one owner, a person and not a team. A result owned by everybody is updated by nobody
- A cycle closes: the final values are recorded, a short retrospective note per objective, and the cycle becomes read-only

VIEWS
- A list for an owner: only their own results, only what is due
- A team view: results with their progress, confidence and last check-in date
- A presentation view for the meeting, showing what changed since last time first — because the meeting should be about the deltas, not a reading of the whole list
- Stale results, which have not been checked in on for longer than a period, ranked. That list is the health of the whole exercise

THE HONEST PART, WORTH PUTTING IN THE README
- This category fails when goals become a performance for management. The signal is that everything is green in week eleven and the quarter still missed
- The defences are: confidence recorded separately from the number, notes kept and readable, and no aggregate score. Do not add a company-wide percentage — it is the first thing anyone asks for and the fastest way to make every number dishonest

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SESSION_SECRET, SMTP_URL, CHAT_WEBHOOK
- Migrations on boot, each once
- Nightly backup off the machine, restore script
- Health endpoint reporting how many results are overdue a check-in

WHAT MATTERS MOST
The two-minute check-in and the confidence field. Build the reminder and the three-field form first, run one real quarter on it, and count how many weeks people actually completed. If that number is low, nothing else in the tool matters.

Give me the repository, migrations, .env.example, a seed cycle with objectives and twelve weeks of check-ins, and a README with deploy steps behind Caddy.

What you lose

  • A weekly nudge and a check-in form short enough that people finish it
  • Integrations that update a number automatically from another tool
  • Presentation views for showing progress to a board

If you would rather not build

  • A spreadsheet with a weekly column, which is what this replaces
  • A recurring calendar reminder and a shared document

What it costs

read from their page 15 Aug 2026

PlanBilled monthlyBilled yearlyLast read
—$12/mo—15 Aug 2026

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Plane

$0

Cycles and modules give a similar rhythm to goal tracking.

makeplane/planefree · open source

Metabase

$0

Charts the check-in table without you writing a dashboard.

metabase/metabasefree · open source

Why this verdict

our own opinion · changed only by a person

84/100

Verdict yes at 84. Check-ins as appended rows and a one-number form. Asking for confidence separately is the idea worth copying.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Tability

answered from the record above

Is Tability free?

No — the plan we track is $12 a month. From around $12 per user per month billed monthly, cheaper annually.

Can you replace Tability by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 84 out of 100, build time one session. Read what you lose before you decide.

How much does Tability cost?

$12 a month on Premium — $144 a year. Recorded 10 Aug 2026.

What do you lose by replacing Tability?

A weekly nudge and a check-in form short enough that people finish it; Integrations that update a number automatically from another tool; Presentation views for showing progress to a board. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Tability?

Yes: Plane, Metabase. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 33 in Tasks & project management

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc