# Free alternatives to TT Commons

TT Commons is a commercial geometric sans from TypeType (https://typetype.org/fonts/tt-commons-pro/). Commercial; licensed from TypeType. The name is used only to identify the typeface; BrandSweets does not host or embed it. Below: the 8 closest free, open-licensed families, ranked by a published deterministic score (https://brandsweets.com/fonts/alternatives/methodology).

## Reference profile

- Slug: `tt-commons`
- Also searched as: TT Commons Pro
- Category: sans · Class: geometric, neo-grotesque
- Traits: neutral, geometric, modern, clean, monoline
- Roles: body, ui, heading
- Metrics: x-height 0.51, cap height 0.70, normal width, low contrast (approximate, publicly documented)
- Languages: latin, latin-ext, cyrillic · Variable: yes
- Page: https://brandsweets.com/fonts/alternatives/tt-commons

## Score

`score = 0.35·classification + 0.25·metrics + 0.20·traits + 0.10·useCase + 0.05·language + 0.05·variable`; every axis in [0, 1]. A family gate runs first: specialist families (blackletter, script, glyphic, stencil, monospace, pixel) only list same-family fonts; elsewhere a cross-family mismatch is capped at 0.2. Curated picks are listed first, then pure formula; ties break on popularity, then slug.

## Ranked alternatives

### 1. Manrope — 92%

- Slug: `manrope` · sans · OFL-1.1 · Mikhail Sharanda · static
- Page: https://brandsweets.com/fonts/manrope · font.md: https://brandsweets.com/fonts/manrope/font.md
- Classification (×0.35): 1.00 — Same class: geometric, neo-grotesque.
- Metrics (×0.25): 0.89 — x-height 0.54 vs 0.51 for TT Commons (close); cap height 0.72 vs 0.70 for TT Commons (close); both normal width; both low stroke contrast.
- Traits (×0.20): 1.00 — Shares clean, geometric, modern, monoline, neutral (5 of 5 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 1.00 — Covers all of TT Commons's subsets (cyrillic, latin, latin-ext).
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 2. Inter — 87%

- Slug: `inter` · sans · OFL-1.1 · Rasmus Andersson · static
- Page: https://brandsweets.com/fonts/inter · font.md: https://brandsweets.com/fonts/inter/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.85 — x-height 0.55 vs 0.51 for TT Commons (close); cap height 0.73 vs 0.70 for TT Commons (close); both normal width; both low stroke contrast.
- Traits (×0.20): 0.80 — Shares clean, modern, monoline, neutral (4 of 5 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 1.00 — Covers all of TT Commons's subsets (cyrillic, latin, latin-ext).
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 3. Geologica — 86%

- Slug: `geologica` · sans · OFL-1.1 · Monokrom, Sindre Bremnes, Frode Helland · static
- Page: https://brandsweets.com/fonts/geologica · font.md: https://brandsweets.com/fonts/geologica/font.md
- Classification (×0.35): 1.00 — Same class: geometric, neo-grotesque.
- Metrics (×0.25): 0.97 — x-height 0.49 vs 0.51 for TT Commons (near-identical); cap height 0.70 vs 0.70 for TT Commons (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.60 — Shares geometric, monoline, neutral (3 of 5 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 1.00 — Covers all of TT Commons's subsets (cyrillic, latin, latin-ext).
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 4. Figtree — 86%

- Slug: `figtree` · sans · OFL-1.1 · Erik Kennedy · static
- Page: https://brandsweets.com/fonts/figtree · font.md: https://brandsweets.com/fonts/figtree/font.md
- Classification (×0.35): 1.00 — Same class: geometric.
- Metrics (×0.25): 0.98 — x-height 0.50 vs 0.51 for TT Commons (near-identical); cap height 0.70 vs 0.70 for TT Commons (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.67 — Shares clean, geometric, modern, monoline (4 of 6 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 0.67 — Covers latin, latin-ext; lacks cyrillic.
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 5. Onest — 86%

- Slug: `onest` · sans · OFL-1.1 · Dmitri Voloshin, Andrey Kudryavtsev · static
- Page: https://brandsweets.com/fonts/onest · font.md: https://brandsweets.com/fonts/onest/font.md
- Classification (×0.35): 1.00 — Same class: geometric, neo-grotesque.
- Metrics (×0.25): 0.95 — x-height 0.53 vs 0.51 for TT Commons (near-identical); cap height 0.71 vs 0.70 for TT Commons (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.60 — Shares geometric, monoline, neutral (3 of 5 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 1.00 — Covers all of TT Commons's subsets (cyrillic, latin, latin-ext).
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 6. Rethink Sans — 85%

- Slug: `rethink-sans` · sans · OFL-1.1 · Hans Thiessen · static
- Page: https://brandsweets.com/fonts/rethink-sans · font.md: https://brandsweets.com/fonts/rethink-sans/font.md
- Classification (×0.35): 1.00 — Same class: geometric, neo-grotesque.
- Metrics (×0.25): 0.97 — x-height 0.50 vs 0.51 for TT Commons (near-identical); cap height 0.70 vs 0.70 for TT Commons (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.60 — Shares geometric, monoline, neutral (3 of 5 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 0.67 — Covers latin, latin-ext; lacks cyrillic.
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 7. Roboto — 83%

- Slug: `roboto` · sans · Apache-2.0 · Christian Robertson, ParaType, Font Bureau · static
- Page: https://brandsweets.com/fonts/roboto · font.md: https://brandsweets.com/fonts/roboto/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.94 — x-height 0.53 vs 0.51 for TT Commons (near-identical); cap height 0.71 vs 0.70 for TT Commons (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.50 — Shares modern, monoline, neutral (3 of 6 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 1.00 — Covers all of TT Commons's subsets (cyrillic, latin, latin-ext).
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

### 8. Funnel Sans — 83%

- Slug: `funnel-sans` · sans · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/funnel-sans · font.md: https://brandsweets.com/fonts/funnel-sans/font.md
- Classification (×0.35): 1.00 — Same class: geometric, neo-grotesque.
- Metrics (×0.25): 0.92 — x-height 0.50 vs 0.51 for TT Commons (near-identical); cap height 0.68 vs 0.70 for TT Commons (close); both normal width; both low stroke contrast.
- Traits (×0.20): 0.60 — Shares geometric, monoline, neutral (3 of 5 traits).
- Role (×0.10): 1.00 — Both suit body, heading, ui.
- Language (×0.05): 0.67 — Covers latin, latin-ext; lacks cyrillic.
- Variable (×0.05): 0.00 — Static instances only; TT Commons is variable.
- Family gate: pass — Same family: sans.

## Self-host Manrope (woff2)

- 200 normal: https://fonts.brandsweets.com/manrope/manrope-200.woff2
- 300 normal: https://fonts.brandsweets.com/manrope/manrope-300.woff2
- 400 normal: https://fonts.brandsweets.com/manrope/manrope-400.woff2
- 500 normal: https://fonts.brandsweets.com/manrope/manrope-500.woff2
- 600 normal: https://fonts.brandsweets.com/manrope/manrope-600.woff2
- 700 normal: https://fonts.brandsweets.com/manrope/manrope-700.woff2
- 800 normal: https://fonts.brandsweets.com/manrope/manrope-800.woff2

## Connect an agent

Point any MCP client at the BrandSweets fonts endpoint to get this list with scores, or search the catalog:

- Endpoint: https://mcp.brandsweets.com/fonts/mcp
- Tools: `find_alternatives` (e.g. `find_alternatives({ commercialFont: "tt-commons", limit: 8 })`), `list_commercial_fonts`, `list_fonts`, `suggest_fonts`.
