All posts
3 min read

The best part is when the markdown disappears

Why build another markdown editor — and the small, specific moment that made it worth doing.

Type two hashes and a space. Watch what happens to the line.

It stops being ## Something and becomes Something — bigger, heavier, a heading. The characters you typed to ask for it are gone, because you don't need them any more. You asked for a heading. You got one.

That is the whole idea, and it is the reason this exists.

The thing that made it worth building

Most markdown editors make you choose. Either you look at the syntax and imagine the result, or you split the window and watch a preview lag half a second behind your cursor. Both are compromises with the same root: the editor treats markdown as source code for a document rather than the document itself.

Twiddle refuses the choice. What's on screen is the finished thing, and what's on disk is plain text you could read in any editor ever written. Not two views of one file. One view, and a file that happens to be honest.

Getting that right is more interesting than it sounds. Every keystroke has to travel from text to a rich document and back again without losing anything — not a bracket, not an equation, not the space at the end of a line someone put there on purpose. It's the kind of problem that looks trivial for a week and then teaches you something every day after.

The measure of a text editor is not what it can do. It's what it does to the thing you asked it to leave alone.

Files, not a database

The second idea is smaller and more stubborn: your notes are files.

Not rows. Not an export option buried in preferences. Files, in folders, with names you chose, on a disk you own. Point Twiddle at a directory you already have and it opens — no import step, no migration, no conversion that quietly reshapes six years of writing.

This turns out to be the feature people exhale about. Not because they plan to leave, but because they could. Software you can walk away from is software you can trust enough to stay in.

It also means everything else composes. Your notes are already in your backups. They already sync however you sync things. They already open in whatever you use on your phone. We didn't build any of that, and that's the point.

Structure you didn't have to plan

The part that surprised us most was the wiki-links.

Type Another note and it becomes a link the moment you close the brackets, creating the file if it doesn't exist. Backlinks appear on their own. Nothing asks you to design a folder hierarchy up front, or pick a tag taxonomy before you've written anything worth tagging.

So the structure arrives late, which is the only time structure is ever any good. You write for a month, look up, and there's a shape. You didn't decide it. You just stopped throwing things away.

Small on purpose

There's a particular pleasure in building something that does one thing and then stops.

No AI writing assistant. No collaborative cursors. No workspace, no boards, no mentions. Just a fast, quiet place to put words, that renders maths when you need it —

— keeps a task list honest,

  • Ship the first version
  • Make it update itself
  • Write more of these

and gets out of the way the rest of the time. Thirteen megabytes. Opens instantly. Runs offline forever.

Every feature we didn't add is a decision someone else doesn't have to make.

One more thing

The page you're reading was rendered by the same code that renders your notes. So was the feature list on the home page — and that one you can type into. Put your cursor in it and add something. It won't save, and it isn't meant to.

It seemed like the honest way to describe an editor: hand you the editor.