majodev/google-webfonts-helper is an open-source project on GitHub with 13.0k stars, written primarily in TypeScript. A Hassle-Free Way to Self-Host Google Fonts. Get eot, ttf, svg, woff and woff2 files + CSS snippets
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Help me keep this service alive by sponsoring me. Thank you. ❤️
ToC
google-webfonts-helper
Current Sponsors
ToC
Give it a try: https://gwfh.mranftl.com
Running gwfh on your own server
Development
Quickstart
Production build
JSON API
GET /api/fonts
GET /api/fonts/[id]?subsets=latin,latin-ext
GET /api/fonts/[id]?download=zip&subsets=latin&formats=woff,woff2&variants=regular
History
License
Give it a try: https://gwfh.mranftl.com
This service might be handy if you want to host a specific Google font on your own server:
font style and charset customization
CSS snippets
.eot, .woff, .woff2, .svg, .ttf font file formats download (zipped).
Running gwfh on your own server
I provide prebuilt Docker images via GitHub Packages. You can use them as follows:
# See https://developers.google.com/fonts/docs/developer_api for creating your own API-Key.
docker run -e GOOGLE_FONTS_API_KEY=<YOUR-API-KEY> -p 8080:8080 ghcr.io/majodev/google-webfonts-helper:<TAG>
# Express server listening on 8080, in production mode
Development
Quickstart
Do this to setup a development environment:
# Ensure to set the GOOGLE_FONTS_API_KEY env var inside your own gitignored .env file
# See https://developers.google.com/fonts/docs/developer_api for creating your own API-Key.
echo "GOOGLE_FONTS_API_KEY=<YOUR-API-KEY>" > .env
# Start up the development docker container (multistage Dockerfile, stage 1 only)
./docker-helper.sh --up
# [+] Running 1/0
# ⠿ Container gwfh-service-1 Running
# node@3b506a285f7f:/app$
# within this development container:
node$ yarn --pure-lockfile
node$ ./node_modules/.bin/bower install
# start development server
node$ grunt serve
# [...]
# Express server listening on 9000, in development mode
# The application is now available at http://127.0.0.1:9000 (watching for code changes)
# start production server (same command as within the final docker multistage build)
node$ grunt build
node$ NODE_ENV=production node dist/server/app.js
# Express server listening on 8080, in production mode
Production build
If you want to build and run your own production container locally:
# Build the production docker container (final stage)
docker build . -t <your-image-tag>
# Run it (if you have previously started the development container, halt it!)
./docker-helper.sh --halt
docker run -e GOOGLE_FONTS_API_KEY=<YOUR-API-KEY> -p 8080:8080 <your-image-tag>
# Express server listening on 8080, in production mode
To mitigate security issues especially with the projects' deprecated dependencies, the final image is based on a minimal container image. It runs rootless and has no development dependencies.
JSON API
The API is public, feel free to use it directly (rate-limits may apply).
GET /api/fonts
Returns a list of all fonts, sorted by popularity. E.g. curl https://gwfh.mranftl.com/api/fonts:
Returns a font with urls to the actual font files google's servers. subsets is optional (will serve the defSubset if unspecified). E.g. curl "https://gwfh.mranftl.com/api/fonts/modern-antiqua?subsets=latin,latin-ext" (the double quotes are important as query parameters may else be stripped!):
GET /api/fonts/[id]?download=zip&subsets=latin&formats=woff,woff2&variants=regular
Download a zipped archive with all .eot, .woff, .woff2, .svg, .ttf files of a specified font. The query parameters formats and variants are optional (includes everything if no filtering is applied). is E.g. curl -o fontfiles.zip "https://gwfh.mranftl.com/api/fonts/lato?download=zip&subsets=latin,latin-ext&variants=regular,700&formats=woff" (the double quotes are important as query parameters may else be stripped!)
History
2025:
Switch to node:22 for the final image.
Adds support for linux/arm64 architecture (patches imagemin/optipng-bin)
2024:
Switch to node:20 for the final image.
2023:
Project upgraded to be compatible with Node.js v18+.
Automated prebuilt Docker images via GitHub Actions.
/server was fully refactored/modernized (async/await) and now compiles with TypeScript.
Switch to node:18 for the final image.
/client can still be considered very legacy Angular code.
2022:
This service was mostly on life-support, most of its code and dependencies can be considered deprecated. The current docker image wrapping [email protected] runs rootless and is hopefully enough to keep the bandits out. API attack surface should be minimal anyways.
2014:
This service was originally a prototype I've created to get familiar with Angular and Express. All magic by generator-angular-fullstack. See my note here.
Idea originally by Clemens Lang who created an awesome bash script to download Google fonts in all formats.
How active is development on majodev/google-webfonts-helper?
The most recent commit recorded on majodev/google-webfonts-helper was 5 months ago, based on the GitHub push timestamp. The repository has 442 forks — one of the better signals of community interest.
How many stars does majodev/google-webfonts-helper have?
majodev/google-webfonts-helper has 13.0k GitHub stars — refresh the page for the live number, or check github.com/majodev/google-webfonts-helper. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is majodev/google-webfonts-helper open source?
Yes — majodev/google-webfonts-helper ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/majodev/google-webfonts-helper.
What is majodev/google-webfonts-helper?
majodev/google-webfonts-helper (majodev/google-webfonts-helper) is a TypeScript project on GitHub. From the project's own README: A Hassle-Free Way to Self-Host Google Fonts. Get eot, ttf, svg, woff and woff2 files + CSS snippets
Where do I read more about majodev/google-webfonts-helper?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/majodev/google-webfonts-helper is the definitive source.
Read full README in the tab above.
Still deciding about google-webfonts-helper?
One click hands the question to an AI along with this page — see what it says about google-webfonts-helper.