About fontmake, gftools

Hi everyone,

I am currently working on type design using Glyphs. My usual workflow involves exporting the font files directly from Glyphs, validating them with FontBakery(web version), and then fixing any “FAIL” results to finalize the font.

While this process works, I want to take my skills to a more professional level, specifically in terms of font engineering.

I’m very interested in learning about FontMake and gftools to build a more automated and robust production pipeline. Could anyone recommend any good resources (documentation, tutorials, or video channels) where I can learn about these tools in depth?

Any tips would be greatly appreciated.

Thanks in advance!

Honestly, I think the Glyphs native export surpasses any other method of font production. The only thing lacking is the Variable CFF2 export, but as I’ve heard from time to time it’s in the works. :grin:

I very strongly disagree (and say this as a font engineer who works in Glyphs 99% of the time). For truly professional font production which needs to maintain absolute consistency, Glyphs cannot be your export tool of choice. Things change and break all the time. Using command line tools with fontmake guarantees much more reliability and facilitates maintenance of things like font metadata, feature code etc.

I work in Glyphs because it’s the easiest to use, and because I work with indie foundries on my own. In such a context, it’s fine if fonts change slightly, or if I have to work with some new behaviour.

At the very least you should be using a custom export plugin in Glyphs, which automates much of the post-production necessary on top of the standard native export (contact me if you’re interested in a ready-to-use plugin).

In contexts where reliability is paramount, use fontmake. That said, learning resources are limited. I would recommend looking at the template repositories published by the GF team. There are many, many public repos which show how to use fontmake efficiently. Otherwise, just play around with the library, you will find that it is very well written. There’s a very minimal documentation here to get you started: fontmake/USAGE.md at main · googlefonts/fontmake · GitHub

Last note: don’t use Fontbakery. It’s been superceded by Fontspector, which is 1000× as fast (this is the actual number, a family that takes 10 minutes in Fontbakery is done in 0.5s with Fontspector).

I understand and respect your point. There are cases when absolute consistency really matters. My point of view comes from a decades long experience. I’ve watched my father produce fonts in the 1980s and prior to Glyphs I’ve worked in Fontographer and FontLab5. Compared to that Glyphs absolutely enables top level professional font production. You are correct that some projects demand higher consistency and learning to use other tools is valuable, I didn’t intend to dissuade @parksahy from learning to use Fontmake.

Fontspector seems to be a bit behind Fontbakery in terms of checks (or at least they are somewhat different, so you have to figure if a check was intentionally removed or not added yet).

I use direct Glyphs export with post evaluation. You have to evaluate anyway, be it with fontmake or Glyphs. And it’s stable, I find the volatility rant greatly exaggerated. Of course we improve things when we release a new version, like… every other piece of software too. That’s the point of new versions, after all.

Instead of Fontbakery, I recommend switching to Fontspector, same thing (more or less) but faster. And I have project-specific tests.

2 Likes

fontmake, or rather glyphsLib, which is doing the conversion from .glyphs files in the background, doesn’t support all features of Glyphs. So you have to be aware of that and test if your project only uses features that glyphsLib can handle.

For example, I know that glyphsLib doesn’t fully support

  • Manual TrueType hinting
  • Manual PostScript hinting
  • Corner and cap components
  • All configurations of brace and bracket layers
  • Conditional layout feature code in variable fonts
  • Filters that run on export

I think the Glyphs file format version 3 is also not fully supported.

Thank you to everyone who responded. I learned so much that I didn’t know before.

It should support that at least partially.