@bremlo/vinalin
v0.1.0
Published
A curated open font library and CLI for installing self-hosted font files.
Maintainers
Readme
vinalin
vinalin is a curated open font library with a static website, GitHub-based submissions, a generated registry, and a CLI for installing self-hosted font files.
Local development
npm run build:registry
npm run validate:registryServe the site with any static server from the repository root.
Mirror font files and licenses
To refresh the downloadable assets from their authoritative Google Fonts, Fontshare, GitHub, and foundry sources, run:
npm run mirror:fonts
npm run build:registry
npm run validate:registryThis creates registry/fonts/<slug>/files/*.woff2, stores the matching license text, and copies both into the public r/fonts/<slug>/ output during the registry build. The website and CLI use those generated local assets.
CLI
Local test (works before npm publish)
From this repository:
npx --yes . list --registry ./r/registry.json
npx --yes . add inter --registry ./r/registry.jsonOr link the binary globally:
npm link
vinalin list --registry ./r/registry.json
vinalin add inter --registry ./r/registry.jsonPublic npx @bremlo/vinalin (end users)
npx @bremlo/vinalin add <font> needs two public pieces:
- The
vinalinpackage on npm - The registry at
https://raw.githubusercontent.com/thisisbremlo/vinalin/main/r/registry.json
1. Align the GitHub repo name and visibility
Your git remote is currently thisisbremlo/fontlr, but the CLI and site expect thisisbremlo/vinalin.
- On GitHub: Settings → General → Repository name → rename
fontlrtovinalin - Set the repository to Public (required for raw registry + font downloads)
- Update your local remote:
git remote set-url origin https://github.com/thisisbremlo/vinalin.git
git push -u origin main- Confirm the registry is reachable:
curl -I https://raw.githubusercontent.com/thisisbremlo/vinalin/main/r/registry.jsonYou should see HTTP/2 200 (or HTTP/1.1 200).
2. Log in to npm and publish
Your machine currently has an expired/invalid npm token (npm whoami returns 401).
npm logout
npm login
npm whoami
npm publish --access publicAfter publish:
npx --yes vinalin list
npx --yes vinalin add interEvery registry entry must include at least one .woff2 file and a bundled license before validation passes.
Submissions
Font submissions happen through pull requests. See CONTRIBUTING.md.
