The Idea Factory

Writing · 2 Oct 2026

The Idea Factory

Contact: one app between people and the machine

My mail, WhatsApp and Signal now live in one app I built myself. I called it Contact. It is not a chat app and not an AI app, it sits somewhere in between. When I tried to draw what it is in my notebook, a factory came out. This post explains that drawing, starting with a puzzle.

A puzzle for the class

At Jurre's school the day starts with a "binnenkomer", a small opening activity, and every child takes a turn. The message that it was his turn next came in through the WhatsApp group of his class. So one evening Jurre sat down and made his own: nine dots, and a rule. "Je moet elk stipje in een eigen vakje hebben, maar je mag maar twee vierkanten tekenen." Every dot in its own box, but you may only draw two squares.

Jurre's puzzle: the rule on top, nine dots, and one of the solutions
Jurre's puzzle: the rule on top, nine dots, and one of the solutions

He wanted copies, a clean one for everybody. I took a photo, which lands in my own photo library at home within seconds. In Contact I opened a session and typed what I wanted: take the latest photo, make a printable page with the text and the empty puzzle, without the solution, and print it. One page first.

The agent did not know where the printer was. It scanned the network, found a Canon that was asleep, told me so, and waited until I switched it on. Along the way it found the original message from the class group in Contact's own WhatsApp archive, so it knew what the page was for.

The session in Contact: the agent looks for the printer, I tell it what to make
The session in Contact: the agent looks for the printer, I tell it what to make
Printing, on a printer that nobody had set up for this
Printing, on a printer that nobody had set up for this

The first page came out faded, one cartridge was nearly empty. The agent found a print mode that still gave deep black, and then the copies came out. Within the hour there was a stack on the table: the empty square, the nine dots, the rule in a proper font. The next morning Jurre took them to his class.

The result: the puzzle without the solution, ready to hand out in class
The result: the puzzle without the solution, ready to hand out in class

That small evening has everything in it. Someone has an idea. It comes in, somebody decides it matters, a machine with enough context and energy turns it into a thing, and the thing goes back to the people. That is the factory.

The drawing

The drawing from my notebook: people, ideas, triage, the machine with its chimney, and the long arrow back
The drawing from my notebook: people, ideas, triage, the machine with its chimney, and the long arrow back

On the left: people. They have ideas, and those come in every shape: a mail, a WhatsApp, a voice message, a screenshot, a sketch on a sheet of paper.

Then triage, the funnel. Not everything needs me, and not everything needs me now. Contact reads everything that comes in on the machine in the homelab: my own hardware, boring Debian, offline. It sorts what needs me from what can wait, and groups messages into conversations per person or per topic, whatever app they came from. Fewer apps, less fiddling, but more context and more control.

Contact on the laptop, here with sample data: what needs me, drafts, and a conversation with a draft reply waiting
Contact on the laptop, here with sample data: what needs me, drafts, and a conversation with a draft reply waiting

Then the machine itself: creation plus context. A session is an agent working on one thing, started from a conversation with one tap. What makes it good is not the model, it is the context it gets. My notes and rules. Every log line of all my apps and computers, well over a million signals a day. The photo library. Customer files and documented source code. The conversation it came from. The machine knows where it stands before it starts.

On top sits the chimney: energy, in tokens, compute and memory. This is the part that is new. Context used to be a pile of documents. With enough energy it becomes fluid, you can shape it. Ask it, rewrite it, turn it into a page, a prototype or a print.

The chimney, measured: tokens per model
The chimney, measured: tokens per model

I will be honest about the chimney. Some weeks we burn millions of tokens on a single feature, and I do not always know if it was worth it. Let the record show that I spare no cost or effort to chase software feel. But a factory with a chimney and no meter is something to keep an eye on.

Out of the machine come artifacts: a draft reply, a preview page, a prototype, a printed puzzle, a website, a game. Nora wanted a game too. She drew a rainbow and told me about a unicorn on a skateboard collecting colours in a fluffy world of clouds, and that became the game. Same factory, different input.

Nora's input for her game: a rainbow, clouds and colours to collect
Nora's input for her game: a rainbow, clouds and colours to collect
Nora playing the game that came out of her drawing
Nora playing the game that came out of her drawing
Another product of the same factory: the music app, native on iOS and on Android
Another product of the same factory: the music app, native on iOS and on Android

And then the long arrow at the bottom: feedback. Ideas, artifacts and products go back to the people. A draft reply goes back to the customer, after I read it and approve it on my phone; Contact never sends anything by itself. The puzzle went back to the class. What people say about it comes in again on the left, and the loop closes.

Not a chat app, not an AI app

There are apps for people: Teams, Slack, WhatsApp. There are apps for AI. Contact is neither. It sits between them, on them and in them, at the crossing of people and machine. It is made for making things, and for learning while you do. When it works I hardly notice it: a message comes in, a session picks it up, a draft is waiting when I look.

It runs as a native app on the iPhone, the Vision Pro and the laptop, all sharing one idea of what a conversation and a session are. On the Vision Pro the sessions float next to each other, a very nice way to watch several streams of work at once. On the iPhone it is with me all day. A few weeks ago I wrote about making my own Android; that taught me how far you get without touching the operating system, if you own the data, the screens and the concept. Contact is what came out of that lesson.

The hardest word

When making is cheap and fast, the difficult part is saying no. At one point I asked for my lock screen to show the state of the factory: what waits for me, which session has a question. It was built, I tested it on my phone in the evening, and it worked. I looked at it and decided it was not useful to me. Back to plain notifications, the same evening, nothing left behind.

The lock screen experiment: built, tested, and switched off again the same evening
The lock screen experiment: built, tested, and switched off again the same evening

My personal reflection helps here. Writing in the notebook makes my norms visible: privacy, the feel of software, and the rule "das Beste oder nichts". That rule leads to "no" quite often. A not-doing choice is a real choice, and now that almost anything can be made, it may be the most important one.

Conclusion

Contact is a small factory. People and their ideas go in, triage decides what matters, a machine with context and energy makes something, and it goes back to the people. The trick is not the model, it is the context. And the courage to throw away what you made when it is not good enough.

So if your inbox feels like a pile of messages, maybe it is a pile of ideas waiting for a factory.

← More writing