Back
Cello — daily timeline16/9

Planning one realistic day at a time

A native macOS app that turns a loose task list into a schedule that actually fits the day.

12commits+6,8001,140
Project team
Product Design Engineer
Year
2026

Stack

FigmaPaper DesignConductorGitHubSwiftUImacOS

Cello is a native macOS menu-bar app for planning one day at a time. It started from a personal frustration: to-do apps are great at collecting tasks and terrible at telling you whether they fit into a real day. I designed and built it solo in Swift 6, SwiftUI, and SwiftData — local-first, with no backend.

The endless to-do list problem.

A list has no sense of time. It will happily hold thirty tasks for a day that has room for six, which quietly sets you up to feel behind. The core insight was that planning isn't about capturing more — it's about deciding what actually fits.

The overloaded list problem4/3

A 24-hour timeline you manipulate directly.

The heart of Cello is a 24-hour timeline canvas. You drag on it to create a task, resize the block to set its duration, and drag it to reposition — planning becomes a concrete, physical act rather than wishful thinking. A backlog sidebar holds everything you haven't placed yet, with inline capture and planning groups.

Backlog sidebar9/16
24-hour timeline canvas9/16

When blocks collide.

Direct manipulation only feels good if collisions feel intelligent. I built a drag system that pushes neighboring blocks out of the way — cascading the shift down the day — or swaps two blocks when that reads better, with conflict prevention that stops any placement from overflowing the day. It's the part of the app I'm proudest of as an engineering problem.

Push-cascade & swap collision handling16/9

Cards that track real time.

Every block is an always-editable card: inline title editing, on-card tag dropdowns, and completion checkboxes with dashed and hatched styling. Tags pair a color with an SF Symbol from a built-in icon picker. A per-task timer tracks actual versus planned duration to the second, showing live time ranges right on the card — and a daily rollover quietly moves yesterday's unfinished tasks back to the backlog on launch.

Editable cards, tags & per-task timers16/9

Built native and local-first.

Cello lives in the menu bar — no Dock icon, a floating planner window, and launch-at-login — so it's there when you need it and out of the way when you don't. Everything is stored locally with SwiftData, so the app stays fast and private, with no account and no backend.

Menu-bar planner & native details16/9

Where it landed.

Twelve focused commits and roughly 5.6k net lines across two sprints — a complete, runnable macOS app that makes daily planning feel concrete, calm, and easy to revise: a day you can see, adjust, and actually finish.

Let’s work together

Have a project in mind? I’d love to hear about it.