Hey y’all.

So outside of programming i do create (fictional human) languages, which often have their writing systems, which means fonts because I’d like to be able to write about (and in) said languages on the computer. And encountering that I found out a sad reality.

The existing options for complex font creation available are, as far as I can tell:

  • Very expensive professional software that costs several hundreds of euros to purchase (which i cannot afford), when it’s not a subscription model. (e.g. Fontlab, FontCreator, ...)
  • Rather limited tools that only work for basic linear alphabets but struggle as soon as one needs anything more advanced
  • FontForge, which while extremely powerful, is also in need of a deep UI redesign[1]
  • Fontmake, which converts an xml based format into proper opentype fonts, and overall works great if one ignores the part that implies handwriting several thousand lines of XML.
  • MetaFont, which has a really nice dev-facing API, if one doesn't mind being locked with TeX fonts that can't be used elsewhere

So I decided to write my own (which outputs the XML directory format that Fontmake ingests because the opentype binary format is wild and I didn't feel like dealing with it for the time being).

[1]: Also fontforge keeps segfaulting on my system and I cannot figure out why.

Here is a screenshot of the test font I made to see if my stuff works

code is at https://sr.ht/~annwan/mkfont if people want to look at subpar haskell

&mkfont

View full feed

There is vanishingly few tools allowing the creation of fully featured fonts on a budget.

Effectively the options are:

  • Fontforge, which is feature complete, but works through an arcane network of modals, and modals within modals and modals within modals within modals, and ....

    It also has a tendency to be unstable

  • Birdfont, which is also largely feature complete, has a much nicer UI than Fontforge, but most of it isn't keyboard-navigable.

  • A plethora of rather limited online and offline tools, that are often limited to simple alphabetic fonts with no support for advanced OpenType features

  • The venerable MetaFont which is very powerful, and relatively nice to use, but outputs fonts that are only usable with TeX

  • FontLab which is about as cheap as it get for professional font software, but its price tag is definitely out of reach for most hobbyist use.

  • FontMake, made by Google Fonts, which is fully featured and text based, but ingests a UFO, a format based on XML, which is not friendly to human authoring.

The aim of mkfont is to expose a sane(ish) text-based format to describe fonts, and transpile them to a UFO, which can then be converted to an actual font by fontmake.

AI Policy

No generative AI used willingly for any purpose.