
Coollabs Fonts
https://github.com/coollabsio/fonts- Category
- Developer Tools
- Rank
- No. 859Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- coollabsio
- GitHub
- 650 stars
- Date
About
Privacy-friendly drop-in replacement for Google Fonts. Self-host or use the public CDN to ship web fonts without third-party tracking.
What it does
Coollabs Fonts accepts familiar Google Fonts stylesheet queries and returns generated font-face CSS. Requests can specify families, weights, italics, display behavior, subsets, and text. The returned rules point browsers to WOFF2 assets stored behind the configured font domain. Material Icons has a dedicated stylesheet endpoint.
Why it's ranked here
The narrow migration path is compelling: many sites only need to replace the stylesheet host. Support for both Google CSS interfaces, multiple families, weight ranges, italics, Unicode subsets, and Material Icons makes the service more than a minimal proxy. Its small codebase is understandable, but production confidence depends on careful validation.
What's good
The service generates explicit WOFF2 rules with Unicode ranges, reducing ambiguity about what browsers load. Cached font metadata supplies family-specific subsets, with documented fallbacks when metadata is missing. The gathering process retries failures, limits concurrent transfers, records versions, and skips unchanged fonts. A container runs under a non-root user.
Tradeoffs
The compatibility layer does not fully reproduce upstream behavior. Weight ranges expand into standard static weights, and the text parameter is forwarded in asset URLs without visible subsetting logic in the server. Invalid requests become server errors rather than clear client errors. Tests compare against a live external service and conditionally skip assertions when responses are unavailable.
How to use it well
Choose it when an existing site already uses Google Fonts query syntax and needs a low-friction host change. Test every family, weight, style, and script your pages require before rollout. Self-host the service when operational control matters. It does not replace broader typography tooling, font design, licensing checks, or application monitoring.
Technical notes+
index.mjs starts a Fastify server on port 3000, registers ETag and static-file plugins, loads subsets.json plus font-versions-cache.json, and exposes /css, /css2, and /icon. css.mjs implements legacy family parsing, while css2.mjs parses repeated families, weight ranges, italic axes, display values, and text parameters before emitting @font-face rules. gather-fonts.mjs fetches Google Fonts metadata and CSS, extracts WOFF2 subset URLs, uploads assets to BunnyCDN with bounded concurrency and retries, and updates its version cache. css2.test.mjs uses Bun tests against both localhost and Google, but many assertions run only when responses exist. Dockerfile builds with Bun 1.2.22, installs production dependencies from the lockfile, switches to a non-root user, exposes port 3000, and defines an HTTP health check.
Observed
- License
- Apache License 2.0
- Primary language
- JavaScript using ECMAScript modules
- Packaging
- Bun package with a lockfile, development, production, gathering, and test scripts
- Interface
- HTTP service exposing CSS, CSS2, and Material Icons stylesheet endpoints
- Runtime stack
- Bun runtime with Fastify
- Deployment surface
- Multi-stage Docker image running as a non-root user on port 3000
- Font storage
- Gathering script uploads WOFF2 subset assets to BunnyCDN storage
- Testing
- Bun test file compares local CSS output with Google Fonts responses
Read from README.md, package.json, index.mjs, css.mjs, css2.mjs, css2.test.mjs, gather-fonts.mjs, deprecated/css2-next.mjs, deprecated/gather-fonts-old.mjs, LICENSE, CLAUDE.md, demo.html, Dockerfile, subsets.json.
What it can do
Self-host Google Fonts alternative
Font configuration and server setup → Self-hosted font delivery service
Serve web fonts via public CDN
Font requests from web applications → Font files delivered without tracking
Replace Google Fonts tracking
Existing Google Fonts implementation → Privacy-friendly font delivery
Deliver fonts without third-party tracking
Web font requests → Font files with no user tracking
Provide drop-in Google Fonts replacement
Google Fonts URLs or references → Privacy-compliant font delivery URLs
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.