zachleat/glyphhanger — explained in plain English
Analysis updated 2026-08-03 · repo last pushed 2026-06-08
Shrink a blog's custom font files so mobile users on slow connections load pages faster.
Trim a multi-language font down to only the characters your site actually uses.
Convert web fonts between formats for better cross-browser compatibility.
Generate unicode-range values automatically so browsers load the right font file per character.
| zachleat/glyphhanger | github/safe-settings | yyx990803/vite-vs-next-turbo-hmr | |
|---|---|---|---|
| Stars | 897 | 880 | 931 |
| Language | JavaScript | JavaScript | JavaScript |
| Last pushed | 2026-06-08 | 2026-06-18 | 2023-02-16 |
| Maintenance | Maintained | Maintained | Dormant |
| Setup difficulty | moderate | hard | easy |
| Complexity | 2/5 | 4/5 | 2/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Node.js and may need Python fonttools (pyftsubset) installed as an external dependency for font subsetting.
Glyphhanger is a tool that helps websites load faster by shrinking font files down to only the characters a site actually uses. Most web fonts ship with hundreds or even thousands of glyphs covering every possible character in a language. But if your site only uses basic English letters and a handful of punctuation marks, you are forcing visitors to download a lot of unnecessary data. This utility trims the fat, so to speak, keeping only what you need. At a high level, the tool works by looking at your website's actual text content and figuring out exactly which characters appear. Then it subsets your font files, meaning it creates a new, smaller version of those files containing only that specific set of characters. It also automatically determines the right unicode-range values, which are bits of code that tell the browser which font file to use for which characters. This is especially handy if you want to serve a tiny font for most of your text but still keep the full font around for rare characters. This is useful for web developers, site owners, or anyone responsible for a website's performance. For example, if you run a blog with a stylish custom font, you could use this to cut your font file sizes dramatically, making pages load faster for mobile users on slow connections. It is also helpful if you use a font with extensive language support but only need a small slice of it. Instead of manually picking characters or writing configuration files, you point the tool at your site and let it figure out the trimming automatically. The project is built in JavaScript and is described as a "utility belt" for web fonts. Beyond subsetting, it can also convert fonts between formats, which helps with cross-browser compatibility. The README does not go into deeper detail on the exact workflow, but the core promise is straightforward: smaller fonts and faster websites with minimal manual effort.
Glyphhanger shrinks web font files to only the characters your website actually uses, so pages load faster with minimal manual effort. It also converts fonts between formats for cross-browser compatibility.
Mainly JavaScript. The stack also includes JavaScript, Node.js, pyftsubset.
Maintained — commit in last 6 months (last push 2026-06-08).
No license information is provided in the README, so default copyright restrictions apply and you should check the repository for license details.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.