12 September 2026 · Joachim

Introducing Ezo

A small and powerful app for items, notes, and lists. Two years in the making, built with AI, and drawn on a grid I could not stop refining.

An Ezo list on grid paper: items with checkboxes and stars, a note, and a calc block
A list in Ezo. Items with a checkbox, a starred item, a note without one, and a calc block counting what is done.

Ezo is a to-do app. I hesitate to write that sentence, because the category is crowded and most of it looks the same. But that is what it is: a place to write down what you need to do and what you need to remember, and to get it done. It runs at ezo.gs, on the Mac, and on iOS.

This is the first post on the 0001 blog, and it is about the product I have spent the longest time on. It is also the product I use every day to run the studio. So this is part introduction, part confession about how long it took.

The name comes from Ezo, the old name for Hokkaido in Japan — 蝦夷 / エゾ. That is where I developed the app. Short, easy in every language, and a small nod to the place that shaped the work.

Two years ago

I started Ezo two years ago as an experiment. Not an experiment in to-do apps, but in building with AI. I wanted to know whether a designer with a clear idea and an AI pair could ship a real product without a team. The to-do app was the excuse. It is the simplest product in the world to describe and one of the hardest to make feel right, which makes it a good test.

The first version took a weekend. It had a list, some checkboxes, and a sync layer that mostly worked. I used it for a week and threw it away. The second version took a month. I used it for two months and threw most of it away. This happened more times than I want to admit. Each time the AI got better, each time I got better at asking, and each time the thing I actually wanted got a little clearer.

What I wanted was not features. Every version had enough features by day two. What I wanted was for the app to feel like paper. Quiet, fast, and honest about what is on it.

The Ezo start page: a grid of 20 pixel squares with the words This is Ezo and links to download for Mac and iOS
ezo.gs today. Everything sits on a 20 px grid, including the empty space.

Getting lost in the grid

Paper, for me, means grid paper. So at some point Ezo got a grid in the background, and that is where I got lost.

Once there is a grid, everything has to sit on it. The text baseline. The checkbox. The one pixel border of a cell, which has to land on a half pixel so it renders crisp on every screen. The gap between two lists open side by side. The height of a row when the font size changes. I spent months on this. Not on the grid itself, which is a few lines of CSS, but on getting every element to respect it, and on finding out what happens to a layout when it does.

To understand what I was doing I went back to the people who did it first. Max Bill, the Swiss designer, architect and painter, who studied at the Bauhaus in Dessau and later co-founded the Ulm School of Design. Bill believed that a good object should be the result of its function and its material, and nothing else. His kitchen clock for Junghans is the clearest example I know. A face, twelve marks, two hands, a timer. Nothing to remove.

Max Bill in 1970, in a dark suit and glasses, in front of a building he designed in Zurich
Max Bill in Zurich, 1970, in front of the radio studio he designed with Willy Roost. Photo: Marcel Vogt, ETH-Bibliothek Zürich, Bildarchiv, CC BY-SA 4.0.
The Max Bill kitchen clock for Junghans, a white ceramic face with a timer below
The Junghans kitchen clock, designed by Max Bill in 1956. Photo: Christos Vittoratos, CC BY-SA 3.0.

Bill's paintings are the same idea taken further. In his concrete art the grid is not a tool behind the picture, it is the picture. Colour fields follow a rule, and the rule is the composition. That is very close to what a list of items is: a rule for placing things, and the things.

Max Bill's painting Progression in 6 Stages, 1942 to 1943, geometric colour fields on a gallery wall
Max Bill, Progression in 6 Stages, 1942–43. Photo: Tiago Vasconcelos, public domain.

Behind Bill is the Bauhaus. The school building in Dessau, by Walter Gropius, is a grid you can walk into. The glass curtain wall on the workshop wing is a spreadsheet the size of a building, and it is beautiful because nothing in it pretends to be something else. Structure is visible. The grid is not decoration, it is the thing that holds everything up.

The Bauhaus building in Dessau, with the vertical BAUHAUS lettering and the glass workshop wing
The Bauhaus in Dessau, by Walter Gropius, 1926. Photo: Aufbacksalami, CC BY-SA 4.0.
The glass curtain wall of the Bauhaus workshop wing, showing the structure through the glass
The glass curtain wall of the workshop wing. Photo: Cethegus, CC BY-SA 3.0.

Tufte, and the data in a to-do list

The other person I kept returning to was Edward Tufte. His books on information design taught me to see a to-do list as a small infographic. Every list is data: what is done, what is not, what matters, what is due. Most apps bury that data under chrome. Buttons, badges, avatars, gradients, drop shadows. Tufte calls it chartjunk, and he asks a simple question of every mark on the page: does this carry information, or is it decoration?

