KEPT · Your Font Book, sorted.

KEPT · Your Font Book, sorted.

A free web app that sorts the fonts on your Mac by style, plus a Figma plugin for the ones you keep. Live and in daily use on my 1,601-font library.
Role

Role

Solo designer & developer:
Product
UX/UI
Design system

Front-end

Solo designer & developer:

Product, UX/UI
Design system
Front-end

Timeline

Timeline

October 2026

October 2026

Tools

Tools

Figma
HTML/CSS/JS
Claude

Figma
HTML/CSS/JS
Claude

01 · Overview

How might we help designers find and keep the fonts they love, without paying for a font manager or uploading their library?

02 · Solution

Sort for me.

One click, and every font lands on a shelf: serif, sans, mono, display, script. System fonts are hidden.
One click, and every font lands on a shelf: serif, sans, mono, display, script. System fonts are hidden.

Keep what you love.

Review one family at a time, set in its own font. Keep, hide or bookmark, and your progress saves itself
Review one family at a time, set in its own font. Keep, hide or bookmark, and your progress saves itself

Try it together.

Test heading, body and caption pairs on a real layout, then save the ones that work.
Test heading, body and caption pairs on a real layout, then save the ones that work.

Use it in Figma.

Apply your saved fonts and pairs on the canvas with one click.
Apply your saved fonts and pairs on the canvas with one click.
03 · The problem

Designers collect fonts faster than they can organize them.

01
Too many useless fonts
Nearly half of Font Book is system and language support I’ll never design with.
02
Names say nothing
“Avenir Next Condensed” or “Optima” tells me nothing about how a font looks.
03
Good tools cost money
Paid managers charge a subscription; free ones are cluttered or abandoned.
04
Good fonts get lost
The one I loved last month is buried, and I can’t remember its name.

So I kept using the same five fonts over and over again.

I asked 11 designers: Can you recall your favorite fonts without looking? All said no.

Key insight: The problem isn’t storage, it’s recall.

This changed the brief. Kept didn’t need to manage files better. It needed to do the organizing for you and make it effortless to mark the keepers.
04 · Market research
Kept's position: the only option that's free, in the browser, and helps you choose.
Kept's position: the only option that's free, in the browser, and helps you choose.
05 · Design Process
Prove it first
With an AI assistant, I tested whether a browser can read Mac fonts. Chrome and Edge can (Local Font Access API). So the browser became the product.
Key Design Decision 01
From cards to hairlines
My first library was a grid of rounded cards with labelled control sections. It looked like every dashboard. I removed the cards, merged the controls into one quiet toolbar and let 1px lines do the grouping, so the specimens became the loudest thing on the page.
The library today: one toolbar, hairline cells, and a 1px ink outline on hover.
The library today: one toolbar, hairline cells, and a 1px ink outline on hover.
Key Design Decision 02
Sorting shelf by shelf
With system fonts hidden, there were still 219 families to review, too many for one sitting. I split the review by shelf, gave each shelf its own progress line, and made progress save as you go, with a line under the buttons that says so. Coming back shows “Pick up where you left off” with the exact shelf and count.
Each shelf shows its own progress. Keep, Hide and Bookmark work from the keyboard.
Each shelf shows its own progress. Keep, Hide and Bookmark work from the keyboard.
Move a font to another shelf in one step; the Library offers to pick up where you left off.
Move a font to another shelf in one step; the Library offers to pick up where you left off.
Key Design Decision 03
Only filters the data can support
I designed a Fontshare-style properties panel, then checked what font files reliably report. Weight, width, style count and x-height are measurable; contrast and edges are guesswork. I shipped the four honest ones and cut the rest.
The shipped panel: four properties Kept can measure from the files themselves.
The shipped panel: four properties Kept can measure from the files themselves.
06 · Design system

One vocabulary for design and code.

Direction
An editorial gallery: calm, quiet, type-first. References: 1X, A24, Fontshare, Figure.
An editorial gallery: calm, quiet, type-first. References: 1X, A24, Fontshare, Figure.
Before building, I moved every screen into Figma and turned the visual rules into variables, so design and code share the same names.

