Back to projects
React NativeiOSComputer VisionTypographyTTF GenerationSVG Vectorization

FotoFont

An iOS app that transforms your handwriting into a production-ready font file. Snap a photo of your writing, and the app uses computer vision to detect each character, vectorize the outlines, and assemble a complete TTF font, preserving every curve and imperfection. Approved by the iOS App Store in April 2026.

The Problem

Custom fonts are expensive to commission, and while tools like Glyphs and FontForge let you build one yourself, they require a complex desktop application just to trace a handful of letterforms. The thing most people actually want, to take their own handwriting and use it as a font, has no good mobile-native answer.

What I Built

FotoFont is an iOS app that turns a photograph of your handwriting into a downloadable TTF font file. You write out a character sheet, photograph it, and the app detects each glyph, vectorizes the outlines, and assembles a complete font, ready to install and use anywhere.

I co-built the full product: product design, React Native frontend, computer vision pipeline, and Python backend deployment.

Outcome

Shipped to the App Store.

Available on theApp Store

Design Decisions

The Character Sheet

The hardest UX problem was the input format. Users needed to write in a way the computer vision model could reliably segment, consistent spacing, clear boundaries, without making the sheet feel clinical or mechanical. I went through four versions. The final sheet uses a grid with generous gutters and lightly printed guide boxes that disappear visually once filled in, so the result still looks like your handwriting rather than a form.

Segmentation Feedback

After a photo is taken, the app shows you each detected character in a review grid before processing. This was a deliberate trust-building step. Users needed to see that the app understood what it was looking at before committing to a full export. It also gave them a natural correction point if a character was missed or misread.

The Export Flow

TTF files are unfamiliar to most users. “Download font” as a button label tested poorly. People didn’t know what would happen next or how they’d use the file. I changed the CTA to “Save to Files” with a secondary label “Install on your device,” which reduced confusion and matched the mental model users already had from other iOS file workflows.

Technical Constraints

Character segmentation remains the hardest problem in the pipeline. Dotted letters, descenders, and connected letterforms create genuine ambiguity for the computer vision model. An i and a j look identical until you find the dot, and a looping g can read as two separate glyphs. Malone and I have both taken passes at this and we’re still working through it. The current approach handles print handwriting reliably; cursive and highly stylized writing remain inconsistent.

The design response has been to make the constraint visible rather than hide it. The character sheet guides users toward print letterforms, and the review grid before export lets you catch and flag misread glyphs before they end up in the font file.