Foundry is a self-hosted Google Fonts generator. Pick your families and weights, and get back GDPR-clean @font-face CSS pointing at self-hosted WOFF2 files — plus a one-line download script. Faster than Google's CDN, with no visitor IPs leaking to gstatic.
Embedding Google Fonts the normal way sends every visitor's IP to fonts.gstatic.com — the exact thing a German court fined a site owner over. Self-hosted fonts mean zero runtime call to Google, so there's no IP to leak.
Fonts served from your own origin skip the extra DNS lookup, TLS handshake, and connection to Google's servers. One fewer third party in your critical render path — and your fonts cache on your domain, under your control.
Foundry hits Google's real css2 endpoint with a modern-browser UA, gets the exact WOFF2 blocks, and rewrites the URLs to your self-host path — preserving weights, styles, and unicode-range subsets. No hand-editing CSS.
Search a family, tick the weights, and see it rendered in the actual font before you commit — headings, body, and italics side by side. Pick what you'll really use so you ship fewer bytes and a sharper page.
Along with the CSS, Foundry hands you the list of WOFF2 files and a copy-paste bash/curl script. Run it, get a /fonts folder, upload it — your self-host step is two commands, not an afternoon.
Not sure what goes with what? The paid pairing engine ships 42 hand-picked heading + body combinations — each with a category, a mood, and the rationale — so you can start from a pairing that already works instead of guessing.
Type a Google Font family — Inter, Fraunces, Space Grotesk — tick the weights you need, add italics, and choose your font-display.
It fetches the real font files from Google's css2 endpoint and rewrites every fonts.gstatic.com URL to your chosen self-host path — guaranteed zero gstatic references left.
Grab the WOFF2 file list, or run the generated curl script. Filenames carry the weight and subset — inter-400-latin.woff2 — so nothing collides.
Paste the @font-face CSS, upload the /fonts folder, and delete the old Google <link>. Now the browser fetches type from your origin — zero Google calls.
Free covers the whole self-host workflow for single families. A license adds the pairing engine, variable-font controls, and multi-family bundles.
Not in v1 — and we won't pretend otherwise. Foundry generates the correct @font-face CSS, the list of WOFF2 files, and a download script. You run the script and drop the /fonts folder on your own host. Re-hosting Google's WOFF2 binaries on our edge for arbitrary sites carries bandwidth and licensing considerations, so the "served from our edge" convenience mode is a documented paid feature — not something we claim to do for free.
Two reasons. Privacy/GDPR: embedding fonts from fonts.gstatic.com sends every visitor's IP to Google — a German court ruled that's a privacy violation, and it set off a wave of warning letters. Self-hosting means there's no runtime call to Google, so no IP to leak. Speed: serving from your own origin removes an extra DNS lookup, TLS handshake, and third-party connection from your render path.
It requests Google's modern css2 endpoint with a current-browser User-Agent, which returns ready-made WOFF2 @font-face blocks. Foundry rewrites those fonts.gstatic.com URLs to your chosen self-host path and names each file by family, weight, and subset — preserving unicode-range so subsets never collide. The output is guaranteed to contain zero gstatic references.
Yes. The whole self-host workflow for single families — search, specimen preview, CSS output, download script, and the optional fonts.js loader embed — is free, no card required. A license adds the curated pairing engine, variable-font axis controls, subsetting hints, multi-family bundles, and the edge-serve convenience mode.
If you'd rather not paste CSS, drop one <script> tag with a data-families attribute and the loader injects the self-hosted @font-face CSS for you. It still points at self-hosted woff2 paths — it does not proxy Google's binaries — so you self-host the files; the loader just saves you the copy-paste. See the embed docs for the full syntax.
Depends on the plan: Single = 1 domain, Agency = 10, Unlimited = unlimited. The free generator itself is open to anyone — a license unlocks the paid features. Domains bind automatically the first time a key verifies, and an invalid or expired key silently degrades to the free tier rather than breaking your page.