No reviews yetBe the first to leave a review for GlyphPact
Maker
📌
Hi Product Hunt, I am Omar, the maintainer of GlyphPact.
A generated icon font is application code. If codepoints change after adding or reordering SVGs, an existing IconData constant can render a different glyph. I wanted a local compiler that treats that risk as a contract, not a convention.
GlyphPact's checked-in lock holds existing assignments stable. Removed icons leave tombstones instead of giving their codepoints to new icons. Builds also emit a const Dart provider, validated OpenType/CFF font, report, and attribution.
The SVG boundary is explicit. Lossless conversion is the default. Approximations and omissions are separate opt-ins. Malformed input, external references, unsafe content, unknown semantics, and exhausted work limits remain hard failures. Failed builds do not replace the last valid output.
Install:
uv tool install glyphpact
Then compile:
glyphpact assets/icons \
--output lib/generated/app_icons \
--name AppIcons
GlyphPact is open source under the MIT license. There is also an optional Claude Code and Codex plugin for local audits, builds, stale-output checks, and report paging.
Website:
https://omar-hanafy.github.io/gl...
GitHub:
https://github.com/omar-hanafy/g...
PyPI:
https://pypi.org/project/glyphpact/
I would especially like feedback from Flutter teams with large or unusual SVG packs. If GlyphPact cannot represent an icon faithfully, I want it to explain exactly why.
Report
A lock file for codepoints is a really smart move. Could you add a small CLI flag to diff two lock files so you can see exactly which glyph codepoints shifted between commits, or spot drift when teammates update the pack at different times? Would save a lot of guesswork during code reviews.
A lock file for codepoints is a really smart move. Could you add a small CLI flag to diff two lock files so you can see exactly which glyph codepoints shifted between commits, or spot drift when teammates update the pack at different times? Would save a lot of guesswork during code reviews.