How to use
- Drop your file(s) into the box above — or click it to browse.
- Conversion starts immediately; the tabs switch to a different output format.
- Click Download on each finished file — or Download all (.zip) for a batch. Nothing was uploaded at any point.
Why WOFF2 is the only web font format you need
WOFF2 wraps your font's tables in Brotli compression, cutting a typical TTF by 50–60% — this page shows the exact saving per file. Every browser that matters has supported it since 2018 (Chrome 36, Firefox 39, Safari 10, Edge 14), which is why modern best practice is a single @font-face source:
@font-face { font-family: 'YourFont'; src: url('yourfont.woff2') format('woff2'); font-display: swap; }
No TTF fallback chain, no EOT relics — one line, one file, fastest possible font load.
| TTF/OTF | WOFF | WOFF2 | |
|---|---|---|---|
| Compression | None | zlib (per table) | Brotli + transforms |
| Size vs TTF | 100% | ~60–70% | ~40–50% |
| Browser support | Works but wasteful | IE9+ era universal | All modern (2018+) |
| Use today | Desktop installs | Legacy-only fallback | The standard choice |
The licensing question nobody skips twice
A font is software with a license. Most commercial desktop licenses (MyFonts, foundry direct) do not include web embedding — that's typically a separate webfont license. Converting the file is trivial; the right to serve it from your site is a legal question only your license answers. Google Fonts and other open-licensed fonts (OFL) are explicitly fine to convert and self-host — in fact self-hosting them via WOFF2 is the current performance recommendation.
This converter runs entirely on your device partly for that reason: your font files are licensed goods, and they shouldn't be uploaded to a random server just to change container format.
When NOT to convert TTF to WOFF2
- Fonts for desktop app bundles or documents — installers, Office and design tools want TTF/OTF; WOFF2 is web-only.
- When your license forbids web embedding — the conversion works; serving it may not be legal. Check first.
- Hoping for subsetting — this tool converts the complete glyph set. Stripping unused glyphs (a separate, bigger optimization for CJK fonts) needs a subsetting tool like pyftsubset.