Bare

Visual flourish distracts. The power is in the writing.

Bare shapes a headline, a tagline, a paragraph — and lets you draw the typeface it is set in. Not a word processor: no table of contents, no footnotes, no page numbers.

Open the editor

Runs in the browser. No account needed — create one to keep projects on the server.

ascender 750 cap 700 x-height 522 baseline 0 descender -250
R — 4 contours, 18 nodes. Not an illustration: this is the drawing itself, read straight out of the editor.
Specimen Bare Sans, the tool's own typeface
72

The quick brown fox jumps over the lazy dog

46

The quick brown fox jumps over the lazy dog

30

The quick brown fox jumps over the lazy dog

21

The quick brown fox jumps over the lazy dog

15

The quick brown fox jumps over the lazy dog

11

The quick brown fox jumps over the lazy dog

Character set 96 glyphs, drawn and spaced
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,:;!?'"-_()[]{}/\*&@#%+=<>$|^`~

Every printable character of Basic Latin, drawn and spaced — letters, figures, punctuation and symbols, down to ^, ` and ~. Other alphabets are a setting waiting to be built, not a special case bolted on.

What it does
Text /text

Freely positioned blocks on a canvas. Select several and edit their shared values at once; alignment guides snap to the others while you drag.

Size · line height · letter, word and paragraph spacing · indent · alignment · case · named styles · liga, kern, salt, ss01, tnum, onum · SVG export with real outlines · copy as HTML/CSS

Font /font

Draw glyphs from scratch or import a typeface and change it. 96 glyphs are already drawn, so nothing starts from an empty screen.

Pen · freehand with curve fitting · rectangle · ellipse · knife · measure · weight, width, slant and contrast as live parameters · Thin to Black plus italics in one click · ligatures, alternates, stylistic sets · kerning · TTF, OTF, WOFF

Colophon the font compiler is ours

TTF and OTF are written byte by byte in this codebase. No font library does the writing — opentype.js is used only to read the fonts you import.

glyf / loca
cubic → quadratic, flag compression, short-vector packing
CFF
Type 2 charstrings, our own DICT and INDEX encoder
cmap
format 4, plus format 12 when the charset needs it
GSUB
ligatures, alternates, stylistic sets
GPOS + kern
pair adjustment, modern and legacy
WOFF
per-table deflate

Every build is checked by reading the compiled file back and comparing outlines, advances, kerning, features and contour direction against the source.

Draw a typeface

A username and a password is the whole account — Bare does not ask for an email. Create one, or carry on without one.