Back to projects
Aug 20263 min read

Fontora - Curated Catalog of Open-Source Typefaces

✒️ Curated catalog of 1,900+ open-source fonts — live specimens, variable playgrounds, pairings, and embed snippets. Built with Astro, React, TypeScript, Tailwind, & shadcn/ui, served by the Fontsource CDN.

See DemoSee Repository
Fontora - Curated Catalog of Open-Source Typefaces

✨ Features

  • Live Specimen Previews: Adjustable specimen sizing with instant “Aa” glyph samples across 1,976 font families.
  • Variable Font Support: Dedicated playgrounds, badges, and axis controls for 565 variable families.
  • Shareable Filters: Writing system, category, style, and style-count filters encoded in the URL for easy sharing.
  • Font Detail Pages: Per-family routes with specimen tabs, glyph grids, style lists, and language coverage.
  • Pairings & Embed Snippets: Suggested font pairings plus ready-to-paste embed code for every family.
  • Curated Collections: Six themed groups — Grotesque Essentials, Editorial Serifs, Display & Impact, Terminal & Code, Friendly Geometrics, and Classic Revivals.
  • Selection Bag: Collect and compare favorite families while browsing.

🧱 Tech Stack

  • Astro: Static site generation and content-driven routing.
  • React: Component-driven interactive UI.
  • TypeScript: Static typing and developer tooling.
  • Tailwind: Utility-first styling system.
  • shadcn/ui: UI primitives, composition patterns, and design tokens.

🔌 Font Resources


🚀 Getting Started

Clone the repo, install deps, and boot the dev server:

git clone https://github.com/KurutoDenzeru/fontora.git
cd fontora
bun install
bun run dev

Open http://localhost:4321 to view the site.

📦 Build for Production

bun run build
bun run preview

🗂️ Configuration

The site is implemented under src/. Key areas to customize and extend are:

src/
  components/
    catalog/                      # Browse grid, filter sidebar, hero, and specimen cards
    font-detail/                  # Family detail tabs: specimen, glyphs, pairings, embed
    selection/                    # Selection bag for collecting and comparing families
    dock-nav.tsx                  # Dock navigation shell
    site-footer.tsx               # Global footer
    theme-selector.tsx            # Theme switching controls
  data/
    fonts.json                    # Synced catalog of 1,900+ families
    variable-axis-map.json        # Variable font axis metadata
    curation.ts                   # Curated collection definitions
  lib/
    font-loader.ts                # Fontsource CDN loading
    fonts.ts                      # Catalog access, filtering, and sorting helpers
  layouts/
    main.astro                    # Base layout shell
  pages/
    index.astro                   # Catalog home
    fonts/[id].astro              # Family detail route
  styles/
    global.css                    # Global styles and theme tokens
scripts/
  sync-fonts.ts                   # Refreshes fonts.json from upstream sources (`bun run sync:fonts`)

🤝🏻 Contributing

Contributions are always welcome, whether you’re fixing bugs, improving docs, or shipping new features that make the project better for everyone.

Check out Contributing.md to learn how to get started and follow the recommended workflow.


⚖️ License

Licensing details are available in the repository.

Search Projects

Search all projects from anywhere on the site.