A jar of small tools, and no server.
What's in it, why it exists, and the one rule anything new has to meet.
ToolJar is the kind of tool you reach for a dozen times a week and then close again. Nothing in it asks you to sign up, and nothing in it sends your data anywhere.
Why it exists
Most of the utilities a search turns up will happily take whatever you paste and send it off to a server. That's a bad deal when the thing on your clipboard is a production response with someone's personal details in it. None of this work needs a server, so ToolJar doesn't have one. Open your network tab and you won't find what you pasted in any request, or go offline entirely and keep using it. The privacy page spells out the one exception and how to check the claim yourself.
What's in it
28 tools on 6 shelves. The list below is read straight out of the same registry the menus and the sitemap use, so it always matches what is on the site today:
- JSON tools: Format, validate, compare and convert JSON.
- JSON FormatterJSON ValidatorJSON Tree ViewerJSON DiffJSON Path FinderJSON to CSVCSV to JSONPHP UnserializePHP Serialize
- JWT tools: Decode, verify and generate JSON Web Tokens.
- JWT DecoderJWT VerifierJWT Expiry CheckerJWT GeneratorBase64URL Encoder
- Time & date tools: Convert timestamps, read cron, compare zones.
- Epoch ConverterCron Expression ExplainerTime Zone ConverterDuration Calculator
- Keys & IDs: Generate secure tokens, passwords and UUIDs.
- Password GeneratorUUID Generator
- Code formatters: Format SQL, HTML, CSS, JavaScript and PHP code.
- SQL FormatterHTML FormatterCSS FormatterJavaScript FormatterPHP FormatterMarkdown to HTML
- AI tools: Count tokens and hide secrets before you prompt.
- Token CounterPrompt Secret Scrubber
More go in as I need them. The rule for anything that gets added is the same: it has to work without a server, and it has to do the job better than the first search result does. Usually that means being specific where the alternatives are vague: naming the line and column that broke, naming the cron field that is out of range, or saying outright that the hour you typed does not exist because the clocks moved.
About this build
A static React and TypeScript app, kept small. It is an independent project, not a company, so there is nothing here to upsell you and no business model that needs your data. There is no backend and no database either; every page is rendered to plain HTML at build time, so a tool is on screen before much JavaScript has had to run.
The parts that had to be exactly right are written from scratch, with no dependencies. The JSON engine (parser, formatter, diff and statistics) is hand-written rather than wrapped around JSON.parse, mostly so its error messages can name the exact line and column, which the browser's own parser doesn't do consistently. So are the CSV reader, the JWT signing and verification (WebCrypto, secret never leaving the tab), the cron parser and the time zone arithmetic, which leans on the browser's own Intl data rather than a hardcoded table of offsets that would be wrong within a year. The code formatters are the exception: they wrap the established libraries for each language, because a hand-rolled JavaScript minifier can easily change what someone's code does.