Skip to content
GlyphPact
Menu

FlutterIcon.com alternative

A FlutterIcon.com alternative for repeatable Flutter icon builds

FlutterIcon.com is convenient for choosing bundled icons and making occasional browser exports. GlyphPact is for SVG folders that change repeatedly, where codepoints, diagnostics, generated FlutterIconData, and CI checks must stay in the repository.

The same location, chat, and mail glyphs with geometry lost in FlutterIcon.com and preserved by GlyphPact
Actual Flutter font glyphs, rendered at 2x pixel density.

Short answer

Which workflow fits

Choose FlutterIcon.com when

  • You want to browse and mix its bundled open-source icon packs.
  • You have a small, occasional browser export.
  • You can retain and restore the downloaded config.json.

Choose GlyphPact when

  • Your source of truth is a local, nested SVG directory.
  • Another Figma delivery must not renumber existing icons.
  • Unsupported SVG details need typed, reviewable diagnostics.
  • CI or an MCP client must rebuild and check the same inputs.

What “convert to compound path manually” actually means

FlutterIcon.com may show this importer warning:

If image looks not as expected please convert to compound path manually. Skipped tags and attributes: ...

The warning is not proof that an SVG is invalid. A font ultimately needs glyph outlines, so expanding strokes and flattening artwork into paths can help when tags or attributes such as stroke andstroke-width cannot be translated. A single-colour icon font also cannot preserve arbitrary fill colours.

It is not a universal repair. A valid SVG can already contain one compound <path> whose holes depend onfill-rule="evenodd". For that case, test the generated font in Flutter rather than assuming that another path conversion will preserve the geometry.

Rendered evidence

Three valid even-odd SVGs in one Flutter app

This is a dated reproduction of three files, not a claim about every SVG or every FlutterIcon.com export.

The exact source SVG, FlutterIcon TTF glyph, and GlyphPact OTF/CFF glyph for each tested icon.
IconOriginal SVGExpected geometryFlutterIcon.comGenerated TTFGlyphPactGenerated OTF/CFF
Location Boldfill-rule="evenodd"
Original Location Bold SVG with a centre holeReference
Hole lost
Preserved
Chat Boldfill-rule="evenodd"
Original Chat Bold SVG with three dotsReference
Dot lost
Preserved
Mail Boldfill-rule="evenodd"
Original Mail Bold SVG with an envelope cutoutReference
Cutout lost
Preserved

In this 2026-07-26 export, the FlutterIcon TTF lost the location pin’s center hole, the chat bubble’s third dot, and the envelope cutout. GlyphPact 1.0.1 preserved all three in the same Flutter application.

The sources are single compound paths withfill-rule="evenodd" andclip-rule="evenodd". The preserved FlutterIcon config contains normalized path data but no fill-rule field. In the generated TTF, those three subpaths rendered filled under the font’s winding. GlyphPact 1.0.1 classified all three as lossless and preserved the cutouts.

The screenshot labels the GlyphPact file “OpenType.” The exact outputs are FlutterIcon TTF with TrueType outlines and GlyphPact OTF with CFF outlines. TTF can also be an OpenType font, so the result does not show that one container format is inherently more faithful.

Open the deterministic 2x Flutter golden
Deterministic Flutter golden comparing the original SVGs, FlutterIcon TTF glyphs, and GlyphPact OTF/CFF glyphs
Designed at 800 × 640 logical pixels and rendered by Flutter at 1600 × 1280. Thepublic fixtureincludes the generator, expected golden, fonts, SVGs, hashes, and tests. Thefull app captureis preserved separately.

Experiment record

Versions and artifact identity

FlutterIcon.com
Export downloaded 2026-07-26. No application version was present in the bundle. TTF SHA-256:895a375775443487…
GlyphPact
Version 1.0.1, strict build: 3 discovered, 3 lossless, 0 approximated, 0 skipped, 0 issues. OTF SHA-256:26a6c71d001d303d…
Flutter toolchain
Flutter 3.44.4 and Dart 3.12.2.
Visual artifacts
Responsive website table: exact SVGs and fonts. Deterministic Flutter golden: 1600 × 1280,6b245024d7fa217a…. Cover: 2000 × 840,0660eb4340aed9c6…. Original 2x app capture:6eef4debc424f8a1….