In Ezo the answer had to be information, every time. A checkbox is a square. A completed item is struck through. A starred item gets a star. A header is a coloured cell. The grid lines are light because they are context, not content. If you look at a list from across the room you should be able to read its shape: how much is left, and where the important things are. That is the data-ink ratio applied to a Friday afternoon.

Ezo planets list in an iPhone frame above a Mac, three columns with coloured headers and starred rows
Ezo on iPhone and Mac. Planets and their order — three columns, coloured headers, two starred rows.

What Notion taught me

If the grid came from Switzerland and Dessau, the model of the content came from Notion. The block system changed how I think about documents. Everything is a block, every block can be moved, and a page is just a stack of them. That is a very liberating idea, and I wanted it in a to-do app.

But when I looked at how I actually used Notion, most of my time was in databases. Tables of things, with a few properties each. And the table was where the friction was. A database wants to be a spreadsheet. It wants rows and columns and a schema. My lists are not like that. They start as a scribble, grow a column when I need one, lose it a week later, and sometimes a row is just a sentence to myself.

So the question that finally gave Ezo its shape was this: can a spreadsheet feel like a notepad? Can I have cells, alignment, and a calc block that sums a column, without the ceremony of a schema? Can a note sit next to an item without asking what type it is?

Items, notes, and lists

The answer is three things. Only three, and I fought hard to keep it there.

Item
The atomic unit. Something with a checkbox. You complete it, you star it, you drag it, you put a header above it to group it. An item can carry a title and a few words of content, and it lives at a position on the grid.
Note
An item without a checkbox. Free text, next to the things it is about. A note is not a document and not a page. It is the sentence you would write in the margin of the list.
List
The container. A list is grid paper with items and notes on it, in one or more columns. It has a short Ezo ID you can share, it can be opened side by side with another list so you can move things between them, and it can hold a calc block that does the arithmetic on what is above it.

That is the entire model. There are no projects, no boards, no workspaces, no tasks. In Ezo we never say task. Everything is an item, and a task is just an item with a checkbox. Once you stop naming things by what you will do with them, the app gets very quiet.

Dogfood

I run 0001 on Ezo. Client work, studio work, this blog post. Every week starts as a list with three columns, and the week ends when the calc block says so. The dogfooding is the reason the app exists in its current form, because every rough edge I found became a fix the same day, and the fixes were made with the same AI that built the first weekend version.

A weekly list for 0001 in Ezo: client work across Iroco, Woodstock, SCT and Settlementet, two items completed, and a note
A studio week in Ezo. The blog post is starred, two items are done, and the note is a note.

The stack behind it is the same one we use for client work: local-first, with sync through Convex, so the app is instant and works offline. It is available in ten languages. And it is built entirely on DS one, our design system, which is why Ezo, this website, and this blog post share the same fonts, the same grid, and the same 400 px column. The images above are the same 4:3 footprint as the picture on the front page. That was not a stylistic choice so much as the only choice, once everything is on one system.

Why it is AI enabled

Ezo is AI enabled for a simple reason: it was built with AI, all the way through, so it would be strange if it stopped at the door. The next step is agents that work beside your lists. Read them, add to them, tidy them, do the repetitive parts. Not a chat window bolted on the side, but an assistant with the same three primitives you have: items, notes, lists. That work is under way, and it is the part I am most excited about.

The bigger reason is that I think to-do apps stopped moving a long time ago. The category settled on a look and a set of features around 2012 and has mostly been rearranging them since. Design tools moved on. Documents moved on. Spreadsheets moved on. The list you keep of your own life deserves the same attention, and I think the way to give it that attention is to go back to the grid, back to Bill and Tufte, and build the next generation of it with the tools we have now.

Try it

Ezo is free to use at ezo.gs, with a Mac app and an iOS app on the same page. Make a list, put a few items on it, add a note, and see whether it feels like paper to you. If it does not, tell me. That is how every version before this one got better.

Open Ezo

Photographs of Max Bill and the Bauhaus via Wikimedia Commons: Max Bill, 1970 (Marcel Vogt, ETH-Bibliothek Zürich, CC BY-SA 4.0); Junghans kitchen clock (Christos Vittoratos, CC BY-SA 3.0); Progression in 6 Stages (Tiago Vasconcelos, public domain); Bauhaus Dessau (Aufbacksalami, CC BY-SA 4.0); Bauhaus workshop wing (Cethegus, CC BY-SA 3.0). Photos are cropped to 4:3.