A Transfonter alternative for web font conversion
People searching this way want to turn a desktop font file into web font formats they can serve with @font-face.
Convertto converts font files between TTF, OTF, WOFF and WOFF2 inside your browser tab, and can also emit a font as a Base64 data URI ready to paste into CSS. The font binary is parsed and rewritten on your device, so licensed font files are never uploaded to anyone.
- Formats
- TTF, OTF, WOFF, WOFF2, and Base64 CSS
- Where it runs
- In the browser tab, in a Web Worker
- Font files uploaded
- None
- Cost
- Free, no sign-up
What you are looking for, and the tool that does it
| The job | Convertto tool | What it does |
|---|---|---|
| TTF to WOFF2 | TTF to WOFF2 Converter | Converts a TrueType font to the WOFF2 web font format |
| TTF to WOFF | TTF to WOFF Converter | Converts a TrueType font to WOFF for older browser support |
| OTF to TTF | OTF to TTF Converter | Converts an OpenType font to TrueType |
| WOFF2 back to TTF | WOFF2 to TTF Converter | Unpacks a WOFF2 web font back to TrueType |
| WOFF back to TTF | WOFF to TTF Converter | Unpacks a WOFF web font back to TrueType |
| Inline a font in CSS | Font to Base64 & CSS Generator | Emits the font as a Base64 data URI inside a @font-face rule |
| Check which fonts a device has | Installed Font Checker | Tests which system fonts are actually available before you rely on them in a stack |
Which format to serve
For anything shipping today, WOFF2 alone is enough. It is supported by every current browser, and it compresses better than WOFF or a raw TTF because it uses Brotli tuned for font tables. WOFF is only worth adding if you still support browsers old enough to miss WOFF2, and serving a bare TTF or OTF to the web mostly wastes bandwidth.
| Format | What it is | Serve it on the web? |
|---|---|---|
| WOFF2 | Brotli-compressed web font container | Yes, this is the default choice |
| WOFF | Older zlib-compressed web font container | Only as a fallback for very old browsers |
| TTF | TrueType desktop font | Not usually. It is the source you convert from |
| OTF | OpenType desktop font, often with CFF outlines | Not usually. Convert to WOFF2 first |
| Base64 in CSS | The font bytes inlined as a data URI | Only for tiny icon fonts or single-file deliverables |
@font-face {
font-family: 'Example';
src: url('/fonts/example.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}font-display: swap is the line people forget. Without it the browser may hold text invisible while the font loads, which is a worse experience than a brief flash of the fallback.
Why converting locally matters for fonts specifically
A font file is usually licensed. Commercial licences frequently restrict who may hold a copy of the binary and where it may be stored, and a licence that permits web embedding does not automatically permit handing the file to a third party for processing. Converting on your own device sidesteps the question, because no third party ever receives the file. Convertto's font tools read the binary with the File API and write the result in a worker; nothing is transmitted.
Related work
- Installed font checker tests which system fonts are actually available, which is how you pick a fallback stack that is not a guess.
- Type scale generator builds a consistent set of font sizes once the face is in place.
- Developer tools holds the rest of the font and asset converters.
Frequently asked questions
Do I still need WOFF as well as WOFF2?
Is my font file uploaded?
Can I convert an OTF straight to WOFF2?
Should I inline the font as Base64?
Does converting change how the font looks?
Open a tool
Last updated
Browse developer tools