A blazing fast, minimal font server built with raw node:http
and axios
.
Includes a smart TypeScript Google Fonts Proxy with caching and support for Hetzner Storage Box (currently WIP).
- β‘οΈ Pure Node.js β no frameworks, just
node:http
- π§ Google Fonts Proxy β downloads fonts on-demand and caches them locally
- πΎ File Cache β serve files instantly if already cached
- βοΈ Hetzner Storage Box integration (planned, currently not working)
- π Built with TypeScript
npm run build
npm run start
src: url(https://fonts.gstatic.com/s/inter/v13/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2) format('woff2');
=>
src: url(https://example.com/fetch/inter/v13/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2) format('woff2');
<link type="text/css" href="//example.com/search?family=Google%20Sans%20Text%3A400%2C500%2C700" rel="stylesheet">
Send a request like:
GET /fetch/inter/v13/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2
The server will:
- Check if the font is cached
- If not, download it from Google Fonts
- Store it locally
- Serve it from the local cache next time π
There's built-in code to store files in a Hetzner Storage Box.
Currently not active due to connection/auth issues, contributions welcome!
Contributions are welcome!
Feel free to open issues, suggest features or submit PRs.
Have questions or ideas?
Open an issue or ping me!