Skip to main content

ZeroUtil Blog

Long-form guides on the tools we build and the problems they solve. Every article stays focused on what runs in your browser — no cloud uploads, no accounts, no dark patterns.

Subscribe via RSS

Featured guides

Article title card. A loudspeaker icon with three arcs beside it, the innermost in amber, with the line: the file with the voice in it is the .dem.zst
Gaming Tools Guide

How to Hear Voice Comms in a FACEIT Demo (CS2)

FACEIT records both teams' voice, but only into one of the two demos a match leaves you. Which file to open, the three commands FACEIT publishes, and how the slot bitmask works.

Article title card. A large pair of amber curly braces, with the line: one format, three dialects
Developer Tools Guide

The Developer's JSON Guide: Everything Worth Knowing in 2026

The spec, the dialects that disagree, the numbers that quietly break, and the security advice that points at the wrong recursion. With the cluster map.

Article title card. A shield with its right half filled in amber, with the line: what leaves the machine, and when
Security & Privacy Guide

Online Privacy Guide: Threat Models for Browser-Based Work

Threat models worth naming, the thirty-second check that beats any privacy policy, and an honest list of which of our own tools upload your file.

All articles

Title card on a dark grid. Kicker GAMING TOOLS, headline WHAT A CROSSHAIR CODE CHANGES, and the line: it writes 21 cl_crosshair lines and leaves the rest alone. A panel shows a block of 21 small amber marks above a dashed divider, with a few grey marks set apart below it.
Gaming Tools

What Importing a CS2 Crosshair Code Actually Changes

A crosshair share code writes 21 cl_crosshair variables, truncates a few, and never touches your scoped or observer crosshair. Why an imported crosshair can still look off.

Title card on a dark grid. Kicker GAMING TOOLS, headline ONE ACCOUNT NUMBER, FOUR STEAMID FORMATS, and the line: SteamID64, STEAM_0 and SteamID3 all read the same 32 bits. A panel shows a small four-segment bit bar and the formula BASE plus accountID, with accountID in amber.
Gaming Tools

SteamID64, STEAM_0 and SteamID3 Share One Account Number

STEAM_0:Y:Z, SteamID3 and SteamID64 all read from the same 32-bit account number. Where Valve's 64-bit layout comes from, and the one thing it cannot derive: a vanity URL.

Title card on a dark grid. Kicker GAMING TOOLS, headline CONVERTING SENSITIVITY BETWEEN GAMES, and the line: the whole method is one division. A panel shows the fraction sens x 0.022 over 0.07 with the two constants in amber, above two turn-circle arcs of different length.
Gaming Tools

Converting Mouse Sensitivity Between Games Is One Division

Every cross-game sensitivity converter runs on one division and seven numbers. Where those numbers come from, and four places the arithmetic stops matching how aim feels.

Article title card. Five grey bars in a row above an amber crosshair drawn as four bars and a centre dot, with the line: 25 characters, 18 bytes, 21 commands
Gaming Tools

CS2 Crosshair Share Codes: What Those 25 Characters Hold

Twenty-five characters hold eighteen bytes, twenty-one console commands, and forty-one bits that carry nothing at all. Every field, decoded and measured.

Article title card. Two columns of five dots either side of a dashed dividing line, the left column amber and the right grey, with the line: the server decides who was recorded
Gaming Tools

How to Hear the Enemy Team's Voice in a CS2 Demo

Whether you can hear the enemy in a CS2 demo depends on what the server recorded, not on your console. Which demos carry it, and the mask for one side.

Article title card. A pair of curly braces containing an amber double slash, with the line: the extension is not the format
Developer Tools

Why tsconfig.json Allows Comments and package.json Does Not

Both files end in .json. One accepts comments and trailing commas, the other throws. The difference is not the extension - it is which parser reads the file.

Article title card. Two outlined rectangles of the same size offset slightly from each other, one grey and one amber, with the line: the drift you cannot see by eye
CSS & Design

How to Compare a Design to Your Build, Pixel by Pixel

Overlay the mockup on the live page and let difference blending find the drift. The method, what each blend mode is for, and what the tools in this category actually cost.

