About
Five tools, no server
This is a shelf of small utilities I wanted for myself. They are free, they need no account, and none of them send anything anywhere. That last part is not a marketing line, it is the constraint the whole site is built around, and it has consequences worth understanding before you put real work into one of them.
Where your data actually lives
Each app keeps its records in IndexedDB, a database built into your browser, and its interface preferences in localStorage. Both are scoped to this domain, in this browser, on this device. There is no copy anywhere else, because there is nowhere else.
What follows from that:
- Opening the same app in a different browser shows an empty start. Nothing is missing, it is simply somewhere else.
- Private or incognito windows usually discard everything when you close them.
- Clearing site data, cookies, or "browsing data" in your browser settings will delete what these apps have stored, and there is no way for me to recover it.
- Nobody, me included, can see what you write here.
So export things you care about
Every app has an Export button that writes a JSON file to your downloads folder, and an Import button that reads one back. The files are plain text, readable in any editor, and carry a small header naming the app and the moment they were made.
Import asks whether you want to merge, which keeps what is already there and layers the file on top, or replace, which clears first. Merging resolves conflicts by keeping whichever copy was edited most recently. Both refuse a file that came from a different app, and both refuse a file that has been damaged, rather than importing half of it.
Use it to move between browsers, to back up before you experiment, or simply to hold your own copy.
The apps
- Warren
- A writing workspace built out of blocks. Pages nest inside pages without a depth limit, blocks respond to markdown shortcuts as you type, and a slash menu turns any line into a heading, list, to-do, quote, callout, or code block.
- Laneway
- Boards, columns, and cards, with the parts a solo project actually needs: work-in-progress limits that warn when a lane is overloaded, checklists that roll up into a progress bar, due dates that surface before they bite, and an archive so finished work leaves the board without leaving your history.
- Jotterbug
- Quick notes on a coloured board. Type a thought, pin it, tag it, or flip it into a checklist. Search narrows as you type, pinned notes float to the top, and anything you delete waits in the trash long enough to change your mind.
- Tessera
- A QR generator that knows the formats. Build a link, a wifi handshake, a contact card, an email, a text message, a calendar event, a phone number, or a map pin, then tune the error correction, colours, quiet zone, and size before saving it as PNG or SVG. Codes you keep are stored on your machine.
- Rostrum
- Slides made of blocks, with a presenter view in a second window carrying your notes, a timer and the next slide. Import from Markdown, export to Markdown, a PDF, or one self-contained HTML file that runs on any machine with no network at all.
- Quire
- Merge, split, reorder, rotate and extract PDF pages entirely on your own machine. Every other tool that does this uploads your documents to a server first. This one parses the file, moves the objects, and writes a new one, all in the tab you are looking at.
- Fabler
- Describe a schema and get realistic rows out of it. Everything is generated from a seed, so the same schema produces the same data every run, and foreign keys draw only from ids that actually exist in the table they point at.
- Decanter
- Convert between JSON, NDJSON, CSV, YAML and TOML, with every parser written from scratch so none of it leaves your machine. Then the parts that make it more than a converter: flatten and unflatten nesting, query by path, and generate a SQL, Iceberg or JSON Schema from whatever you pasted.
- Loupe
- Resize, crop, rotate, convert and compress images entirely on your own machine. It reads the EXIF metadata first and shows you what is in there, including the location tags, so you can see exactly what re-encoding strips out.
- Stint
- A time tracker sized for one person. Run a timer or enter time after the fact, assign it to a project with a rate, and get totals by day, week and project. Rounding is applied when the number is reported, so the entry keeps what really happened.
- Rote
- Spaced repetition built on SM-2, the algorithm behind most flashcard software. Every answer adjusts the card’s ease, which decides how fast its interval grows, so material you find hard comes back sooner and material you know gets out of your way.
- Sift
- A regex workbench with live match highlighting, capture groups broken out one by one, a replacement preview, and a plain English explanation of what your pattern actually says. Matching runs in a worker, so a pattern that backtracks badly gets stopped rather than freezing the page.
- Reckoner
- Type whole expressions rather than pressing one key at a time. Parentheses, powers, factorials, and thirty functions all parse properly, every result lands on a tape you can scroll back through and reuse, and four memory registers hold whatever you need to keep.
Installing it
The site is a progressive web app, so your browser can install it to your home screen or dock and open it in its own window. On Android and desktop Chrome an Install button appears in the header when the browser offers it. On an iPhone, use Share, then Add to Home Screen.
Once installed it works with no connection at all, because none of the apps needed one. The pages and code are cached on first visit, and your data was already on the device. An installed copy shares its storage with the same browser, so what you write in one appears in the other.
How they are built
Static HTML and CSS with plain TypeScript, generated by Astro. No UI framework, no analytics, no fonts loaded from elsewhere, no third-party scripts at all. The logic that matters, the expression parser in Reckoner, the page tree in Warren, the card movement in Laneway, and the QR encoder in Tessera, is covered by a test suite that runs on every change.
Tessera's QR encoder is written from scratch rather than pulled from a library: it implements the specification's numeric, alphanumeric, and byte modes across all forty versions and four error correction levels, with Reed-Solomon over GF(2^8) and all eight data masks scored by the four penalty rules. Its tests read the finished matrix back and check that what comes out is what went in.
Bugs and suggestions
The source is on GitHub. If something is broken, an issue there is the surest way to reach me. I am Alex Merced, and I write about data and AI in rather more depth elsewhere.