HandyMan

View on Codeberg

A command-line (with desktop in mind in the future) tool that modifies fonts through a composable pipeline of transformations, where we configure each step with typed parameters, chain them in any order, and export the result. Written in Go with no dependencies outside of the standard library.

Why This Project?

Nothing in particular. Just for the love of the game. Want to make fonts, the tool chain is a bit overwhelming for me. So wanted to create something simpler that allows me to do everything that I could possibly want and help me learn everything that I could possibly need about fonts.

Usage

Run a pipeline:

handyman run pipeline.json input.ttf output.ttf

Pipeline file:

[{ "bold": { "amount": 50 } }, { "monospace": { "target_width": 600 } }]

Planned Transformations

NameWhat it does
boldExpands stroke outlines to increase visual weight
widthScales glyph X coordinates and advance widths
monospaceNormalizes all advance widths to a single value
bounceAlternates vertical glyph offset for a bouncy look