Article title card. Three stacked pages with the topmost in amber, with the line: six operations, one order
PDF Tools

The PDF Tools Everyone Should Know

A hands-on walkthrough of the PDF tasks you hit every week: compress, merge, split, convert, OCR, and sign, with steps you can follow right now.

Article title card. A loudspeaker icon struck through by a thick amber line, with the line: the demo has no voice in it
Gaming Tools

Why You Can't Hear Voice in Your CS2 Demo (Fixes)

Can't hear voice comms in a CS2 or FACEIT demo? The real reasons - no voice in MM/Premier demos, unset tv_listen_voice_indices, commands resetting - and the fixes.

Article title card. A row of five binary digits, three of them picked out in amber, with the sum 13 below, and the line: the slots you pick add up to one number
Gaming Tools

How to Hear Voice Comms in a CS2 Demo

Hear voice comms in any CS2 demo with tv_listen_voice_indices: which demos record voice, how the slot bitmask works, and how to aim it at one player or a whole side.

Article title card. Two pairs of boxes, the upper joined by a single amber arrow and the lower by arrows in both directions, with the line: one of these has no way back
Security & Privacy

Hashing vs Encryption vs Encoding: What People Keep Confusing

Three transformations that all produce gibberish and solve different problems, with the measured cost of picking the wrong one for passwords.

Article title card. Six small grey dots standing for a typed password beside a set of amber concentric rings, with the line: nothing to type, nothing to steal
Security & Privacy

Passkeys vs Passwords: How WebAuthn Actually Replaces the Password

How passkeys, FIDO2 and WebAuthn actually work, why origin scoping ends phishing, and the tradeoffs around recovery and syncing that still bite.

Article title card. Two rows of small blocks, the upper scattered with amber at random and the lower shaded in order, with the line: random, or sorted by time
Developer Tools

UUID vs ULID vs NanoID: Picking an ID Scheme in 2026

UUIDv4, UUIDv7, ULID and NanoID compared on sortability, index behaviour, size and computed collision odds, with a decision guide.

Article title card. A grey dot on a white circle beside a grey dot on a near-black circle, with the line: the formula scores these the same
CSS & Design

WCAG 2.2 Color Contrast: Hitting AA Without Guessing

The AA and AAA thresholds, the luminance maths behind them, the two pairs the formula scores identically and reads differently, and what APCA changes.

Article title card. Two rows of cipher blocks on a dark grid, the lower row ending in an amber block labelled tag, with the line: one mode authenticates, one does not
Security & Privacy

AES-GCM vs AES-CBC: Which Mode to Use and Why

What block cipher modes do, why GCM replaced CBC for new code, what nonce reuse actually leaks, and the NIST limits that make it a requirement rather than advice.

Article title card. Four grey bars standing in for lines of text above a progress bar filled part way in amber, with the line: a score, not a verdict
Text Tools

Flesch-Kincaid Explained: What the Score Means and How to Use It

How the two Flesch formulas are computed, why two syllable counters give different grades for the same text, and what Google actually does with readability.

Overhead view of a person working through a pile of paper receipts and bills with a pocket calculator
Math & Calculators

How to Calculate a Sale Discount: Formulas, Examples, and Common Traps

Percent off, stacked discounts, coupon order, tax order, and why a 100 percent markup followed by 50 percent off leaves the shop at break-even.

Article title card. A stepped line falling and rising like sleep stages through a night, ending at an amber dot, with the line: the cycle is an average, not a timetable
Home & Lifestyle

The 90-Minute Sleep Cycle Rule: What It Actually Means

Where the 90-minute figure comes from, why the cycles are not interchangeable, what sleep inertia really costs, and how much a wearable can honestly tell you.

A row of wooden blocks spelling TAX standing on rising stacks of coins, with a pen, a calculator and a printed chart on the desk around them
Finance Tools

How US Federal Tax Brackets Work

Marginal versus effective rates, why a raise can never cost you money, and the 2026 thresholds worked through line by line.

A hand holding a phone whose camera is framing a QR code, with a printed restaurant menu on the table behind it
QR & Barcode

How QR Codes Actually Work: A Practical Guide

What the squares mean, what error correction costs in millimetres, why upper case makes a smaller code, and the reasons a printed QR fails to scan.

