The lab notebook

Notes from the work.

Design decisions, technical choices, and lessons from making software. A look at the thinking behind the lab.

All entries

Lab dispatches

Some tools deserve to stay weird.

A particular hobby or workflow has its own language. Good software can respect that specificity without becoming hard to use.

Build notes

Show me what changed.

A preview should explain a proposed change, not just display a tidy result. Give people enough context to make a real decision.

Working principles

A useful tool should survive a quiet month.

Some jobs happen rarely. Design for the person who returns with a reason to use the tool and little memory of how it works.

Build notes

The first five minutes are part of the product.

Installation, setup, and permissions shape the first experience. Help someone reach a useful result without asking for blind trust.

Build notes

Search should help when you forget the name.

People remember fragments, places, and reasons. A useful search should give those memories somewhere to start.

Lab dispatches

Let the demo use ordinary data.

A tidy example can hide the interesting edges. Show representative inputs and honest limits without borrowing anyone's private information.

Build notes

An import needs a rehearsal.

Before moving a collection, check how its records will be interpreted. A readable preview should expose the decisions an import would make.

Working principles

Document the decision, not every click.

Useful help explains what a choice changes. Put the reason beside the control, and keep the long instructions for when they are needed.

Build notes

A name is part of the interface.

Labels should explain the object or action in front of someone. A short word is not always a clear one.

Build notes

A plugin should feel like it belongs.

The best place for a small tool may be inside something people already use. That makes fitting in part of the engineering work.

Working principles

A small tool can be a complete idea.

A focused app does not need to become a platform. It needs to finish a useful job and leave the person using it in a better place.

Build notes

An export button is a product feature.

Letting someone take their work with them is part of a useful product. The important detail is what still makes sense after the download.

Working principles

Before you add AI, name the job.

Start with the outcome someone needs, then decide whether a rule, a model, or a combination of both is the right tool.

Lab dispatches

Build the shortcut after you understand the long way.

The workaround may contain a decision the tidy workflow misses. Follow an ordinary task before deciding which steps to remove.

Lab dispatches

Fun is a good enough reason to build.

Not every idea needs a productivity argument. There is room for software that helps someone explore, notice, or enjoy something.

Build notes

Give an AI agent a smaller set of keys.

Useful autonomy starts with clear permissions. Separate what an agent can read, propose, and change before giving it a larger job.

Build notes

Good automation has an off switch.

A workflow is not finished when the happy path runs. It also needs a safe retry, a visible result, and a way to stop.

Lab dispatches

Leave the experiment with a useful note.

A prototype does not have to become a product to leave something valuable behind. Record the question, the evidence, and the next decision.

Working principles

Local-first starts with the work, not the network.

Offline access is only part of the idea. The deeper question is whether your work remains useful, portable, and under your control.

Working principles

The empty screen is part of the product.

Before there is a library, a dashboard, or a full page of results, there is an empty state. Give it a useful job too.

Working principles

No account can be a feature.

Sometimes someone just needs to finish a task. Require an account for a clear reason, and explain what going without one means.

Build notes

Your interface should work with one hand.

A person may have one hand free, a different input device, or no precise pointer. Give the task more than one workable route.

Working principles

A good default is easy to change.

A starting choice can save effort without becoming a hidden rule. Put consequential defaults where people can see and revise them.

Build notes

Make the slow part visible.

Waiting is easier to understand when the interface shows what it knows. Explain the work without inventing a countdown.

Lab dispatches

A lab for products, not another agency.

The lab and the managed-website brand have different jobs. Here is where products and custom work fit.

Build notes

An error message needs a next step.

Explain what failed, what is still safe, and where someone can go next. A polite apology cannot do all of that work.

Lab dispatches

Curiosity, made useful.

Why this lab exists, and why the interesting question is often a better starting point than the perfect plan.

Working principles

When does an experiment become a product?

A working prototype is a beginning. Clarity, reliability, and care are what make it worth putting into someone else’s hands.