- Move cross-cutting docs (personas, design system, implementation phases, Ideen.md) to .specify/memory/ - Move cross-cutting research and plans to .specify/memory/research/ and .specify/memory/plans/ - Extract 5 setup tasks from spec/setup-tasks.md into individual specs/001-005/spec.md files with spec-kit template format - Extract 20 user stories from spec/userstories.md into individual specs/006-026/spec.md files with spec-kit template format - Relocate feature-specific research and plan docs into specs/[feature]/ - Add spec-kit constitution, templates, scripts, and slash commands - Slim down CLAUDE.md to Claude-Code-specific config, delegate principles to .specify/memory/constitution.md - Update ralph.sh with stream-json output and per-iteration logging - Delete old spec/ and docs/agents/ directories - Gitignore Ralph iteration JSONL logs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
17 KiB
Research: Modern Sans-Serif Fonts for Mobile-First PWA
Date: 2026-03-04 Context: Selecting a primary typeface for fete, a privacy-focused PWA for event announcements and RSVPs. The font must be open-source with permissive licensing, modern geometric/neo-grotesque style, excellent mobile readability, and strong weight range.
Executive Summary
Based on research of 9 candidate fonts, 6 meet all requirements for self-hosting and redistribution under permissive licenses. Two do not qualify:
- General Sans: Proprietary (ITF Free Font License, non-commercial personal use only)
- Satoshi: License ambiguity; sources conflict between full OFL and ITF restrictions
The remaining 6 fonts are fully open-source and suitable for the project:
| Font | License | Design | Weights | Status |
|---|---|---|---|---|
| Inter | OFL-1.1 | Neo-grotesque, humanist | 9 (Thin–Black) | ✅ Recommended |
| Plus Jakarta Sans | OFL-1.1 | Geometric, modern | 7 (ExtraLight–ExtraBold) | ✅ Recommended |
| Outfit | OFL-1.1 | Geometric | 9 (Thin–Black) | ✅ Recommended |
| Space Grotesk | OFL-1.1 | Neo-grotesque, distinctive | 5 (Light–Bold) | ✅ Recommended |
| Manrope | OFL-1.1 | Geometric, humanist | 7 (ExtraLight–ExtraBold) | ✅ Recommended |
| DM Sans | OFL-1.1 | Geometric, low-contrast | 9 (Thin–Black) | ✅ Recommended |
| Sora | OFL-1.1 | Geometric | 8 (Thin–ExtraBold) | ✅ Recommended |
Detailed Candidate Analysis
1. Inter
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official: https://github.com/rsms/inter (releases page)
- NPM:
inter-uipackage - Homebrew:
font-inter - Official CDN: https://rsms.me/inter/inter.css
Design Character: Neo-grotesque with humanist touches. High x-height for enhanced legibility on screens. Geometric letterforms with open apertures. Designed specifically for UI and on-screen use.
Available Weights: 9 weights from Thin (100) to Black (900), each with italic variant. Also available as a variable font with weight axis.
Notable Apps/Products:
- UX/Design tools: Figma, Notion, Pixar Presto
- OS: Elementary OS, GNOME
- Web: GitLab, ISO, Mozilla, NASA
- Why: Chosen by product teams valuing clarity and modern minimalism; default choice for UI designers
Mobile Suitability: Excellent. Specifically engineered for screen readability with high x-height and open apertures. Performs well at 14–16px body text.
Distinctive Strengths:
- Purpose-built for digital interfaces
- Exceptional clarity in dense UI layouts
- Strong brand identity (recognizable across tech products)
- Extensive OpenType features
Weakness: Very widely used; less distinctive for a bold brand identity. Considered the "safe" choice.
2. Plus Jakarta Sans
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official Repository: https://github.com/tokotype/PlusJakartaSans
- Source Files:
sources/, compiled fonts infonts/directory - Designer Contact: mail@tokotype.com (Gumpita Rahayu, Tokotype)
- Latest Version: 2.7.1 (May 2023)
- Build Command:
gftools builder sources/builder.yaml
Design Character: Geometric sans-serif with modern, clean-cut forms. Inspired by Neuzeit Grotesk and Futura but with contemporary refinement. Slightly taller x-height for clear spacing between caps and lowercase. Open counters and balanced spacing for legibility across sizes. Bold, distinctive look with personality.
Available Weights: 7 weights from ExtraLight (200) to ExtraBold (800), with matching italics.
Notable Apps/Products:
- Original commission: Jakarta Provincial Government's "+Jakarta City of Collaboration" program (2020)
- Now widely used in: Branding projects, modern web design, UI design
- Why: Chosen for fresh, contemporary feel without generic blandness
Mobile Suitability: Excellent. Designed with mobile UI in mind. Clean letterforms render crisply on small screens.
Distinctive Strengths:
- Stylistic sets: Sharp, Straight, and Swirl variants add design flexibility
- Modern geometric with Indonesian design heritage (unique perspective)
- Excellent for branding (not generic like Inter)
- OpenType features for sophisticated typography
- Well-maintained, active development
Weakness: Less ubiquitous than Inter; smaller ecosystem of design tool integrations.
3. Outfit
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official Repository: https://github.com/Outfitio/Outfit-Fonts
- Fonts Directory:
/fontsin repository - OFL Text:
OFL.txtin repository - Designer: Rodrigo Fuenzalida (originally for Outfit.io)
- Status: Repository archived Feb 25, 2025 (read-only, downloads remain accessible)
Design Character: Geometric sans-serif with warm, friendly appearance. Generous x-height, balanced spacing, low contrast. Nine static weights plus variable font with weight axis.
Available Weights: 9 weights from Thin (100) to Black (900). No italics.
Notable Apps/Products:
- Originally created for Outfit.io platform
- Good readability for body text (≈16px) and strong headline presence
- Used in design tools (Figma integration)
Mobile Suitability: Good. Geometric forms and generous spacing work well on mobile, though low contrast may require careful pairing with sufficient color contrast.
Distinctive Strengths:
- Full weight range (Thin–Black)
- Variable font option for granular weight control
- Stylistic alternates and rare ligatures
- Accessible character set
Weakness: Archived repository; no active development. Low contrast design requires careful color/contrast pairing for accessibility.
4. Space Grotesk
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official Repository: https://github.com/floriankarsten/space-grotesk
- Official Site: https://fonts.floriankarsten.com/space-grotesk
- Designer: Florian Karsten
- Variants: Variable font with weight axis
Design Character: Neo-grotesque with distinctive personality. Proportional variant of Space Mono (Colophon Foundry, 2016). Retains Space Mono's idiosyncratic details while optimizing for improved readability. Bold, tech-forward aesthetic with monowidth heritage visible in character design.
Available Weights: 5 weights—Light (300), Regular (400), Medium (500), SemiBold (600), Bold (700). No italics.
Notable Apps/Products:
- Modern tech companies and startups seeking distinctive branding
- Popular in neo-brutalist web design
- Good for headlines and display use
Mobile Suitability: Good. Clean proportional forms with distinctive character. Works well for headlines; body text at 14px+ is readable.
Distinctive Strengths:
- Bold, tech-forward personality — immediately recognizable
- Heritage from Space Mono adds character without looking dated
- Excellent OpenType support (old-style figures, tabular figures, superscript, subscript, fractions, stylistic alternates)
- Supports extended language coverage: Latin, Vietnamese, Pinyin, Central/South-Eastern European
Weakness: Only 5 weights (lightest is 300, no Thin). Fewer weight options than Inter or DM Sans.
5. Manrope
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official Repository: https://github.com/sharanda/manrope
- Designer: Mikhail Sharanda (2018), converted to variable by Mirko Velimirovic (2019)
- Alternative Sources: Multiple community forks on GitHub, npm packages
- NPM Package:
@fontsource/manrope,@fontsource-variable/manrope
Design Character: Modern geometric sans-serif blending geometric shapes with humanistic elements. Semi-condensed structure with clean, contemporary feel. Geometric digits, packed with OpenType features.
Available Weights: 7 weights from ExtraLight (200) to ExtraBold (800). Available as variable font.
Notable Apps/Products:
- Widely used in modern design systems
- Popular in product/SaaS design
- Good for both UI and branding
Mobile Suitability: Excellent. Clean geometric design with humanistic touches; balanced proportions work well on mobile.
Distinctive Strengths:
- Geometric + humanistic blend (best of both worlds)
- Well-maintained active project
- Variable font available
- Strong design community around the font
Weakness: None significant; solid all-around choice.
6. DM Sans
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official Repository: https://github.com/googlefonts/dm-fonts
- Releases Page: https://github.com/googlefonts/dm-fonts/releases
- Google Fonts: https://fonts.google.com/specimen/DM+Sans
- Design: Commissioned from Colophon Foundry; Creative Direction: MultiAdaptor & DeepMind
Design Character: Low-contrast geometric sans-serif optimized for text at smaller sizes. Part of the DM suite (DM Sans, DM Serif Text, DM Serif Display). Designed for clarity and efficiency in dense typography.
Available Weights: 9 weights from Thin (100) to Black (900), each with italic variant.
Notable Apps/Products:
- DeepMind products (by commission)
- Tech companies favoring geometric clarity
- Professional and commercial products requiring text legibility
Mobile Suitability: Excellent. Specifically optimized for small text sizes; low contrast minimizes visual noise on mobile screens.
Distinctive Strengths:
- Optimized for small text — superior at 12–14px
- Full weight range (Thin–Black)
- Active Google Fonts maintenance
- Italic variants (unlike Outfit or Space Grotesk)
- Commissioned by reputable team (DeepMind)
Weakness: Low contrast may feel less bold on headlines without careful sizing/weight adjustment.
7. Sora
License: SIL Open Font License 1.1 (OFL-1.1)
Download Location:
- Official Repository: https://github.com/sora-xor/sora-font
- GitHub Releases: Direct TTF/OTF downloads available
- NPM Packages:
@fontsource/sora,@fontsource-variable/sora - Original Purpose: Custom typeface for SORA decentralized autonomous economy
Design Character: Geometric sans-serif with contemporary, clean aesthetic. Available as both static fonts and variable font. Designed as a branding solution for decentralized systems.
Available Weights: 8 weights from Thin (100) to ExtraBold (800), each with italic variant. Variable font available.
Notable Apps/Products:
- Sora (XOR) decentralized projects
- Crypto/blockchain projects using modern typography
- Web3 products seeking distinctive branding
Mobile Suitability: Good. Clean geometric forms render well on mobile; italics available for emphasis.
Distinctive Strengths:
- Full weight range with italics
- Variable font option
- Designed for digital-first branding
- GitHub-native distribution
Weakness: Less established than Inter or DM Sans in mainstream product design; smaller ecosystem.
Rejected Candidates
General Sans
Status: ❌ Does not meet licensing requirements
License: ITF Free Font License (proprietary, non-commercial personal use only)
Why Rejected: This is a paid commercial font distributed by the Indian Type Foundry (not open-source). The ITF Free Font License permits personal use only; commercial use requires a separate paid license. Does not meet the "open-source with permissive license" requirement.
Designer: Frode Helland (published by Indian Type Foundry)
Satoshi
Status: ⚠️ License ambiguity — conflicting sources
Documented License:
- Some sources claim SIL Open Font License (OFL-1.1)
- Other sources indicate ITF Free Font License (personal use only) similar to General Sans
Design: Swiss-style modernist sans-serif (Light to Black, 5–10 weights)
Download: Fontshare (Indian Type Foundry's free font service)
Why Not Recommended: The license status is unclear. While Fontshare advertises "free for personal and commercial use," the font's origin (Indian Type Foundry) and conflicting license documentation create uncertainty. For a privacy-focused project with clear open-source requirements, Satoshi's ambiguous licensing creates unnecessary legal risk. Better alternatives with unambiguous OFL-1.1 licensing are available.
Recommendation: If clarity is needed, contact Fontshare/ITF directly. For now, exclude from consideration to reduce licensing complexity.
Comparative Table: Qualified Fonts
| Metric | Inter | Plus Jakarta Sans | Outfit | Space Grotesk | Manrope | DM Sans | Sora |
|---|---|---|---|---|---|---|---|
| License | OFL-1.1 | OFL-1.1 | OFL-1.1 | OFL-1.1 | OFL-1.1 | OFL-1.1 | OFL-1.1 |
| Weights | 9 | 7 | 9 | 5 | 7 | 9 | 8 |
| Italics | ✅ Yes | ✅ Yes | ❌ No | ❌ No | ❌ No | ✅ Yes | ✅ Yes |
| Variable Font | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
| Design | Neo-grotesque | Geometric | Geometric | Neo-grotesque | Geo + Humanist | Geometric | Geometric |
| Personality | Generic/Safe | Bold/Fresh | Warm/Friendly | Tech-Forward | Balanced | Efficient/Clean | Contemporary |
| Mobile Text | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Distinctiveness | Low | High | Medium | High | High | Medium | Medium |
| Ecosystem | Very Large | Growing | Medium | Growing | Growing | Large | Small |
| Active Dev | ✅ Yes | ✅ Yes | ❌ Archived | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Recommendations
For Bold App-Native Branding
Primary Choice: Plus Jakarta Sans
Rationale:
- Fully open-source (OFL-1.1) with unambiguous licensing
- Bold, modern geometric aesthetic suitable for app branding
- Stylistic sets (Sharp, Straight, Swirl) provide design flexibility
- Well-maintained by Tokotype with clear development history
- Strong presence in modern UI/web design
- Excellent mobile readability with thoughtful character spacing
- Indonesian design heritage adds unique perspective (not generic)
Alternative: Space Grotesk
If you prefer even more distinctive character:
- Neo-grotesque with tech-forward personality
- Smaller weight range (5 weights) but strong identity
- Popular in contemporary design circles
- Good for headlines; pair with a more neutral font for body text if needed
For Safe, Professional UI
Primary Choice: Inter or DM Sans
Inter if:
- Maximum ecosystem and tool support desired
- Designing for broad recognition and trust
- Team already familiar with Inter (widespread in tech)
DM Sans if:
- Emphasis on small text legibility (optimized for 12–14px)
- Prefer italic variants
- Want active maintenance from Google Fonts community
For Balanced Approach
Manrope
- Geometric + humanistic blend (versatile)
- Excellent mobile performance
- Strong weight range (7 weights)
- Underrated choice; often overlooked for bolder options but delivers polish
Implementation Notes for Self-Hosting
All recommended fonts can be self-hosted:
- Download: Clone repository or download from releases page
- Generate Web Formats: Use FontForge, FontTools, or online converters to generate WOFF2 (required for modern browsers)
- CSS: Include via
@font-facewith local file paths - License: Include
LICENSE.txtorOFL.txtin the distribution
Example self-hosted CSS:
@font-face {
font-family: 'Plus Jakarta Sans';
src: url('/fonts/PlusJakartaSans-Regular.woff2') format('woff2');
font-weight: 400;
font-display: swap;
}
Privacy Considerations
All selected fonts are self-hosted open-source projects with no telemetry, no external CDN dependencies, and no tracking. Fully compliant with the project's privacy-first principles.
Conclusion
Inter, Plus Jakarta Sans, and Space Grotesk are the strongest candidates. The choice depends on brand positioning:
- Generic + Safe → Inter
- Bold + Modern → Plus Jakarta Sans
- Tech-Forward + Distinctive → Space Grotesk
All seven recommended fonts meet the strict licensing, openness, mobile readability, and weight-range requirements. Any of them are viable; the decision is primarily aesthetic.