A grid of small tool tiles in muted neutrals, with a single tile flipped open in red revealing handwritten lines, like a notebook page hidden inside a toolbox.
toolsMay 7, 20266 min read
By

Tools that don't leave your machine.

I kept pasting production data into random converter sites at 11 p.m. So I put together thirty tools that never send your data anywhere.

I have a folder on my laptop called one_off/ that, until recently, held 41 Python scripts whose only job was to turn one annoying thing into another, slightly less annoying thing. CSV to Markdown. Hex to RGB. A screenshot to a base64 string I could paste into a prompt. None of them deserved a name. All of them got used at least once a week.

At some point I noticed I was Googling the same five free converter sites every Tuesday, then watching them load three seconds of ads to do six lines of arithmetic on data I didn't really want to send anywhere. So I started porting one_off/ into the browser, one tool at a time, onto a single page. That page is now /utilities, and there are about thirty tools on it. This is a short note about what's there, why it exists, and the three rules I gave myself before the first one shipped.

Six of the forty-one tools, in motion — input on the left, output on the right, nothing leaving the browser.

Rule 1: Nothing leaves your machine

Every tool on the page runs entirely in your browser. There is no API. There is no upload. There is no "Sign in to save your work." Paste a JSON blob into the formatter, close the tab, and the blob is gone, because there's no server-side copy, because there's no server.

This sounds small until you audit what the rest of the internet does with your files. The free "PDF to Word" sites mostly upload your document, convert it, and email you a link to a file living on someone's S3 bucket for a month. The free "format my JSON" sites mostly ship your JSON to a server that almost certainly logs it. If you've ever pasted production data into one to debug something at 11 p.m., you have leaked production data to a stranger.

The rule isn't really privacy theater. It's about removing a tax I didn't know I was paying: the small recurring decision of is this thing I'm about to paste sensitive enough that I shouldn't. Client-side only means the answer is always no, which means I never have to think about it again.

Experience it yourselfOpen /utilities

Rule 2: The keyboard is the primary interface

The page assumes you're on a laptop, not a phone, and that you arrived because you have a thing you want to convert right now. So the keyboard does the work:

shortcuts
Cmd/Ctrl + K   focus search from anywhere
?              open the shortcut overlay
← ↑ → ↓        move around the tool grid
Enter          open the focused tool

One tool, one job

Each tool also has its own bindings: copy, clear, swap input and output, toggle theme. This is partly muscle-memory ergonomics and partly a constraint that forces the tools to stay simple. If a tool can't be driven almost entirely from the keyboard, it's usually because it's trying to be too many things, and I split it in two.

The base64 encoder doesn't decode. The decoder is one tile to the right. They could be a single component with a tab switcher. They aren't, because the tab switcher would cost a keystroke I didn't want to spend.

Rule 3: A tool is a tool, not a feature surface

The genuinely depressing thing about most online utilities is that they aren't utilities. They're funnels. The free converter is a marketing surface for a paid converter. The paid converter is a marketing surface for a SaaS subscription. The subscription is a marketing surface for an enterprise contract. By the time the actual converting happens, you've been asked for an email three times and shown an upsell modal twice.

My rule: a utility here does exactly one thing, does it on the first screen, and asks for nothing. No accounts. No "Pro version." No upsells. Favorites and recents live in localStorage, because the alternative, a database, would require me to know who you are, which I'd prefer not to. The most ambitious tool on the page is a JSON-to-TypeScript-types generator, and it doesn't have a settings page.

This is a weaker version of the instinct that produced good Unix tools. cat doesn't have a freemium tier. grep doesn't ask you to verify your email. The web slowly forgot that this was ever the default. The page is, in a small way, an attempt to remember.

What's actually in there

Roughly: text and JSON tools (formatter, diff, case converter, Markdown table builder, JSON-to-TS-types), encoders (base64, URL, HTML entities, hashes), image and design helpers (SVG optimizer, color picker, contrast checker, aspect-ratio calculator, palette extractor), data converters (CSV, cron expressions, timestamps, regex tester), and a handful of one-offs that earned a permanent home, a UUID generator, a Lorem Ipsum generator that tries to be slightly funnier than the standard one, a character counter that knows the difference between a grapheme and a code point.

The categories are ordered by how often I use them, which is not necessarily how often you would. If a tool gets enough traffic to deserve a spotlight, it gets a "NEW" badge for thirty days; after that it rejoins the rest. Recents and favorites float to the top so the page slowly personalizes itself without ever asking permission to.

Why I keep adding to it

Honestly: because getting a small tool exactly right is one of the most satisfying things I know how to do. A good utility has a single argument and a single return value. You can fit the whole spec in a sentence. The reward loop is fast, describe the function, watch it come together, drop it in the registry, watch it work. After a long week of essays whose ideas might not be true and features whose value is hard to measure, an afternoon spent making a CSV-to-Markdown converter feel exactly right is a clean, finishable kind of satisfaction.

There's a less wholesome reason too. The modern web has gotten very good at making me feel like I'm renting access to my own data, and the toolshed is a small, stubborn argument that some things should just be functions. Paste in. Get out. Close the tab. No relationship.

The page is going to keep growing. If there's a utility you want that isn't there, the issue tracker is open and I read it. The next batch is a small set of audio tools, waveform viewer, simple spectrogram, format converter, because I keep opening Audacity for thirty-second tasks. They'll show up the way the rest did: quietly, on a Tuesday, with no announcement and no upsell.

Experience it yourselfBrowse the toolshed
ShareXLinkedInHacker NewsEmail

Get the next one

An occasional note when something genuinely new ships here — essays, free tools, projects. No schedule, no filler, easy out.

Need something like this built?

I design and ship AI tools, full-stack apps, and data pipelines — end to end, to production. Tell me the problem in a sentence; I'll give you an honest read on fit within a day.

Work with me →