Toolium

Blog

Tips, guides, and tutorials to help you get the most out of your tools.

7 min read

The Case Against Making You Sign Up

Why Toolium has no accounts: what signup walls do for operators, what they cost users, and the engineering I avoid by keeping a utility site stateless, including the tradeoffs that choice pushes back onto you.

Read more
7 min read

How Free Online Tools Make Money

A user emailed to ask how a tool that costs me hosting money can be free for him. I walk through the funding models behind free web tools and what each one does to the person using it.

Read more
9 min read

The Bugs That Live in Plain Text

A user's name renders as José and the diagnosis leads through UTF-8 bytes, stray BOMs, Unicode normalization, and the Turkish dotless i: the encoding bugs working developers keep rediscovering.

Read more
6 min read

Box Shadows That Look Right: Layered Shadows and the One-Light Rule

The one-light source rule that makes shadows feel natural, the trick of layering multiple shadows for depth, and why your hover transitions look chunky.

Read more
9 min read

What "client-side only" actually means, in 2026

Other tool sites claim local processing while running analytics, logging metadata, and serving ads from CDNs. What the phrase should mean, and the thirty-second test that catches the liars.

Read more
7 min read

CSS Gradients in 2026: Linear, Radial, Conic, and the Banding Problem

The math behind gradient bands, the 8-bit color depth ceiling that produces visible stripes on dark backgrounds, and the noise-overlay trick to fix it.

Read more
7 min read

PDF to Image: The 32,767-Pixel Canvas Limit

How pdf.js rasterizes pages, why scale 3x or higher sometimes silently fails on Chrome, and the format-mismatch bug that took me embarrassingly long to find.

Read more
6 min read

HTML to Markdown: The Migration Tool I Wish Existed Sooner

Why migrating from a hosted blog to a static site usually starts with HTML, what cleanly converts, and which CSS-dependent layouts you have to redo by hand.

Read more
7 min read

A Throwaway Converter Still Needs to Work Without a Mouse

I tried to use my own converter without a mouse and failed within eight seconds. Notes on keyboard access, focus management, and screen reader announcements in single-use tools, with the fixes I shipped.

Read more
7 min read

JSON vs YAML: The Norway Problem and Other Reasons This Choice Matters

Why YAML supports comments and JSON does not, the unquoted no that broke a Norwegian country code, and the practical reasons Kubernetes uses YAML.

Read more
6 min read

SVG to PNG: Picking the Right Scale, and the Font Trap

Vector to raster is conceptually simple but the scale you pick determines whether your output looks crisp or pointless. Plus the surprising fonts-not-loaded gotcha that produces fuzzy text.

Read more
8 min read

Why a Big File Used to Freeze the Whole Tab

A 50MB CSV can lock a browser tab for seconds. I walk through why the main thread stalls and how workers, transferable buffers, chunked reads, and yielding fixed my file tools.

Read more
6 min read

Image Cropping, Touch Events, and the Pointer-Events Rewrite

The case for cropping with intent rather than vibes, the aspect ratios that map to real destinations, and the story of rewriting the crop UI to actually work on a phone.

Read more
8 min read

The tools I decided not to build

OCR, AI image upscaling, currency conversion, video editing. The requests I keep declining, and why feature restraint is the actual product decision.

Read more
7 min read

Turning a Stack of Photos Into One PDF: The EXIF Rotation Trap

Combining photos into a multi-page PDF is mechanically simple. The trap is portrait phone photos: most of them carry an EXIF orientation flag that browser tools handle inconsistently. Here is what goes wrong and how to fix it.

Read more
9 min read

JWT Tokens, Decoded: What Is Really Inside Your Auth Token

The three sections of a JWT, the alg:none vulnerability that almost killed JWT in 2015, and why the payload is technically public information.

Read more
7 min read

WebAssembly Turned the Browser Tab Into a Real Computer

WebAssembly moved image compression, PDF rendering, and video transcoding into the browser tab. I walk through how compiled C and Rust libraries made that happen, and the download, memory, and threading costs the demos hide.

Read more
10 min read

Regular Expressions, Without the Mysticism

What regex actually does, the half-dozen tokens you need 90% of the time, and the catastrophic-backtracking trap that froze our tester before I added a worker timeout.

Read more
7 min read

QR Codes: How They Survived From 1994 to Pandemic-Era Ubiquity

The Toyota subsidiary that invented QR codes, the error correction math that lets them survive being half-covered by a logo, and the size you actually need for print.

Read more
12 min read

Five browser APIs you probably should be using

TextEncoder, Intl.Segmenter, SubtleCrypto, Web Workers, and the File System Access API. The ones that quietly solve real problems and most JavaScript code still ignores.

Read more
7 min read

Unix Timestamps: The Year 2038 Problem and Why Your Date Is in 33,000 AD

Seconds vs milliseconds vs microseconds, the 32-bit signed timestamp that overflows on January 19, 2038, and how to spot a unit mismatch in three seconds.