Ongoing work

A browser export or a command the build can run

Hosted selection

Restore config.json, adjust the selection, export, unzip, and copy files into the project. A third-partyfontello-cli can automate part of the Fontello protocol, but FlutterIcon.com does not document a first-party local compiler or repository-native stale-output check.

Local compile

Add SVGs, run one command, and review the resulting provider, lock, report, and font. The same config can run on a developer machine, in CI, or through the local MCP server.

bash
glyphpact assets/icons \
  --output lib/generated/app_icons \
  --name AppIcons

Follow the complete bulk SVG-to-Flutter icon workflow.

Both can preserve codepoints, under different conditions

FlutterIcon.com’s downloaded config.json records a code for each glyph. Re-importing that file preserves those assignments. Starting another browser selection without the previous config removes that history.

GlyphPact writes the history to iconfont.lock.json in the generated output, reads it automatically, tombstones deleted values, and lets --check fail CI when the committed artifacts no longer match the sources.

Add Flutter icons without changing existing codepoints.

Side by side

The broader comparison

GlyphPact v1.1.0, FlutterIcon.com, and icon_font_generator on their documented workflow capabilities.
GlyphPactLocal CLI compilerFlutterIcon.comHosted Fontello forkicon_font_generatorDart CLI
Existing codepoints survive a pack changeIf an assignment moves, shipped application code renders the wrong glyph.Supported: Committed lock file`iconfont.lock.json` is generated into the output tree and read on every later build. Removed icons leave a tombstone in `retired` instead of freeing the codepoint.Conditional: If you re-import config.jsonInherits the Fontello session model, where the downloaded `config.json` records each glyph code and can be imported again. Stability depends on retaining and re-importing that file.Not documented: No documented mechanismNeither the pub.dev page nor the README documents a lock file or persistence mechanism. Published examples show codepoints running sequentially from `0xe000` in glyph order.
CI can prove committed output is currentGenerated artifacts drift from sources silently unless something fails the build.Supported: `--check` exits 3 when staleRebuilds a candidate artifact set and compares it without rewriting the owned output tree. Verified: exit 0 on current output, exit 3 after a source edit.Not supported: No first-party staleness checkThe third-party `fontello-cli` can install a config against a host, but neither it nor the site offers a check that fails on stale committed output.Not supported: Not offeredThe CLI generates output. No check or verify mode is documented.
Runs entirely on your machineUnreleased or licensed artwork often cannot leave the building.Supported: Local CLI, no network stepA Python command-line compiler. No website step, no project service, no server that receives artwork.Not supported: Hosted service sessionA hosted web application in the Fontello lineage, where the font configuration is posted to the service and held in a server-side session.Supported: Local CLIRuns locally. Described as written fully in Dart with no external dependency.
Byte-identical rebuildsNon-reproducible artifacts turn every rebuild into an unreviewable diff.Supported: Same bytes across worker countsSame inputs, config, lock, and compiler version produce byte-identical artifacts. Verified: identical SHA-256 across default, 1, and 4 worker processes.Not documented: Not documentedNot documented: Not documented
Explicit policy for SVG a font cannot holdAn icon font stores monochrome coverage. Something has to decide what happens to a blur or a half-transparent fill.Supported: Two policy axes, both strict by default`lossy` and `unrepresentable` each default to `error`. Approximations and omissions require explicit opt-in and are reported as typed, coded issues.Not documented: No published policyNot documented: No published policyExposes `--[no-]normalize` and `--[no-]ignore-shapes` flags, but documents no classification of unsupported input.
Generates a Flutter IconData APIHand-written IconData constants are the place codepoint drift actually bites.Supported: Const provider plus optional catalogEmits a tree-shakeable `@staticIconProvider` class, optional same-file name-keyed enumeration, `fontPackage` handling, and layered-icon widgets.Supported: Dart icon classPurpose-built for Flutter: exports a font plus a Dart icon class.Supported: Dart icon classGenerates an OTF font and a Flutter-compatible class.
Web assets: WOFF2 and CSSThe honest place GlyphPact is behind. If you need a web icon font today, these tools already do it.Not supported: OpenType/CFF onlyEmits a `.otf` font and the lock registry. No WOFF, no WOFF2, no generated CSS. Web use means converting the font and writing the CSS yourself.Supported: Web font packFontello lineage produces web font formats alongside the Flutter output.Not supported: OTF only
Generates an attribution recordThird-party icon licences usually require attribution, and audits ask for it.Supported: `ATTRIBUTION.md` per buildCarries declared author, licence, and source URL per glyph, and counts emitted icons with no declared provenance. It does not verify ownership.Conditional: Bundled-pack licencesShips licence information for the open-source packs it bundles. Not an attribution file generated from your own artwork metadata.Not supported: Not offered
Required runtimeA toolchain you do not already run is a toolchain you have to maintain.Supported: Python 3.10+Dart 3+ only to consume the generated provider.Supported: A browserOptional third-party CLI needs Node.Supported: Dart
Coding-agent integrationIcon work is increasingly delegated, and an agent needs typed results rather than screenshots.Supported: Local stdio MCP serverClaude Code and Codex can install the full plugin. Other stdio MCP clients can configure the published server directly. It exposes four tools plus the config, report, and inner CLI-result schemas.Not supported: Not offeredNot supported: Not offered
Verified on 2026-07-27.Checked against current first-party documentation and, for GlyphPact, against observed output. Sources:GlyphPact README, SVG profile; FlutterIcon.com FlutterIcon, polyicon source, Fontello API; icon_font_generator pub.dev page, Source.Behaviour changes. If a cell has gone out of date, it is worth reporting.

