Skip to content

Patens — browser-native type design tool with a teaching audit

design type

Patens is a design tool for designing beautiful typefaces — with some assistance.

Proof · 30 seconds

Watch a glyph happen.

One unbroken take in the editor: draw a lowercase a, trace it to Béziers, let the audit read the result, apply a one-click fix, kern the new letter against V, and export an OTF you could install right now. No cuts, no speed-ups.

One take · 30s · silent · Draw → trace → audit → fix → kern → export · Download MP4

Proof · Specimen

What it makes.

Studio Geometric — drawn in Patens, exported by Patens, shipped as the editor's demo OTF. It's not a marketing typeface; it's the kind of work the editor produces end to end, from a blank canvas to an installable file.

Patens
Studio Geometric · Regular · 162 glyphs · Latin / Cyrillic / Greek · Drawn in Patens · 2026

The Method · Mentor in the margin

Every glyph gets a margin reading.

Patens runs all 105 rules continuously. When a contour crosses itself, when an x-height drifts, when a sidebearing wanders from its class — the audit notes it in plain English, beside the glyph, while you draw. Around 30 codes also offer a one-click fix; the rest are matters of judgment.

a
Live from describeAuditCode() — one dictionary, five surfaces

self-intersecting

A contour crosses itself. Rasterisers fill the overlap unpredictably depending on fill-rule (even-odd vs non-zero).

One-click Fix

xheight-misaligned

A lowercase letter that should reach x-height is sitting noticeably below it. Uneven tops across letters give text a wobbly rhythm; consistent x-height alignment is what makes type read smoothly.

Designer judgment

sidebearing-class-drift-lsb

This glyph's LSB has drifted from the median of its sidebearing-class peers. Either re-apply the class or remove this glyph from it.

Designer judgment

Read the Method · Full reference (105 codes) · Also from the terminal: npx patens audit

Interface · Where you'll work

One tab. No install. No account.

Patens runs entirely in the browser. Projects live in your IndexedDB; nothing leaves the machine unless you choose to share. The audit panel sits to the right of the canvas and updates as you draw.

patens · Studio Geometric
export

Glyphs · 162

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
a
b
c
d
e
f
g
h
i
a

Audit 4

  • near-collinear-points

    contour 1, points 4–6

  • xheight-overshoot

    +14u above x-height

  • aperture-asymmetric

    right side −6u

  • stem-thickness

    +8% bottom downstroke

Editor surface — actual layout. Findings are real audit codes.

What the audit checks · 9 families, 105 rules

Contour to brief, everything reads.

The 105 codes group into nine families. Each one runs continuously; each one has plain-English prose attached. Click to expand a family — the codes inside are the actual checks running against every glyph as you draw.

  • 01 Contour shape 9 codes

    Self-intersection, winding direction, near-collinear nodes, sharp kinks. The geometry that decides how the glyph rasterizes at every size.

    self-intersecting · winding-collision · sharp-kink · near-collinear-points

  • 02 Vertical metrics + topology 12 codes

    Ascender, descender, cap-height, x-height, baseline. The framework every letter hangs on; drift here breaks reading rhythm before any single letter looks wrong.

    cap-above-ascender · xheight-misaligned · win-clip-top · use-typo-off

  • 03 Spacing + sidebearings 9 codes

    Left + right sidebearings, advance widths, class drift. The optical balance type designers calibrate by eye in strings like nnnonnon — now checked continuously.

    overflows-advance · deeply-negative-lsb · sidebearing-class-drift

  • 04 OpenType invariants 11 codes

    Duplicate names, orphan classes, empty features, kern enabled with zero pairs. The plumbing that has to be right or the font silently misbehaves in downstream apps.

    duplicate-glyph-name · pair-orphan-class · feature-kern-disabled-with-pairs

  • 05 Naming + metadata 13 codes

    Family, style, version, vendor ID, license, glyph-name canonicality. What downstream apps read to identify the font, and what reservation-of-name licenses (OFL) require you to change in derivatives.

    naming-family-style · vendor-id-invalid · glyph-name-not-canonical

  • 06 Coverage 7 codes

    Latin-1 supplement, typographic essentials, currency, math symbols. Scripts you claim to cover and what those scripts actually require to be useful for setting real text.

    coverage-typo-essentials · coverage-latin-1-supp · coverage-currency · coverage-math

  • 07 Anchors 4 codes

    Mark-positioning anchors — base, mark, ligature. The GPOS layer that makes diacritics sit correctly across the alphabet, in every accented language.

    mark-no-prefix · base-with-prefix · anchor-without-partner

  • 08 Variable fonts 9 codes

    Master contour counts, axis ranges, named instances. The constraints that must hold for a variable font to interpolate cleanly without producing surprise glyphs between masters.

    master-contour-count · axis-out-of-range · no-instances

  • 09 Color · brief · misc 23 codes

    COLR/CPAL palette consistency, project-brief completeness, tabular figures for data tables, and the long tail of practical checks designers internalize over years.

    palette-length-mismatch · brief-no-intent · figures-non-tabular

Full reference — every code, every description →

Compared · Where Patens fits

Among the rest of the field.

Most rows in a font-editor comparison are tied — every modern editor draws Béziers and exports OpenType. These are the rows where Patens is different.

FeaturePatensFontLabGlyphsFontraRobofontGlyphr StudioLipiFontish
PriceFree$499$300Free$400FreeFreemium$6.49+/mo
Open sourceMITBSDMIT
Runs in the browser
Pressure-sensitive sketch
105-code teaching auditpartialpartialpartial
One-click "Fix" actionspartialpartial
Plain-English explanations

Read the full comparison — 26 rows, 9 tools →

— Alejandro, maker · with audit notes · more about who, why, and what's under the hood