Todo
A fast task list with optional structure. Type freely, or sneak dates, priority, and tags into the input — they parse out of the title automatically.
Tasks first, structure when you want it. A plain list of titles looks exactly like that — no chrome, no toolbar. The moment any task gains a due date, priority, or tag, the widget grows a compact toolbar so you can sort, filter, and act on the metadata you put in. Sync to TickTick, or keep it on the device.
- Send the proposal to Sarah
- Review the staging deploy
- Draft Q3 OKRs
- Reply to design review thread
- Pick up groceries
- Sketch a feedback loop for the inbox
- Wrap up the launch checklist
- Book the offsite venue
Add it to your dashboard
Press E then A and pick Todo. It drops in at four-wide, four-tall — comfortable for ten or so items before scrolling kicks in. Type into the input at the top, press Enter to add. Click the checkbox to mark done. Drag a row by its background to reorder.
The footer shows a running count — 3 remaining · 7 total — plus a Clear done button that wipes completed items in one click. The button only appears when there's something done to clear.
Quick-add: dates, priority, tags
Type a task and slip metadata in alongside the title. The parser extracts the metadata into the right slots and the task stores a clean title. Mix and match — order doesn't matter.
| Sets | Syntax | Aliases |
|---|---|---|
| Due date | tomorrow e.g. | today · fri · next mon · in 3 days · in 2 weeks |
| Priority | !high e.g. | !med · !low · !! · !!! |
| Tags | #work e.g. | #errand · #anything (alphanum + dashes) |
Don't want to type it? Click the calendar icon on any row to pick a date from a small menu (Today / Tomorrow / Next week / native picker / Clear). Click the flag to cycle priority none → low → med → high. Click any tag chip to filter the list to that tag; click #tag ✕ in the chip row at the top to clear.
Sort + Filter toolbar
A small toolbar appears only when at least one task has metadata. It has two controls:
- Sort: Manual respects the drag order; Due date puts overdue and today at the top, no-date at the bottom; Priority orders high → med → low → none. Dragging a row while sorted by date or priority auto-flips back to manual so the move sticks.
- Filter: All / Today / Overdue pills with a count badge on each. Today shows tasks due today plus overdue (so an overdue task isn't hidden when you focus on today). Overdue shows only past-due items, badge in red.
The toolbar collapses when every task is plain text. A list of three titles reads as a list of three titles — no controls in the way.
TickTick two-way sync (free)
Bind any Todo widget to a project in your TickTick account and the two lists stay in lock-step. Adding a task in butter creates it in TickTick; completing a task on your phone shows up here within a couple of minutes (or on the next new tab open).
To set it up:
- Connect TickTick once from Settings → Connections.
- Open the widget's settings (gear icon in edit mode). Set Sync with to TickTick, then pick a project from the dropdown.
- Tasks load. Edits, drags, completes, dates, priority, tags — all flow both ways.
Different Todo widgets on the same dashboard can be bound to different projects: one for Work, one for Home, one staying local for ephemeral things. Switching back to Local only restores your previously stored local list — TickTick mode never deletes the local copy.
Settings
| Setting | Type | Default |
|---|---|---|
| Sync with Local stores tasks on the device. TickTick (free, OAuth) syncs every task to a project in your TickTick account two-ways — completion, due date, priority, sort order, even drag-to-reorder. Switching between sources never deletes the other side; switching back restores what was there. | local · TickTick | local |
| Sort done to bottom Completed tasks move below open ones. Toggle off to leave them where they were checked. | toggle | on |
| Hide done tasks Hides completed tasks entirely. Still stored — toggle this off to see them again, or hit Clear done in the widget footer to delete them. | toggle | off |
| Show created time Adds a small relative timestamp next to each task — just now, 2m ago, 3d ago. Useful nudge when something's been sitting on the list too long. | toggle | off |
| Confetti on complete Small confetti burst from the checkbox when you mark a task done. Honors | toggle | on |
How storage works
Local-mode todos live in Chrome's storage.local, keyed by
the widget's instance ID — todos:<id>. TickTick-mode
todos live in your TickTick account; the widget keeps a local mirror
that refreshes on alarm and on the new-tab event.
- Each widget keeps its own list. Two Todo widgets on one dashboard means two independent lists (whether they're each local, each pointed at a different TickTick project, or one of each).
- Free: local lists stay on the device. Pro cloud sync (opt-in): local lists sync too. TickTick sync is free for everyone — it goes directly from your browser to TickTick's API, never through our servers.
Small things you might miss
- Drag from anywhere on the row. No dedicated handle — pointer-down anywhere on a task row starts a reorder once you've moved past a small threshold. Click the checkbox or any icon without dragging and it does what you'd expect.
- Overdue reads as red. The date pill on an overdue task is red instead of subtle. The duplicate left-border treatment we used to have was visual noise.
- Filter counts use the open total. The "2" next to Today is the number of open tasks due today + overdue, regardless of which filter is active. Switching filters never surprises you with a different count.
- Two empty states. A fresh widget says No tasks yet; one where you've cleared everything says Nothing left to do. Today-filter says Nothing's due today. Nice.
Heads up
- TickTick mode is online-first. Local mutations need a successful round-trip to TickTick. If a mutation fails — token expired, offline, server hiccup — the widget surfaces a red banner above the list with a Retry button and pulls fresh state to keep things consistent.
- Removing the widget removes the local list. If the widget was bound to TickTick, deletion only severs the link — your tasks live on in TickTick.
- Drag reorder pushes one update to TickTick. When
bound to TickTick, dragging a row updates that task's
sortOrderto a midpoint between its new neighbours. A single API call, not N.