Sunsama

sunsama.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

A daily planner that pulls tasks from your other tools, asks you to choose what fits in a day, and puts each one on the calendar with a time estimate.

Promptfree, for everyone, and the only version there is
Build me the daily planner that replaces Sunsama: pull in what I could do, choose what actually fits in a day, and put it on the calendar.

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

THE IDEA, WHICH IS A PRODUCT DECISION MORE THAN A FEATURE
- The tool exists to stop you overcommitting. Everything about it is designed around a ritual: once a day, you look at everything you could do, choose a subset, estimate each one, and see the total against the hours you actually have
- If the total exceeds the day, the interface says so plainly and makes you remove something. That single friction is the product
- So do not build a task list with a planning screen bolted on. Build the ritual, and let the list serve it

THE DATA MODEL
- tasks: id, title, notes_md, source_kind, source_id, source_url, project_id, estimate_minutes, actual_minutes, planned_date, planned_order, completed_at, archived_at, carried_count, created_at
- days: id, date, user_id, planned_at, reviewed_at, capacity_minutes, note_md — the ritual itself, recorded
- time_blocks: id, task_id, starts_at_utc, ends_at_utc, calendar_event_id, is_focus
- integrations: id, kind, credentials_encrypted, last_sync_at, cursor
- external_items: id, integration_id, external_id, title, url, status, assignee, updated_at, closed_at — mirrored, and the identity is the external id, never the title
- sessions: id, task_id, started_at, ended_at, source — the timer
- Carrying a task to another day increments carried_count and is recorded. A task carried five times is the most useful signal this tool produces

THE PLANNING RITUAL
- One screen, once a day: yesterday's unfinished tasks, anything due, the inbox from every integration, and today's calendar already blocked out
- Drag what you will do into today. Every task must have an estimate before it can be planned — that is not optional, because a plan without estimates is a wish
- The running total against your available hours, recomputed as you add. Available hours means the day minus meetings, not the whole day
- Over capacity, the interface refuses to be quiet about it. Not a warning colour — a line that says you have planned nine hours into six
- Shutdown at the end of the day: what was done, what was not, and each unfinished task carried or dropped deliberately. The carry is a decision, not a default

CALENDAR
- Two-way with the major providers, read-only ICS for anything else
- Meetings block capacity automatically
- A planned task can be placed as a real calendar event so colleagues see the time is taken, which is the only defence against a day of meetings
- Store instants in UTC, expand recurrences properly, and test both daylight-saving transitions
- Only busy intervals stored from the read side; meeting titles are shown but not required

PULLING TASKS IN
- Adapters for the trackers, inboxes and boards you already use: fetch what is assigned to you, with its identifier, title, status and link
- The external item is mirrored so the plan survives the source being unreachable
- Completing here optionally writes back, and that is off by default — one-way is safer and simpler
- A closed item at the source is marked here rather than deleted, because it may already be in a day
- Each adapter is a small module with a fixture and a test; they break when the host changes, and a failing test beats a mystery

DOING THE DAY
- The day as a list in order, with the estimate beside each
- A timer per task, one running at a time, enforced with a partial unique index, recording actual minutes
- Actual against estimate shown after completion, quietly. Over time this is how estimates get better, and it should never feel like a scolding

WHAT IT TELLS YOU
- Estimated against actual, per task and in aggregate: most people plan at about half of reality, and knowing your own ratio is the single most useful output
- Planned against completed, per day and week
- Carried tasks ranked by how often
- Time by project, and the share of the week that went to meetings
- All computed at query time

WHAT NOT TO BUILD
- Team dashboards of who planned what. The moment this is a management tool, people plan for the audience and it stops working
- Notifications through the day. The ritual is at the start and the end; interrupting the middle defeats it

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SESSION_SECRET, ENCRYPTION_KEY, SMTP_URL, provider credentials
- Migrations on boot, each once
- Nightly backup off the machine, restore script
- Health endpoint reporting the age of each integration's last sync

WHAT MATTERS MOST
Capacity against the plan, and the required estimate. Build the planning screen with the running total and the refusal to stay quiet when it is over, then use it every morning for three weeks. Everything else is a task list, and there are plenty of those.

Give me the repository, one integration adapter with its fixture, migrations, .env.example, a seed week, and a README with deploy steps behind Caddy.

What you lose

  • A daily planning ritual designed to stop you overcommitting, which is a product decision more than a feature
  • Task import from a dozen trackers and inboxes
  • Calendar writes so the plan is visible to colleagues

If you would rather not build

  • A paper notebook, which is what this digitises
  • Todoist with a daily filter

What it costs

read from their page 15 Aug 2026

PlanBilled monthlyBilled yearlyLast read
—$20/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

Vikunja

$0

Self-hosted tasks with an iCalendar feed for the plan.

go-vikunja/vikunjafree · open source

Super Productivity

$0

Daily planning with time tracking and task imports, open source.

super-productivity/super-productivityfree · open source

Why this verdict

our own opinion · changed only by a person

76/100

Verdict yes at 76. The refusal to overfill a day is the feature; everything else is a list with timestamps.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

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

Questions about Sunsama

answered from the record above

Is Sunsama free?

No — the plan we track is $20 a month. Around $20/month billed monthly, $16 annually.

Can you replace Sunsama by building your own?

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

How much does Sunsama cost?

$20 a month on Standard — $240 a year. Recorded 10 Aug 2026.

What do you lose by replacing Sunsama?

A daily planning ritual designed to stop you overcommitting, which is a product decision more than a feature; Task import from a dozen trackers and inboxes; Calendar writes so the plan is visible to colleagues. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Sunsama?

Yes: Vikunja, Super Productivity. 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