gitflags
v0.1.0
Published
Zero-backend, zero-dependency feature flags powered by GitHub. Simple JSON in a repo + a tiny SDK. Free, serverless, and Git-native.
Downloads
2
Maintainers
Readme
gitflags
Zero-backend feature flags powered by GitHub.
Simple JSON files as your flag database + a minimal npm SDK + a built-in admin UI.
No servers. No SaaS. No dashboards.
Just GitHub + a tiny client library.
🚀 Features
- Free & serverless — GitHub is your backend
- Simple — JSON per feature per tenant
- Git-native — pull requests, commits, and full history
- No vendor lock-in — everything lives in your repo
- Admin UI — runs on GitHub Pages
- Optimized for vibe coders — npm install + paste = done
🧩 How It Works
Your feature flags live in GitHub
Each flag is a small JSON file insidegitflags-db.You toggle features in the admin UI
A GitHub Pages SPA that edits the JSON via GitHub API.Your app reads flags using gitflags SDK
The npm module fetches the JSON and exposesget()andgetAll().
No servers. No databases. No infrastructure.
🛠️ Quick Start
1. Install the SDK
npm install gitflags2. Use it in your app
import { createFlagsClient } from "gitflags";
const flags = createFlagsClient({
owner: "your-github-username",
repo: "gitflags-db",
tenantId: "your-gh-login"
});
if (await flags.get("newNavbar")) {
console.log("New navbar enabled!");
}3. Manage your flags
Open your admin UI (GitHub Pages):
https://your-username.github.io/gitflags/Paste a GitHub token → toggle flags → commit updates.
📦 Repo Structure
/src → npm SDK
/ui → admin UI (GitHub Pages)
/docs → built static site
/examples → starter apps 🔄 Roadmap
- [ ] CLI:
npx create-gitflags - [ ] Tenant onboarding wizard
- [ ] Rollout rules
- [ ] Multi-environment support
- [ ] VS Code extension
📝 License
MIT — free for personal & commercial use.
💬 Why GitHub for Feature Flags?
Because:
- Git is a great DB for config
- Git commits are a perfect audit log
- PRs are a natural approval workflow
- GitHub Pages gives you a free UI
- No infra = nothing to maintain
gitflags brings all that together in a clean, dev-friendly way.
