Problem
I kept needing small utilities. A color converter, a text counter, a timestamp formatter. Every existing one was either buried in ads, required an account, or loaded a framework heavier than the tool itself. I wanted tools that load instantly, work offline, and do exactly one thing.
Approach
Each tool is a single self-contained HTML file. Markup, styles, and logic sit in one document. No bundler, no framework, no client-side build step. If one tool’s JavaScript breaks, the rest of the collection is unaffected.
The build is a Python script managed by uv. It generates the index and assembles the site. Playwright runs the tests. Each tool gets a basic smoke test that opens the page and checks that it renders without errors.
Stack
HTML, CSS, vanilla JavaScript, Python, uv, Playwright.
Outcome
The site hosts over 180 tools. The collection keeps growing because adding a tool is cheap. Write one HTML file, run the build, and it appears in the index. No dependency updates, no framework migrations, no breaking changes from upstream.
Keeping a tool boring is usually the fastest way to end up with something I actually keep using. A tool I wrote three years ago still works the way it did the day I built it.