Every Font Tool You Actually Need in 2026

Updated 2026-04-06|SPUNK13 LLC|spunk.bet

Web font tooling has consolidated. Most of what people install is redundant with one Python package and one browser. Here is the short list that covers subsetting, conversion, inspection and fallback matching.

fontTools does most of the work

The fonttools Python package is the backbone of the ecosystem — it is what most other tools call underneath. The single most valuable command it gives you is subsetting:

pyftsubset Inter.ttf --unicodes=U+0000-00FF,U+2018-201F --layout-features='kern,liga' --flavor=woff2 --output-file=inter-latin.woff2

Cutting a full Unicode font to Latin plus punctuation routinely takes a multi-hundred-kilobyte file down to a small fraction of its size, because CJK and symbol coverage dominates most modern fonts. ttx, from the same package, dumps a font to XML so you can read exactly what is inside it when something behaves strangely.

Wakamai Fondue for inspection

Drop a font file into it and it tells you which OpenType features exist, which variable axes are present and their ranges, what languages are covered, and how to use each feature in CSS. This is the fastest way to find out whether the font you licensed actually contains the small caps or tabular figures you are paying for.

Variable fonts replace a folder of files

One variable font with a weight axis replaces six static weights, and it is almost always smaller than three of them. Declare the range in @font-face with font-weight: 100 900, then use ordinary font-weight values in CSS. For non-standard axes, font-variation-settings: 'opsz' 32. Check the axis ranges in Wakamai Fondue first — a font advertised as variable sometimes ships a single narrow axis.

Fallback matching stops the layout jump

Use font-display: swap so text renders immediately in a fallback, then match the fallback's metrics so the swap does not move anything: @font-face supports size-adjust, ascent-override, descent-override and line-gap-override. Declare a local fallback family with those overrides tuned to your web font and the layout shift on swap goes to roughly zero. Malte Ubl's fallback generator and the Font Style Matcher both compute the numbers for you.

Self-hosting beats a font CDN

Browsers partition their HTTP cache per site, so a font loaded from a third-party CDN is downloaded again for every site anyway — the shared-cache argument stopped being true years ago. Self-host, and you also remove a DNS lookup, a TLS handshake and a privacy question. google-webfonts-helper generates the exact subset files and @font-face block for any Google font.

Preload exactly one thing

<link rel="preload" as="font" type="font/woff2" href="/fonts/inter-latin.woff2" crossorigin> for the single font used by your headline and body text. The crossorigin attribute is required even for same-origin fonts, and omitting it causes a double download — an error common enough that it is worth checking in the Network panel. Preloading four fonts is worse than preloading none, because they compete with the CSS.

What you probably do not need

Desktop editors like FontForge or Glyphs matter if you are drawing or patching glyphs; for web delivery work they are overkill. Icon fonts have been superseded by SVG sprites, which are accessible, themeable with currentColor and do not render as a box when the font fails to load.

Access 400+ Free Tools

Everything you need without the subscription fees

Browse spunk.codes

Part of the SPUNK13 network

Visit spunk.bet400+ Free ToolsFree Casino
Dev ToolsCasinoMemesPredictionsNFT ArtOrdinalsEbooksAdvertise