You know that specific flavor of dev annoyance — the tiny task that shouldn't exist, appears three times a week, and steals five minutes each time?
- "This JWT looks wrong somehow."
- "The API returned 418. Cool. What?"
- "I need to strip EXIF before I post this photo."
- "Merge these 8 PDFs into one, please."
- "How much will this GPT-4o batch actually cost me?"
Individually, none of them are a crisis. Together, they're death by a thousand paper cuts. Over the last year I got tired of it and started building a tool for every single one — DevKits.vip. It's now 160+ tools, everything runs locally in your browser, no accounts, no uploads.
This post isn't the tool list. It's the 15 scenarios. Every dev has hit at least half of these. Let's go.
Ground rules
- 100% local. Every operation runs in your browser. Your JWTs, private keys, PDFs, and photos never touch a server.
- No accounts, no tracking of your inputs. Analytics counts page views. That's it.
- Free forever. No trial, no upgrade nag.
If you're the kind of person who reflexively pastes secrets into random online tools, I hope this post at least gives you a safer place to do it.
1. "A coworker sent me a JWT and something's off"
The user says login is broken. You get the JWT. Now what?
- Header wrong? Payload wrong? Signature wrong?
- Expired? Not-yet-valid? Issued in the future because someone's server clock is wild?
- The classic —
alg: "none"because someone's library trusted the header?
Old flow: paste into jwt.io, squint at the payload, wonder if the signature was actually checked, dig up the key from a Slack thread from 2 months ago.
New flow: JWT Decoder shows the header + payload immediately. If you have the signing key (secret or public PEM/JWK), JWT Verifier takes it and gives you a definitive pass/fail — plus per-claim time status (exp, nbf, iat).
It handles all 12 RFC 7518 algorithms: HS256/384/512, RS256/384/512, PS256/384/512, ES256/384/512. alg: none is explicitly rejected as invalid.
Companion tools when you're on the producing side:
- JWT Generator — signs with any of the 12 algorithms
-
JWKS Generator — build a
/.well-known/jwks.jsonfrom your public keys - Public Key Extractor — derive the public key from a private one (found out your JWKS is out of date? this is faster than regenerating)
2. "Two API responses look almost identical, but which field actually changed?"
You're regression-testing an API. Git-style diff shows you 40 red-green lines — but 39 of them are because your JSON library sorted keys differently.
JSON Diff does a structural comparison. Key order doesn't matter. It tells you: "field user.email changed from alice@a.com to alice@b.com. Nothing else."
Same idea for YAML Diff (Kubernetes / Helm values), XML Diff, and character-level Text Diff with syntax-highlighted Code Diff for actual source code.
Bonus: all 5 diff tools now generate shareable URLs. Content is compressed with deflate-raw into the URL hash — nothing sent to any server, but the link works cross-machine.
3. "Postman gave me a cURL. I need it in Go."
Someone drops a curl -X POST -H 'Authorization: Bearer …' in Slack. You need it as production code by end of day.
cURL Converter — paste the cURL, click a language tab: Python / Node / Go / PHP / Ruby / Java. Ready to compile. Handles multi-line curls, multiple headers, JSON bodies, basic auth, everything.
4. "The API returned 418. Cool. What?"
You know 200, 404, 500. But 418? 451? 511? And the perennial code-review argument: 401 vs 403?
HTTP Status Codes reference — 60+ codes, each on its own page, with the RFC citation, "when to use it," "how clients react to it," and internal comparisons. The 301/302/307/308 comparison and the 401 vs 403 breakdown are worth bookmarking alone.
Same treatment for HTTP Headers (45 headers, real-world examples) and MIME Types (50+, one page each).
5. "I need a regex for X. Not writing it from scratch."
Every regex is a bug waiting to happen. The email one especially.
- Regex Cookbook — 30 tested patterns (email, URL, IPv4, IPv6, UUID, hex color, phone, credit card, ISO date, semver, …) each with copy-ready JavaScript / Python / Go / Java snippets. These are tested. You can steal them.
- Regex Tester — paste your pattern + test input, get live match highlighting and named-group output.
- Regex Replace — with backreferences and a live preview so you don't have to run your dry-run 12 times.
- Visual Regex Explainer — hover any part of a pattern to see what it does. Great for maintaining regex written by past-you.
6. "My CSV has 47 columns and 'Smith, John' in one of them and I need it as JSON"
The "convert this data blob before I can even do real work" tax. Every non-trivial CSV has quoted commas that break every naïve parser.
- CSV → JSON — proper RFC 4180 quoting
- JSON → CSV — with the reverse escaping
- YAML → JSON / JSON → YAML
- XML → JSON / JSON → XML
Paste, click, done.
7. "I have a JSON payload and I want a typed interface for it"
Stripe webhook, Shopify order, whatever. You need type Order = { … } and you'd rather not hand-write 47 field declarations.
All handle nested objects, arrays, optional fields, null unions, and preserve field naming casing.
8. "The LLM returned broken JSON again"
Every RAG / agent developer has hit this. The response comes wrapped in `json, contains trailing commas, uses True/False/None because the model was trained on Python, single-quotes some fields. JSON.parse() throws. You retry, which burns tokens.
JSON Repair fixes all of the above, deterministically, in one pass. It handles:
- Trailing commas
- Single quotes instead of double
- Unquoted object keys
- Python-style
True/False/None - Markdown code fences
- Missing closing brackets (best-effort recovery)
Paste the broken output, get valid JSON.
Related: JSON Validator gives you the exact line/column of every syntax error if you'd rather fix by hand.
9. "Wait — does this photo I'm about to post leak my home address?"
Every JPG straight off a phone can carry: GPS coordinates (to 5 meters), device serial number, timestamp, camera settings, sometimes even the WiFi network name.
- EXIF Viewer — drag any photo, see what's in there. Includes a map pin if GPS is present.
- EXIF Remover — strip all metadata losslessly (no re-encoding, no quality loss).
The file never leaves your browser. This is the one tool I'd tell a non-dev friend to use before posting anything to social media.
10. "Client sent 8 PDFs. Needs to be one."
The most-googled PDF task on Earth. And 90% of the "free" tools online want to upload your (probably confidential) client documents to their server.
- Merge PDF — drag, reorder, merge. Nothing uploaded.
- Split PDF — range, chunks, or one file per page
- Remove PDF Pages — with "1, 3-5, last" syntax
- Rotate PDF — whole doc or range
- PDF Text Extractor — proper CJK support (many extractors mangle Chinese/Japanese/Korean)
11. "I need a favicon set for a new project"
12 sizes, a manifest.webmanifest, and the HTML snippet. Every time.
-
Favicon Generator — drop one square image, get a ZIP with every size (16 / 32 / 180 / 192 / 512 / …), the manifest, and the exact
<link>HTML to paste into<head>. - SVG Optimizer — run your logo through SVGO in your browser before you rasterize it.
- PNG → ICO — the "just the .ico please" case.
12. "Cron expression */15 9-17 * * 1-5 — when does that fire next?"
Cron syntax reads like APL. And you always, always want to see the next 5 fire times before pushing.
- Cron Parser — paste any expression, get plain English + the next N runs
- Cron Generator — visual builder if you'd rather not type
13. "Standup at 3pm JST. I'm in São Paulo. When?"
Distributed teams. DST edge cases silently ruin calendar invites twice a year.
- Timezone Converter — DST-aware, any IANA zone, multi-column display
- Timestamp Converter — Unix epoch ↔ human, in every format ever
-
ISO 8601 Duration parser — for parsing
PT2H30Mout of an API response
14. "How much will this GPT-4o batch job actually cost me?"
Blind estimate = surprise invoice. Vendor pricing pages are painful to compare.
- Token Counter — estimates for GPT-3.5/4/4o, Claude, Gemini
- AI Cost Calculator — 20+ models, daily-refreshed pricing via a cron, side-by-side comparison, cache / batch / prompt-caching discounts factored in
- Text Chunker — character / word / token-based splits for RAG, shows per-chunk token counts
- Cosine Similarity — pair mode + N×N matrix; useful for debugging why your RAG returned the wrong chunk
15. "How strong is my password, really?"
Not "it has an uppercase letter and a number" strong — actually strong. Under a real attacker's compute budget.
Password Strength Checker gives you:
- Entropy in bits (the actual math, not a color bar)
-
Crack time under 4 attack models:
- Online, throttled (login form with rate limits): 100 tries/sec
- Online, unthrottled (broken rate limit): 10k tries/sec
- Offline, GPU on a fast hash: 10 billion tries/sec
- Offline, GPU on bcrypt: 10k tries/sec
-
Structural findings: dictionary words, keyboard sequences (
qwerty,1234), repeats, common patterns - Optional HIBP k-anonymity lookup — checks Have I Been Pwned without ever sending your password. Only the first 5 chars of a SHA-1 hash go over the wire.
Fun exercise: try Summer2024!, correct horse battery staple, and a 32-char random string. The gap between them is educational.
Related for the "I need a secret NOW" case:
- Password Generator — customizable alphabet, target entropy
- UUID v7 Generator — time-ordered UUIDs for DB primary keys (RFC 9562)
- RSA Key Pair Generator / ECDSA Key Pair Generator — full PEM / JWK / DER output for JWT signing
Bonus: everything is discussable
Every tool page has an in-page Comments button in its hero — expandable thread pinned to that tool. There's also a global Community Board across all tools.
No signup. Nickname auto-suggests from your rough geo (with your IP masked). Report / mod tools exist for spam.
What's the catch?
Honestly, none. It's a static Next.js site on Vercel. Cost to run: less than one coffee a month. There's no VC, no upsell, no email capture. I built it for me and it turned out other devs wanted it too.
If you find it useful:
- Bookmark devkits.vip — it's a fast keyboard target when you need "that one converter"
- Star / follow if I ever ship a GitHub repo (thinking about it)
- Subscribe to the RSS feed for new releases (we ship weekly)
- Something missing? Ping me on the community board.
Tech stack (for the curious)
- Next.js 15 App Router + React 19 + Tailwind 3
-
All crypto via the browser's built-in Web Crypto API — no
crypto-js, nojose, nonode-forge. Everything is nativesubtle.generateKey,subtle.sign,subtle.verify. -
PDFs via
pdf-lib(write) +pdfjs-dist(read), including a hack to make text extraction work correctly on CJK PDFs - Regex visualizer built from scratch (parsing the pattern into an AST, no external lib)
- Diff algorithm custom — Myers diff for text, structural walk for JSON/YAML/XML
- Zero server-side data processing. The comment board is the only thing that hits a DB (Neon Postgres, and it only ever stores comment content — never your tool inputs).
- Vercel for hosting; a daily cron submits the sitemap to IndexNow so Bing / Yandex see new tools within a day
Questions I get
"Why not use crypto-js / jose / node-forge?"
Every one of those is 100-400 KB gzipped. The browser has all of it built in, at zero bundle cost, running native code. There's no reason to ship a library that reimplements what your runtime already does — unless you need something the platform genuinely lacks (like RFC 6979 deterministic ECDSA, which we don't).
"How do you make money?"
I don't, yet. It costs less than a coffee to run. If it ever becomes expensive I'll add non-tracking ads or open sponsorships. No auth wall, no premium tier. Ever. The whole point is that these tools should exist without a login form.
"Is the source open?"
Not right now. I'm considering it. The concern is duplicate content — GitHub repos with heavy READMEs sometimes outrank their own product sites, which would be a weird outcome. I might open just the tool implementations without the marketing pages.
"Can I self-host?"
Not currently, but it's a plain Next.js app with no backend beyond a Postgres comments table — nothing exotic. If enough people ask, I'll write a self-host guide.
If you got this far, a share means a lot. Which of these annoyances did you last hit? Drop it in the comments — I'll add tools for the ones I don't cover yet.
— Built and maintained by one person, publicly, in a browser. If you're building something similar, I'd love to see it.
Top comments (0)