TTF to WOFF — Compress a Web Font

Drop a font, get a smaller one for the web. Nothing is uploaded.

🅰️ → 📦
Drop a .ttf or .otf fontor a .woff to go the other way — nothing is uploaded

Repackaging, not re-rendering

A TTF and a WOFF hold exactly the same tables — outlines, hinting, kerning, the lot. WOFF wraps each table in zlib and adds a small header, and that is the whole difference. So nothing is redrawn or approximated here: every table comes across byte for byte, which you can confirm by converting back and comparing.

Expect somewhere around 40% off. The saving comes from compression alone, so a font that is mostly a large glyf table compresses well and one that is mostly bitmaps does not.

The preview is the proof

The sample line above is rendered with the converted font itself, loaded through @font-face exactly as a browser would load it from your server. If it renders, the file works.

Why not WOFF2

WOFF2 is not just a different compressor — it re-encodes the glyph table and needs Brotli, which would mean shipping a large binary to every visitor. It is not offered here rather than offered badly. WOFF is supported by every browser in use, so a WOFF plus a WOFF2 from your build step is the usual pairing.

Frequently asked questions

Is my font uploaded anywhere?

No. The font is read and repacked by your own browser. Nothing is uploaded, and the tool keeps working with the network off.

Does converting change how the font looks?

No. The tables are carried across unchanged, so the rendering is identical. Only the container differs.

Can I convert a .ttc collection?

No. A collection holds several fonts and there is no way to know which one you meant, so the tool says so rather than guessing. Extract a single font first.

Am I allowed to convert this font?

That depends on its licence, not on the format. Many commercial fonts allow desktop use but not web embedding — check the licence before putting one on a site.

Something wrong with this tool, or an idea for it? Tell us