About FontCrafter
FontCrafter turns your handwriting into a real, installable font — entirely in your browser. No accounts, no uploads to servers, no cost.
Still have questions? Here's our FAQ.
How does it work?
Drop in a scan of your handwriting. The app detects each character, traces vector outlines, and builds a working OpenType font file you can install anywhere. Everything runs locally — your handwriting never leaves your device.
Who is it for?
Anyone who wants a personal handwriting font — designers, teachers, content creators, or anyone who thinks their handwriting deserves to be a typeface.
Frequently Asked Questions
Is FontCrafter really free?
Yes — completely free with no hidden limits. There's no account required, no watermarks, no feature gates, and no premium tier. You get full access to OTF, TTF, WOFF2, and Base64 exports, plus ligature generation. Your font files are yours to keep and use however you want.
Do I need to create an account?
No. FontCrafter requires zero signup. Open the page, load your scan, build your font, download it. No email, no password, no account whatsoever.
Is my handwriting uploaded to a server?
No. Everything runs locally in your browser using JavaScript. Your scan never leaves your device — no server processing, no cloud storage, no data collection. This is a fully client-side application.
What font formats can I export?
FontCrafter exports four formats: OTF (OpenType, best for desktop apps like Word and Photoshop), TTF (TrueType, universal compatibility), WOFF2 (compressed web font for websites), and Base64 (for embedding directly in CSS). All formats are generated locally.
Does FontCrafter support ligatures?
Yes. FontCrafter can auto-generate ligatures — connected letter pairs like "ff," "fi," "th," and "st" that make your font flow naturally. It also supports contextual alternates, cycling between your handwriting variants for a more organic feel. Many competing tools charge for ligature support.
How is this different from Calligraphr?
Calligraphr requires an account and processes your handwriting on their servers. Ligatures and advanced features require a paid subscription ($8/month). FontCrafter is 100% free, requires no account, processes everything locally in your browser, and includes ligatures, contextual alternates, and color font effects (drop shadows and ink texture) at no cost. FontCrafter also exports WOFF2 and Base64 formats that Calligraphr doesn't offer.
What kind of pen should I use?
A dark felt-tip pen (0.5mm or thicker) gives the best results. Ballpoints are often too faint, and thick markers can bleed. Keep your strokes inside the boxes with a little breathing room from the edges.
Can I use my font commercially?
The font is generated from your own handwriting, so you own it. You can use it for personal projects, commercial work, branding, merchandise — anything. Just make sure the handwriting is yours or you have permission from the person whose handwriting was used.
Do I have to print the template?
No. If you can't print the template or want to use existing handwriting, Handwriting Fontalizer lets you snap a photo of any handwriting sample and converts it into a FontCrafter-compatible template. Write your characters on white paper, take a photo, assign each letter, and download a template PNG you can upload here.
Under the Hood
Everything below happens entirely in your browser. No server, no WebAssembly binary, no hidden dependencies — just JavaScript running on your device.
The Processing Pipeline
When you drop in a scan, FontCrafter runs a multi-stage image processing pipeline: adaptive thresholding to isolate ink from paper, connected-component blob detection to find individual characters, Suzuki-Abe contour tracing to extract outlines, Ramer-Douglas-Peucker (RDP) simplification to reduce point count, Chaikin corner-cutting for smooth curves, and cubic Bézier fitting to produce clean vector paths. The entire pipeline is tuned for handwriting — pen pressure variation, stroke overlap, and ink bleed are all accounted for.
Font Architecture
FontCrafter builds fully compliant OpenType fonts from scratch — not a template with swapped glyphs, but real font table construction. The standard font uses CFF (Compact Font Format) outlines with cubic Bézier curves at 1000 UPM (units per em). Metrics are calculated from your actual handwriting: ascender, descender, cap height, and x-height are derived from the scanned characters, not hard-coded values.
OpenType Features
Your font includes a GSUB (Glyph Substitution) table with two key features. Contextual Alternates (calt): FontCrafter stores up to 3 handwriting variants per character and builds lookup rules that cycle between them as you type, so repeated letters never look identical — the same trick professional handwriting fonts use. Ligatures (liga): Common letter pairs like ff, fi, fl, th, and st are composited from your existing characters with overlap and kerning adjustments, then injected as ligature substitutions. Both features are baked into the font binary — they work in any app with OpenType support (Word, Pages, Photoshop, InDesign, Figma, CSS).
Kerning
FontCrafter generates kern pairs using a class-based approach. Characters are grouped by shape (round letters like O, C, G share one class; diagonal letters like A, V, W share another), then pair-specific adjustments are applied so combinations like AV, To, and WA sit together naturally. You can choose tight, normal, or loose spacing — each adjusts the kern values proportionally.
Composite & Extended Characters
The standard font can exceed 500 glyphs, most generated automatically. Accented characters (à, ñ, ü, ø, and 100+ more) are built by compositing your base letters with programmatically positioned diacritical marks. Extended characters — smart quotes, fractions, currency symbols, circled letters, superscripts — are constructed by combining, scaling, flipping, and repositioning your existing strokes. Nothing is pulled from a system font or generic template.
Color Fonts (COLR/CPAL)
The color font option builds a COLR (Color Outline) table with a CPAL (Color Palette) for multi-layer rendering. Drop shadows use a duplicate glyph layer offset and painted with the shadow color beneath the primary layer. Ink texture uses a noise-based edge erosion algorithm to create an organic, hand-inked look with two color layers. Duo-tone splits each glyph horizontally with a configurable split point. These are real COLRv0 fonts — they render natively in Chrome, Edge, Firefox, Safari, and any app that supports OpenType color fonts.
Output Formats
OTF (OpenType/CFF): Cubic Bézier outlines, best quality for desktop apps — Word, Photoshop, InDesign, Figma. TTF (TrueType): Quadratic Bézier outlines converted from CFF, maximum compatibility across platforms and older software. WOFF2: Brotli-compressed OTF wrapped in a web font container — typically 30-50% smaller than raw OTF, optimized for CSS @font-face. Base64: The full OTF binary encoded as a base64 data URI, ready to paste directly into a CSS @font-face rule — zero external file dependencies. All four formats are generated client-side using ArrayBuffer construction and binary table assembly.
What You Don't Get (Yet)
FontCrafter doesn't currently support: variable fonts (OpenType fvar), hinting/instruction programs (TrueType bytecode), right-to-left scripts, CJK character sets, or multi-page template scanning. These may come in future updates.
What's New
FontCrafter is actively developed and improved. Have a feature request, found a bug, or just want to say hi? Reach out to [email protected].
March 28, 2026
- Higher resolution output — your scan now stays at its original resolution instead of being downscaled, producing noticeably smoother curves and finer stroke detail in the finished font
- Better corner mark detection — scans with extra paper margin, faint marks, or only 2 visible marks now align correctly instead of locking onto the wrong features
- Grayscale grid line cleanup — templates printed on black-and-white printers no longer bleed grid lines into your glyphs
- Saved projects from older versions import correctly — polished characters are automatically scaled to match the new higher resolution
March 26, 2026
- Descender spacing fixed — letters like y, g, j, and q now tuck their tails under the previous character instead of leaving a gap
- Save and restore your entire project — export saves your scan, settings, and all tweaks as a single .fontcrafter.json file. Drop it back in to pick up where you left off
- Template line cleanup improved — dashed baseline fragments and box label bleed are caught by position-aware filtering, even on JPEG-compressed scans where color detection can't help
- Cell cropping tightened at the top edge — printed character labels from the template header no longer sneak into your glyphs
March 24, 2026
- Edit characters now has erase AND draw modes — erase stray marks or draw in missing parts with one click
- Universal DPI support — templates at any resolution are automatically normalized so registration marks line up perfectly
- Baseline positioning is now WYSIWYG — the amber line matches exactly what the font builder computes
- Lowercase descenders use data-driven positioning — they only descend if your handwriting actually extends below the baseline
March 22, 2026
- Fine-tune letter sizes — per-character sizing modal lets you visually compare and resize any letter that looks too big or too small
- Handwriting Fontalizer integration — can't print the template? Use any handwriting photo instead
- FontCrafter app family — 8 free browser tools that use your font, featured at the top and after download
- The old "Even out letter sizes" checkbox has been replaced by the new sizing modal — more control, better results
March 16, 2026
- Erase stray marks — zoom into any character and erase specks, grid lines, or pen trails with undo
- Faded corner marks no longer break your scan — FontCrafter infers missing marks from the other three
- Faded baseline dashes no longer leak into your font on phone scans
- Simplified letter positioning — the baseline editor is now the single tool for adjusting where letters sit
March 14, 2026
- Uppercase/lowercase fonts now build correctly on first try
- Periods, commas, and small punctuation are now detected even when drawn very small
- Cleaner glyph previews — tiny dot artifacts from PDF imports no longer appear
- PDF uploads process faster using a background worker
March 13, 2026
- Drag-to-adjust letter positioning — tap any letter and drag it up or down on the baseline
- Download Everything — one ZIP with all font formats, your settings, and your original scan
- Export & import settings — save your template + every tweak as a ZIP, import it later
- High-res scans no longer crash — large images are automatically downscaled
March 12, 2026
- Overhauled letter spacing — T, V, W now tuck properly next to lowercase
- New smoothing slider — 5 levels to control how polished your curves look
- Faint ink rescue — light pen strokes that were being lost are now preserved
- Fixed cutouts in W, M, and rounded characters at thin stroke points
March 9, 2026
- Colored paper support — scans on pink, green, or blue-lined paper now process correctly
- Purple and violet ink no longer gets mistaken for grid lines
March 8, 2026
- A4 template support for international users
- Templates now print as crisp vector PDFs instead of blurry PNGs
- FAQ section with structured data for better search visibility
March 7, 2026
- Auto-generated ligatures — ff, fi, fl, th, st and more for natural handwriting flow
- Contextual alternates — your font cycles through all 3 handwriting variants automatically
- 500+ glyphs per font — accented characters, smart quotes, fractions, and currency symbols
- Color font effects — drop shadows, ink textures, and duo-tone using OpenType COLR/CPAL
March 6, 2026
- FontCrafter launched — scan your handwriting, get a real installable font
- Exports to OTF, TTF, WOFF2, and Base64 — works everywhere
- No account, no uploads, no cost — runs entirely in your browser
Fine-Tune Letter Positions
Every character is shown at its natural position. The amber line shows where the font baseline will be — characters above it sit on the line, parts below it will descend. If it looks right, don't touch it.
Offset: —
Fine-Tune Letter Sizes
Click a character, then use [ ] or the buttons to resize. Small adjustments (±5–10%) look best.
Size: —
Mark the Four Corners
Drag each colored marker onto the matching ⊕ crosshair on your scan. A magnifier will appear while dragging so you can place it precisely.
① Top-left ② Top-right ③ Bottom-left ④ Bottom-right
1
2
3
4
Turn Your Handwriting
Into a Real Font — Free
It's easier than you think. Print, write, scan — done.
- Your handwriting becomes a downloadable & installable font
- What you make is yours — works on every platform and the web
- Natural variation — your letters won't look robotic or identical every time
- Letters connect naturally — ff, th, st flow like real writing
- Optional drop shadows and ink texture effects baked right into the font
- 100+ special characters auto-generated — like fractions, accents, and currency
- No account, no server, 100% private — everything happens in your browser
- Typography Nerd? See what's under the hood·Updated Mar 28 — see what's changed
Then use your font immediately — directly in your browser with our free app family!
START
- Print the template at 100% scale — or open it on-device.
- Fill in every box — felt-tip pen on paper, or stylus on screen. One character per row, three times each.
- Drop the file below — scan, photograph, or save your digital version.
Keep strokes inside the boxes with breathing room. Your natural variation across rows is what makes the font look real. For lowercase: Row 1 uppercase, Row 2 lowercase, Row 3 your choice. If scanning: flat on a table, even lighting, no wrinkles or shadows.
Having trouble? Try an alternative template
Light Guide
Grid lines bleeding into your font? This version uses small corner marks instead of full boxes.
Printer-Friendly
Corner marks getting cut off by your printer? This version pulls them inward so nothing gets clipped.
LOAD
Drop your completed scan or a saved FontCrafter project below. JPG, PNG, PDF, high-res photo, or a .fontcrafter.json export. Everything is processed on your device. Nothing is uploaded or stored.
Drop your scan or saved project here, or click to browse
Not happy with a character? Touch it up in any image editor, or use correction tape and re-scan.
Previously exported? You can also drop the ZIP in the upload area above.
Processing your handwriting…
INSPECT
Green = good. Click any character to swap it for a different version from your scan. Small imperfections are fine — they give your font personality.
GENERAL
Name your font and choose how your three rows should be used. Enable letter connections for natural-looking handwriting flow.
Row 2 will be used as your lowercase. Adjust how much to shrink it — set to 1.00 if you already wrote Row 2 smaller than Row 1.
1.00
Removes tiny specks that bled through from adjacent boxes. Won't affect dots on i, j, or punctuation.
FaithfulSmoother
Controls how much the outlines are smoothed. Lower keeps your natural wobble, higher produces cleaner curves.
POLISHING (Clean Up)
Erase stray marks, grid lines, or specks that survived automatic cleanup. This shows exactly what goes into your font — not just the preview.
Removes tiny specks that bled through from adjacent boxes. Won't affect dots on i, j, or punctuation.
Opens every character as it will appear in your font. Zoom in to erase stray marks or draw in missing parts.
Click any character to zoom in. Erase stray marks or draw in missing parts. Dashed borders mean you've edited it.
POSITIONING (Baselines)
Control where each letter sits relative to the baseline — drag them individually or shift common ones in bulk.
See all your letters on a baseline and drag any of them up or down — all 3 rows.
SIZING (Per-Character)
Adjust individual characters that look too big or too small compared to their neighbors.
See all your letters side by side and resize any that don't match. Changes carry through to your font automatically on next build.
CONNECTIONS (Ligatures)
Common letter pairs like ff, fi, th, and st will connect so your font flows naturally. Turn this off if you want each letter separate.
Comma-separated pairs. Lowercase and uppercase versions included — remove any you don't need.
SPACING (Kerning)
Adjusts the space between certain letter pairs so they look right. AV, To, and WA are common ones.
OUTPUT
Pick one. You can always come back and build the other.
Pick a color — it will be baked directly into the font file.
The options below are built automatically from your handwritten characters.
The options below are built automatically from your handwritten characters. Nothing extra to draw — FontCrafter creates them by combining, flipping, and resizing the letters you already wrote.
SubtleHeavy
LowerHigher
HorizontalFull rotation
HorizontalFull rotation
HorizontalFull rotation
HorizontalFull rotation
PREVIEW
See how your font looks with sample text, or type anything you like below.
UppercaseTHE QUICK BROWN FOX JUMPS OVER A LAZY DOG.
Lowercasesphinx of black quartz, judge my vow?
Mixed CaseBoth Fickle Dwarves Can Jinx My Pig Quiz!
• $11.38 + tax & a 5.69% tip = more than $20.74
• (I love Star Wars) [Yes] {Maybe} <OK>
• That’s what I said! “Really?”
• arcade.pirillo.com * chris.pirillo.com
• He scored 7/8 on the quiz — not bad~
• Order #4053: 2x @$16.99 each | Total: $33.98
• Is it _really_ 100^2 = 10,000‽
• "Yes," she said, 'it's a go;' then walked away.
Your font includes contextual alternates (calt) — consecutive characters will automatically cycle between your 3 handwriting variants. This works in apps with OpenType support but may not appear in this preview.
Try Your Font
Click here to try it for yourself...
If you found this useful, I'd appreciate donations & patrons (to keep iterating)!
DOWNLOAD
OTF for desktop apps, TTF for universal compatibility, WOFF2 for websites, Base64 for CSS embedding.
Then use your font immediately — directly in your browser with our free app family!
.OTF
OpenType — best for desktop
.WOFF2
Web font — smallest file
Base64
CSS @font-face embed
All font formats + your settings in one ZIP — ready to use or re-import later.
Want to come back and rebuild this font later — or try different settings with the same template?
Saves your scan and all your tweaks as a ZIP. Import it next time to skip straight to download.
Get notified when I ship new features and tools: