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 is a free, public web font service. It hosts open-licence typefaces and serves them as webfonts: a stylesheet you link from your page, and the font files that stylesheet points at. No account, no key, no charge — the same shape as any hosted font service, with some deliberate differences described below.

The CSS is yours to shape

Most hosted font services give you a fixed stylesheet and one or two parameters. Here the generated @font-face is a set of choices: which scripts it carries, what unicode-range it declares, what CSS family name it uses, how each weight is labelled, and which font-display strategy applies. All of them are plain query parameters, and all of them are documented on the API page.

Everything CSS does, JSON does too

Every stylesheet URL has a /json equivalent that resolves exactly the same request and returns it as data: the full format matrix rather than the one format your browser gets, the user agent as the service resolved it, the size of each file, and whether a subset request was satisfied exactly or from a wider file. It is the difference between a service you can only paste into a page and one you can script against.

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. None of this is something you have to run — it is described because how a service stays up is a fair thing to ask of one you are about to depend on:

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-face CSS 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 and no script is its speciality. 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. Building the interface itself in both directions from the start is a discipline rather than a preference — 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.

What can I control that other font services do not let me?

The generated @font-face itself. You can name the scripts the stylesheet carries, override the unicode-range outright, serve a family under your own CSS name, choose how a weight is labelled, and set font-display. Every stylesheet URL also has a /json twin returning the same resolution as structured data, which is what makes the service usable from a build step rather than only from a <link> tag.

Is this a company?

No. It is an independent service, run and paid for by the people named on the contact page. There is no company behind it, no venture funding, no account to create and nothing to buy. That is also why there is no support contract: questions are answered by email, as time allows.

Can I run my own copy?

This site is the hosted service, not a product you install. The code is not currently offered as a self-hosting distribution, so the honest answer is no — use the public endpoints, or download the font files and serve them yourself under their own licences.

Who runs it

FontServer is an independent service, operated by FontServer. It is not a company product and has no organisation behind it — it is run because the thing ought to exist, and it has been running since 2019. It is free to use and there is nothing to buy.

That is worth being plain about in both directions: there is no support contract and no uptime guarantee, and the Terms of Service say so. What there is instead is an operator who reads the email. For anything not answered here, see Contact; what is collected and why is set out in the Privacy Policy.