Procedural font engine · SDK and API

Custom fonts, inside your product.

Let your users make their own typeface.

Real, installable fonts in milliseconds, without leaving your app. Press a letter and turn: this is the engine.

Turn it.
Read the call.

Every change writes the code and compiles a whole font, right here in your browser. The numbers are what your machine just did.

import { createEngine } from "@typomat/engine";

const engine = await createEngine({ licenseKey });

const ttf = engine.compile({
  weight: 118,
  contrast: 0.92,
  width: 0.9,
  xHeight: 470,
  serif: 0.5,
  serifShape: -0.6,
}, { name: "Your brand" });

Compiled in

…

File size

…

Characters

80

Try the API free

One engine.
Endless faces.

Each of these is the same drawing code, with different numbers. 64 parameters reach from hairline to poster, serif to stencil.

Vesper

weight 90 · contrast 0.75 · slant 12

Poster

weight 150 · width 0.62 · contrast 0.05

Atelier

weight 118 · contrast 0.92 · serif 0.5

Expo

weight 170 · width 1.5 · contrast 0.05

Foyer

weight 70 · arch 1 · contrast 0.6

Glyphic

weight 120 · flare 1 · contrast 0.5

Thread

weight 14 · width 1.5 · contrast 0

Stencil

weight 160 · stencil 1 · contrast 0.1

No prompt.
No waiting.

AI font generators answer a description. Typomat is an instrument: your users shape the font directly, and it answers while their hand is still moving.

ComparedA prompt-to-font generatorTypomat
What the user doesDescribes a font, then asks againTurns a dial and watches every letter follow
How fast it answersA wait for each attemptA whole font in about 90 ms
Where it runsUsually on someone's GPUIn the visitor's browser, or on your server
Same input twiceUsually a different resultThe same letters, every time
Changing one thingRegenerate and hopeMove one number. Nothing else moves

Design and social tools

A face for every brand

Each customer gets a typeface of their own, right beside their templates.

Logo makers and brand kits

A wordmark nobody else has

Sell a logo in lettering made for it, not the same fonts as everyone else.

Website builders

A display face per site

Served from your customer's own domain, with nothing to license per page view.

Image, video and PDF APIs

One more parameter

Generated type as part of a render call. Keep your pipeline as it is.

Print on demand

Lettering they shaped

Let the buyer turn the letters on the thing they're buying.

It already ships.
Three times.

This engine runs a real app, a Figma plugin and this website. You're not the first product it goes into.

Typomat on Mac: a letter beside the whole alphabet

The Typomat app

Typomat's dials inside Figma

Inside Figma

A dial open over a letter in Typomat on iPhone

On iPhone

What's in the box.

Measured from the engine this page runs. More in the docs

Output
TrueType (.ttf), static
Kerning
Yes, generated with each font
Characters
80: A–Z, a–z, 0–9 and basic punctuation
Parameters
64, in 5 groups: form, stroke, ends, flourish, carve
Also returns
SVG outlines for any text, with kerning
Compile time
About 90 ms a font, on one thread
Font size
About 14 KB
Engine size
6 MB, 1.8 MB over the wire
Runs in
Modern browsers and Node. No GPU, no network
No lock-in
A font is a plain TrueType file. It keeps working without us.
No royalties
Your users' fonts are theirs to use commercially, for good.
Direct line
You'll talk to Marco, who built the engine.

Good to know

Try it in your product.

Start with the free API trial, or write to Marco about what you're building.