—

79 Figma variables, Light and Dark
79 Figma variables, Light and Dark

—

Every component with hover and selected states
Every component with hover and selected states

—

One hover language, 200 ms
One hover language, 200 ms
Type and color
Instrument Serif for page titles, Geist for the interface, Geist Mono for labels. A warm paper ground and near-black ink in light mode, reversed in dark.

Aa

Instrument Serif

Titles

Aa

Geist

Interface

Aa

Geist Mono

Labels

Ground

#F4F3F0

Ink

#0E0E0D

Muted

#5E5D59

Line

#DCDAD5

Brand

#E0261A

Color lives in variables with Light and Dark modes; the brand red is the only accent.
Color lives in variables with Light and Dark modes; the brand red is the only accent.
07 · Building and shipping

No server, no account, and nothing leaves the computer.

How it sorts a library
After one permission prompt, Kept reads the classification data type designers put in each font file: PANOSE numbers, style class and whether it’s monospaced. Names fill the gaps; for fonts with no data, it draws a capital I and checks for serifs.

01 →

Fonts on your Mac

Everything Font Book lists

02 →

One permission

Chrome or Edge asks once

03 →

Read and classify

PANOSE, style class, mono flag

04 →

Shelves

Serif, sans, mono, display, script

05 →

Sort and keep

Keep, Hide, Bookmark, Move

06 →

Library and Saved

Grid, list and display; pairs

07 →

Backup file

A small file you choose to save

08

Kept for Figma

Load it; apply on the canvas

Everything runs on this computer. The backup file is the only thing that travels, and only when you choose.

01 →

Fonts on your Mac

Everything Font Book lists

02 →

One permission

Chrome or Edge asks once

03 →

Read and classify

PANOSE, style class, mono flag

04 →

Shelves

Serif, sans, mono, display, script

05 →

Sort and keep

Keep, Hide, Bookmark, Move

06 →

Library and Saved

Grid, list and display; pairs

07 →

Backup file

A small file you choose to save

08

Kept for Figma

Load it; apply on the canvas

The backup file is the only thing that travels, and only when you choose.

Designing around constraints
Constraints
My mitigations in design
Chrome and Edge only
Clear message + file drop anywhere
Progress in one browser
Auto-save + backup file
Access feels risky
“Read-only. Kept never installs, moves or deletes fonts.”
Empty Library
Its own “no fonts found” state, separate from “access blocked”
08 · Extending into Figma

Kept, now in Figma.

—

Click a font to use it. The whole row applies the font to the selected text, keeping bold as bold and italic as italic.

—

Pairs, applied by size. Auto gives the largest text the heading font, the smallest the caption font and the rest the body font.

—

From pair to system. One click inserts a pair card or a full specimen, or creates Figma text styles named after the pair.

—

Bring it over from the web. Load a Kept backup and your bookmarks, pairs and notes appear.

Designing the handoff

I prioritized explaining how data moves between two products. First-time users get a three-step guide. Returning users see their pairs with one line on top, “Changed anything in Kept? Bring it over with a fresh backup,” plus the date they last loaded one.

09 · Reflection

What I learned

End-to-end ownership

Gained experience taking a product from idea to launch on my own. Every decision came back to me, so I learned to think past the screen, to how something actually gets built, shipped, and used.

Gained experience taking a product from idea to launch on my own. Every decision came back to me, so I learned to think past the screen, to how something actually gets built, shipped, and used.

Small words carry weight

Lines like “Read-only” and “Saved as you go” significantly reduce users' anxiety of losing their progress.

Lines like “Read-only” and “Saved as you go” significantly reduce users' anxiety of losing their progress.

What's next?

01
Smarter pairing suggestions, learned from the pairs people actually save.
02
Optional sync, so the web app and the plugin share data without a backup file.
Let’s make something less annoying.
ann arbor

00:40:53

Let’s make something less annoying.
ann arbor

00:40:53

Let’s make something less annoying.
ann arbor

00:40:53

back to top