About
A font delivery network built so that what a visitor downloads is exactly what the page needs — and so that you can see the number before you commit to it.
What this is
FontServer hosts open-licence typefaces and serves them as webfonts: a stylesheet you link from your page, and the font files that stylesheet points at. It is the same shape as any hosted font service, with three deliberate differences.
Subsets are real files, not hints
A script subset here is a genuinely smaller font, cut from the source at upload
time. A Latin subset of a large multi-script family is typically under a tenth of
the full face. The common alternative — shipping the whole font and declaring a
narrow unicode-range — makes the browser download every byte anyway
the moment one matching character appears on the page.
One format per browser
The CSS you receive contains a single src, chosen for the browser that
asked for it. A conventional four-format fallback chain costs a few hundred bytes
in every @font-face block, of which each browser uses one entry and
ignores the rest. At the volume a font CDN serves, that adds up to real bandwidth
spent on lines nobody reads.
An honest byte count
Pick your weights and scripts on any font page and the figure updates as you go. It is the compressed size of the files a visitor will actually fetch, not an estimate and not the size of the whole family.
How it is built
Three independent services, so that a failure in one does not take the others with it:
- The control plane
- Ingests fonts, derives every delivery format and subset, and owns the record of what is published. It has the lowest availability requirement of the three, because no font is ever served from it.
- The stylesheet API
- Generates
@font-faceCSS and its JSON equivalent from an in-memory snapshot of the catalogue. It holds no database connection, so it keeps serving through a control-plane outage. - The edge nodes
- Serve the font files from local disk. They replicate between themselves as well as from the origin, so a node cut off from the control plane keeps serving its full catalogue and can still catch up from a neighbour.
Every font URL is immutable: its bytes never change meaning, which is what makes a one-year cache honest rather than a gamble. When something is republished, the change propagates by an explicit signal rather than by waiting for a cache to expire.
Every script, equally
The library is general-purpose. Latin, Cyrillic, Greek, Vietnamese, Arabic and
Hebrew are all first-class: each gets its own subset, its own accurate unicode-range, and previews rendered in the correct direction. The
interface itself ships in English and Persian, which is partly a convenience and
partly a discipline — a site that only ever lays out left to right accumulates
right-to-left bugs, and a service hosting Arabic-script families cannot afford
them.
Common questions
Does it cost anything to use the fonts?
No. Every family in the public library is free to embed. Each one carries its own licence — usually the SIL Open Font License — and that licence, not this service, governs what you may do with the font files themselves.
Do I need an account or an API key?
No. The public catalogue, the stylesheet endpoint and the font files are all unauthenticated. Paste the embed code and it works.
How is this different from other font CDNs?
Three things: every subset is a genuinely smaller file rather than a full font with a unicode-range hint; the stylesheet you receive contains one format negotiated for your browser rather than a four-format fallback chain; and the exact download size is shown before you copy anything.
Can I self-host the whole thing?
Yes. The service is a set of independent components you can run yourself: a control plane, a stylesheet API, and as many edge nodes as you need. Nothing calls a third-party service on the request path.
Who runs it
FontServer is operated by FontServer. For anything not answered here, see Contact. The terms that govern use of the service are in the Terms of Service, and what is collected and why is set out in the Privacy Policy.