Article title card. A clock face with amber hands above the digits 1780000000, with the line: one instant, many wall clocks
Date & Time

Unix Timestamps and Timezones: The Confusion That Eats Your Week

What a Unix timestamp is, why the same date string parses two different ways, the two hours DST breaks every year, and what Temporal changes.

Article title card. A dashed straight line and a rising amber curve pulling away from it on a pair of axes, with the line: the gap is the whole point
Finance Tools

Compound Interest, Explained Like You Actually Have to Use It

The arithmetic behind compounding, where the Rule of 72 stops being accurate, and why the early years matter through contributions rather than magic.

A pink sticky note handwritten with the word password and the digits 123456, stuck to a black laptop keyboard against a blue background
Security & Privacy

Password Strength: What Length and Character Sets Buy You

Entropy done honestly, NIST's current 15-character floor, and measured GPU cracking speeds showing the hash function matters more than the extra characters.

Article title card. A clipboard holding three lines of text with an amber exclamation mark on its corner, with the line: paste is a transfer, not a view
Security & Privacy

Never Paste This Into a Random Online Tool

A working threat model for web tools at work: where a paste actually lands, which data is fine, and the thirty-second check that beats reading a privacy policy.

Article title card. Three grey squares and an arrow leading to four narrower amber bars, with the line: 3 bytes become 4 characters
Developer Tools

Base64 Explained: What It Is, Why It Exists, and When Not to Use It

What Base64 does to your bytes, the three variants that produce most decode failures, and the places it still earns its keep.

Article title card. Three segments in a row, the last one amber and labelled sig, with the line: the third part is the only one that matters
Security & Privacy

JWT Authentication Mistakes That Keep Appearing in Production

Algorithm confusion, weak secrets, missing expiry, and the library defaults that quietly changed underneath all the advice written about them.

Article title card. A browser window holding an amber document with a padlock on it, with the line: the file never leaves the tab
PDF Tools

Why Your PDF Tool Should Run in the Browser, Not the Cloud

What an upload actually exposes, which PDF operations a browser can genuinely perform, and which ones cannot run locally at all. Including ours.

Article title card. A pair of large curly braces with an amber warning marker dropped between them, with the line: the parser knows where it broke
Developer Tools

Debugging Malformed JSON: A Field Guide

The parse error is better than its reputation. How to read what V8 says now, the five failure modes behind most broken payloads, and the two errors that hide their position.

Article title card. A large grey square, an arrow, and a much smaller amber square, with the line: same picture, fewer bytes
Image Tools

Client-Side Image Compression: What Happens in the Browser

The real pipeline behind Canvas, OffscreenCanvas and WebCodecs, which formats a browser will and will not encode, and when you still need a server.

The words JSON, JSONC and JSON5 stacked in large white type on a dark background, framed by a pair of oversized curly braces
Developer Tools

JSON vs JSON5 vs JSONC: What Each Parser Actually Accepts

Three formats, one file extension, and no agreement on what counts as valid. Measured against the real parsers, including two that disagree while being the same library.

Two stacks of white blocks printed with percent signs on a wooden table, one topped with a blue block and the other with a red one
Math & Calculators

Percentage Points vs Percent: 5 Mistakes That Change the Answer

A rate that falls 1% and a rate that falls 1 percentage point are ten times apart. That confusion, plus four more that quietly turn a correct number into a wrong one.

Two hands holding a phone, with social reaction icons - hearts, thumbs-up and smiling faces - floating above the screen
Text Tools

Social Media Character Limits 2026: What Each Platform Counts

Post limits for X, Bluesky, LinkedIn, Instagram, Threads, Mastodon, TikTok and Facebook in 2026, plus the four different units they use to count them.

Wooden letter tiles on a bright orange surface, a few arranged to spell HELLO and the rest scattered in a loose pile
Text Tools

What Counts as a Word? Why Counters Disagree on One Text

Paste one sentence into three word counters and get three numbers. Here is the algorithm behind each, which one your deadline actually uses, and where they break.

Get new tools by email

New tools and the occasional deep-dive, about once a month. No spam, no sharing your address, unsubscribe in one click.