Typo is a notes app for macOS and Windows with no folders, no databases and no account. Each note is one continuous canvas, saved as a markdown file in a folder you choose, and synced by that folder being a git repo.
Monday. The keyboard tray finally arrived, so the desk is at the right height for the first time since the move.
Thursday. Rereading the chapter on scaffolds. The useful idea is that a draft is a structure you take down later, not one you live in
How it works
The file
--- title: Week 38 --- Monday. The keyboard tray finally arrived, so the desk is at the right height for the first time since the move. ### Things to close out - [x] Send the revised outline - [ ] Reply about the workshop dates - [ ] Book the dentist --- 
The title lives in the front-matter, not the filename. Renaming a note is an edit to its content, so git sees one change rather than a delete and a create.
The filename is a UUID. It never changes and never contains a space, which is also why image names are UUIDs: a markdown image URL ends at the first space.
An image's width rides along as ?w=320. Markdown has no way to say how wide a picture is, so the resize is folded into the URL and unfolded on read. Any other viewer just ignores it.
Hand-arranged order is a file too, .typo-order, kept in the vault so it travels with the notes.
The name and the mark
Typo is the front of typewriter, and what it points at is typing. It was not chosen for a meaning. It was chosen for being short, and a little cute, and easy to say.
It does not mean a mistake. The dictionary gives that sense first, and at one point it nearly decided something: a proposal to knock one key out of line, so the icon would say "typo" too. It was dropped, because the name is about the act, not the error. Everything else in the app leans the same way. One page with no folders to file into, a title kept out of the filename, a menu with nothing markdown can't hold. The less structure there is to maintain, the more of what is left is typing.
The mark is a typewriter reduced to its keys. Eight discs in three rows: three, three and two. A whole typewriter drawn small is a silhouette of carriage and platen that collapses into a lump at icon sizes. The keys are the part a writer touches, and they are the part that survives being shrunk.
The rows sit tighter than the columns, about 0.85 of the pitch, and that ratio is the whole drawing. Square it up and it stops being a keyboard and becomes a keypad, a dice face, a drag handle. The bottom pair is offset by exactly half a column, the way a machine's keys stagger and a grid's cells do not. That taper also gives the mark a bottom edge, and so a way up.
Discs have no inside to lose, so eight of them still read as eight at 32 pixels. There is one colour, ink on paper, with no accent. In the app an accent marks what is active, and an icon is never active.
Download
Typo is not yet signed, so both systems stop it the first time. On macOS, after the refusal go to System Settings → Privacy & Security, scroll to the bottom and click Open Anyway (on macOS 14 and earlier, right-click the app and choose Open instead). On Windows, when SmartScreen stops the installer, click More info, then Run anyway. After that it launches normally.
Sync
Typo syncs through a private GitHub repository that only you can see. It uses the git program on your computer and the GitHub sign-in you give it once, so Typo never asks for or keeps a password. The setup is a few minutes in the Terminal (Command Prompt on Windows), once per computer.
xcode-select --install, then click Install in the window that appears. On Windows, install Git for Windows with its default options.gh auth login and answer GitHub.com, HTTPS, Yes, and Login with a web browser. Copy the code it shows, press Enter, and approve it in the browser. Then run gh auth setup-git. Restart Typo afterwards.https://github.com/you/notes.git.If Typo says this machine has no credentials for the remote, step 3 has not been done on this computer yet. If it says there is no repo at that address, check the address, and that you signed in with the account that owns the repository. Already use git with an SSH key? A git@github.com:you/notes.git address works too, and steps 2 and 3 can be skipped.
Questions