Your fonts. Every device.
Download • Features • How It Works • Self-Hosting • Contributing
FontCap syncs your font library across all your devices. Install a font on your Mac, and it's automatically available on your Windows workstation and Linux laptop. No more emailing font files to yourself or hunting through cloud storage.
Download the latest version for your platform:
| Platform | Download | Requirements |
|---|---|---|
| macOS | FontCap-1.0.0-universal.dmg | macOS 10.13+ |
| Windows | FontCap-1.0.0-win-x64.zip | Windows 10+ |
| Linux | FontCap-1.0.0.AppImage | Ubuntu 18.04+ or equivalent |
FontCap is not signed with an Apple Developer certificate (we're open source and independent). macOS will block the app by default. To install:
- Download and open the
.dmgfile - Drag FontCap to Applications
- Open Terminal and run:
xattr -cr /Applications/FontCap.app
- Open FontCap from Applications
This removes the quarantine flag that macOS applies to downloaded apps. You only need to do this once.
- Cross-Platform Sync — Works natively on macOS, Windows, and Linux
- Automatic Font Discovery — Scans your system font directories on first launch
- Smart Deduplication — SHA-256 hashing prevents duplicate uploads
- One-Click Install — Download and install missing fonts with a single click
- Multi-Device Management — See all your devices and their sync status
- Offline Support — Fonts already on your device work without internet
- System Tray — Runs quietly in the background
- Privacy First — Your fonts are stored in your own cloud storage (Cloudflare R2)
TTF • OTF • WOFF • WOFF2
- Create an account — Sign up with email and password
- Scan your fonts — FontCap automatically detects fonts on your system
- Upload to cloud — Your fonts are securely uploaded to your storage
- Sync everywhere — Install FontCap on another device and sync your library
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MacBook │ │ Cloudflare │ │ Windows PC │
│ │────▶│ R2 │◀────│ │
│ 500 fonts │ │ │ │ 500 fonts │
└─────────────┘ └─────────────┘ └─────────────┘
- Download and install FontCap for your platform
- Create an account or log in
- Click Scan Fonts to detect your installed fonts
- Click Upload All to sync fonts to the cloud
- On your other devices, click Sync to download your font library
FontCap is fully open source. You can run your own instance with your own Supabase project.
- Node.js 18+
- A Supabase account (free tier works great)
- A Cloudflare account with R2 enabled (free tier includes 10GB)
-
Create a Supabase Project
Go to supabase.com and create a new project.
-
Set Up the Database
In your Supabase dashboard, go to SQL Editor and run the schema from:
server/src/config/schema-supabase-auth.sql -
Create Cloudflare R2 Bucket
In your Cloudflare dashboard:
- Go to R2 and create a bucket named
fonts - Go to Manage R2 API Tokens and create a token with read/write access
- Note your Account ID, Access Key ID, and Secret Access Key
- Go to R2 and create a bucket named
-
Configure Environment
git clone https://github.com/pallestcyer/FontCap.git cd FontCap cp .env.example .env cp server/.env.example server/.envEdit
.envwith your Supabase credentials (found in Settings → API):VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your-anon-key
Edit
server/.envwith your Supabase and R2 credentials:SUPABASE_URL=https://your-project.supabase.co SUPABASE_ANON_KEY=your-anon-key SUPABASE_SERVICE_ROLE_KEY=your-service-role-key R2_ACCOUNT_ID=your-cloudflare-account-id R2_ACCESS_KEY_ID=your-r2-access-key-id R2_SECRET_ACCESS_KEY=your-r2-secret-access-key R2_BUCKET_NAME=fonts
-
Run Locally
npm install npm run dev # Start Vite dev server npm run electron:start # Start Electron (in another terminal)
-
Build for Distribution
npm run build:mac # macOS (.dmg) npm run build:win # Windows (.zip) npm run build:linux # Linux (.AppImage, .deb)
| Layer | Technology |
|---|---|
| Desktop App | Electron 28 |
| Frontend | React 18 + Tailwind CSS |
| State | Zustand |
| Backend | Supabase (Auth, Database) + Cloudflare R2 (Storage) |
| Build | Vite + electron-builder |
fontcap/
├── electron/ # Electron main process
│ ├── main.js # App entry, IPC handlers
│ ├── preload.js # Context bridge
│ └── services/ # Font scanning, installation, upload
├── src/ # React frontend
│ ├── components/ # Reusable UI components
│ ├── pages/ # Dashboard, Devices, Settings, Login
│ ├── stores/ # Zustand state (auth, fonts, devices)
│ └── config/ # Supabase client
├── server/ # Database schemas and migrations
│ └── src/config/ # SQL schemas for Supabase
└── build/ # Electron builder resources
- Row Level Security (RLS) — Users can only access their own data
- Scoped Storage — Font files stored in user-specific folders
- Password Hashing — Handled by Supabase Auth (bcrypt)
- File Integrity — SHA-256 hashes verify font files
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run the app locally to test
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Install dependencies
npm install
# Start development
npm run dev # Vite dev server
npm run electron:start # Electron app
# The app will hot-reload as you make changes- Font previews in the dashboard
- Font collections/folders
- Selective sync (choose which fonts to sync)
- Font activation/deactivation without uninstalling
- Team/organization sharing
Q: Is FontCap free? A: Yes! FontCap is open source and free to use. You'll need a Supabase account (for auth/database) and Cloudflare R2 (for storage) — both have generous free tiers.
Q: Where are my fonts stored? A: In Cloudflare R2 cloud storage. Your account data is in Supabase. You have full control over your data.
Q: Does FontCap modify my system fonts? A: FontCap only installs fonts to your user font directory. It never modifies or deletes system fonts.
Q: Can I use FontCap offline? A: Yes! Fonts already installed on your device work offline. You only need internet to sync.
Q: What about font licenses? A: FontCap syncs fonts you own. Make sure you have the appropriate licenses for any fonts you sync across devices.
MIT License — see LICENSE for details.
- GitHub Issues — Bug reports and feature requests
- Discussions — Questions and community chat
Made with ♥ for designers and developers who work across multiple machines

