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.
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.
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.
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.
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.
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.
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.