Read more
8 min read

SHA-256, MD5, and Why You Should Never Use a Fast Hash for Passwords

What a cryptographic hash actually does, the SHA-1 collisions from 2017 that quietly killed it, and the specific reason bcrypt exists.

Read more
7 min read

UUIDs: When to Use Them, the v4-vs-v7 Question, and the B-Tree Fragmentation Problem

Why a random UUID is sometimes the right primary key and sometimes a terrible one, what UUID v7 fixed, and how to pick between the two in 2026.

Read more
7 min read

How git diff Works, Inside the Myers Algorithm

The longest common subsequence problem, the O(N*M) algorithm that powers git diff, and the word-level highlighting that makes near-matches obvious.

Read more
7 min read

The Markdown Patterns I Reach For Daily

The bits of markdown you reach for daily, the GFM extensions that everyone now expects, and the XSS bug that prompted me to add DOMPurify to the preview tool.

Read more
10 min read

Notes on building a tool suite without a backend

Thirty-four tools into Toolium, here is what the browser can actually do, the libraries that did the work, and where the architecture genuinely breaks.

Read more
7 min read

HEX, RGB, HSL: Why Designers Reach for Each One

What each format actually represents, why HSL is the secret weapon for building color systems, and the 3-digit hex shortcut that catches a lot of color tools out.

Read more
8 min read

Password Strength Math: Length Beats Symbols

The math of password entropy, why xkcd 936 is mostly right, the specific attack that haveibeenpwned exists to prevent, and why every important account should use a unique random string.

Read more
7 min read

Why Two Word Counters Give You Two Different Numbers

What actually counts as a word, why Intl.Segmenter is the right primitive for non-Latin scripts, and what an apostrophe does to the count.

Read more
6 min read

Naming Cases: The Politics of camelCase vs snake_case

Why each language picked the convention it picked, the XMLHttpRequest boundary problem that breaks naive case converters, and what to do at the boundary between two languages.

Read more
7 min read

URL Encoding: encodeURI vs encodeURIComponent, and Which You Want

The single most useful piece of JavaScript trivia for working with URLs, the double-encoding bug that ate three days of my life, and what + means inside query strings.

Read more
9 min read

Base64, Explained Like You Are Going to Implement It

The algorithm in plain English, the UTF-8 bug that breaks every naive browser-based encoder, the difference between base64 and base64url, and where the 33% overhead actually comes from.

Read more
8 min read

My Daily Developer Tool Belt (And Why Browser-Based Wins)

The browser-based tools I use most days, what each one is good for in practice, and why I built Toolium versions of the ones whose existing alternatives were broken.

Read more
11 min read

Why I refuse to upload your file

An argument against the upload-process-download flow that most free online tools still use, plus the thirty-second network-tab test that catches every one of them.

Read more
6 min read

Pulling Text Out of .docx Files Without Installing Word

Why pasting from Word breaks every CMS, what mammoth.js extracts and what it skips, and the older .doc format that nothing on the web can read.

Read more
6 min read

CSV to JSON: The Shape Question and the ZIP-Code Trap

Why your numbers are sometimes strings, what to do about duplicate column names, and which JSON shape APIs actually expect.

Read more
6 min read

CSV to Excel: Delimiter Detection and the Type Inference Problem

The European semicolon problem, why some columns look numeric and some do not, and why a leading apostrophe shows up in your first column sometimes.

Read more
8 min read

Excel to CSV: The BOM, the Date Format, and Everything Else That Goes Wrong

Why Excel mangles UTF-8 unless you add a BOM, how date formatting nearly always fails on the round trip, and what the merged-cell case does in CSV.

Read more
9 min read

Picking Between PNG, JPG, and WebP

How each format actually works under the hood, where each one shines and fails, and why AVIF is the next thing I am watching but not yet recommending universally.

Read more
7 min read

Resizing Images: The Math, the Filters, the Upscaling Trap

Downscaling is mostly painless; upscaling is fundamentally limited. The bicubic vs nearest-neighbor trade-off, the canvas-size limits in browsers, and which tool to reach for when this one is not enough.

Read more
8 min read

Compressing Images Without Wrecking Them

What the JPEG quality slider actually does, why your phone photos are already compressed, and the specific case where browser-based compression goes wrong.

Read more
7 min read

What Actually Shrinks a Bloated PDF

PDFs get fat for predictable reasons. The structural compression every PDF tool does, the image-resampling pass it usually does not, and why scanned PDFs are essentially uncompressible.

Read more
7 min read

Extracting Pages from a PDF: The Range Syntax That Catches Everyone

Splitting a PDF is half about the click, half about getting the page range right. Here is the syntax, the off-by-one errors, and why your extracted file sometimes ends up larger than expected.

Read more
9 min read

Merging PDFs in a Browser Tab

A practical guide to combining PDFs in your browser: which library to use, how to preserve hyperlinks, and the edge cases (bookmarks, signatures, encrypted files) that catch every free tool out.

Read more