Try locally

Compile a pack you already have

uv tool install glyphpact

Installs the latest stable release from PyPI, currently v1.1.0. Already installed? Run uv tool upgrade glyphpact. Release notes.

Workflow comparison verified on 2026-07-27against FlutterIcon.com,polyicon,Fontello, andicon_font_generator. The visual experiment remains separately dated 2026-07-26.

FAQ

Questions about FlutterIcon.com alternatives

Is GlyphPact a FlutterIcon.com alternative?

Yes, for teams that want icon generation inside the repository and the build. Both produce a Flutter icon font plus a Dart icon class from SVG sources.

The models differ. FlutterIcon.com is a hosted web application in the Fontello lineage: pick or drop icons in a browser session, download a bundle, and keep the config.json if you want the same codepoints next time. It also lets you browse and mix from a set of bundled open-source icon packs, which GlyphPact does not do at all.

GlyphPact is a local CLI with no hosted component. The codepoint registry is committed to the repository, rebuilds are byte-identical, unsupported SVG features are classified against a published policy instead of being approximated silently, and a --check run in CI fails when committed artifacts drift from their sources.

Full FlutterIcon comparison

What does FlutterIcon.com’s “convert to compound path manually” warning mean?

FlutterIcon.com may show: “If image looks not as expected please convert to compound path manually. Skipped tags and attributes: ...” It is an importer warning, not proof that the source SVG is invalid.

An icon font needs glyph outlines. Expanding strokes and flattening artwork into paths can help when tags or attributes cannot be translated, but it is not a universal fix for every valid SVG or every fill-rule problem. Test the generated font in Flutter, not only the browser preview.

Tested FlutterIcon.com comparison

Is GlyphPact a Fontello alternative?

Yes for local, repository-controlled Flutter icon generation. GlyphPact compiles your SVG sources locally, keeps codepoints in a committed lock, audits unsupported SVG features, and checks generated output in CI.

Fontello is a better fit when you want its browser catalogue and web-font export workflow. Fontello also has a developer API and third-party CLI tooling, so the distinction is not “automation versus no automation.” The distinction is a first-party repository build and staleness check.