QuickTiny started as a small set of browser-based utilities — a JSON formatter, a Base64 encoder/decoder, a word counter, that kind of thing. All client-side, no signup, no upload. Thirteen tools like that, each doing one small job.
The problem was the thing I kept doing myself every time I used it: I'd copy something, land on the homepage, then have to think about which of the thirteen tools I actually needed, click into it, and paste again.
So instead of building tool #14, I changed the front door.
Paste anything, get the right action
The homepage now has a single box. Paste something into it and QuickTiny looks at it — locally, in your browser, nothing uploaded — and tells you what it probably is, with 1-3 relevant actions.
A few real examples:
Messy JSON from an LLM
Hereistheresult:{"name":"Mohammed",}
→ Detected: Messy / LLM JSON → "Repair & Format JSON" → one click takes you to the JSON formatter with the trailing comma fixed and the surrounding text stripped.
Base64
SGVsbG8gd29ybGQ=
→ Detected: Base64 → "Decode Base64" → one click, decoded.
URL-encoded text
%2Fproducts%3Fid%3D123
→ Detected: URL encoded → "Decode URL" (or "Inspect URL" for a full breakdown of what's encoded and why).
It also handles plain valid JSON, Unix timestamps (seconds or milliseconds), multiline/list-like text, and — when none of those confidently match — just falls back to plain text actions like word count or case conversion. It's deliberately conservative: normal sentences with an apostrophe or a stray brace stay "Text" instead of getting misclassified as JSON. A wrong guess is worse than no guess.
How it works
No AI, no API calls, no backend. It's pattern-matching and structural checks running in plain JavaScript: JSON parsing with fallback repair heuristics, a Base64 alphabet + decode-and-check-printability check, percent-encoding validation, a plausible-timestamp range check. The whole thing runs before you finish reading the result — because it's just string parsing, not a network round-trip.
When you click an action, the input is handed off to the destination tool via sessionStorage (never a URL parameter) and consumed once it arrives, so you land on the right tool with your content already there instead of copying and pasting it again.
Try it
https://quicktinyv2.vercel.app
Would genuinely like feedback — especially on any input that gets classified wrong. That's the one failure mode I care most about here.