Switchr is a powerful and dynamic feature flag management tool that lets you control your features in real-time. Seamlessly manage, toggle, and test features without redeploying your code
Link - https://switchr.dev-server.live
Github & usage docs - https://github.com/heyyakash/switchr
Docs - https://switchr.dev-server.live/docs
How It came into being
It was just another evening. I was mindlessly scrolling through my podcast list when this gem caught my eye -
The guest once mentioned something called Feature Flags and my interest piqued, I turned up the volume.
Feature Flags vs. Environment Variables
As I dug deeper, I realized that while feature flags and environment variables share some similarities, they serve fundamentally different purposes.
Environment variables are static configuration settings that typically differ between environments (development, staging, production). They're great for storing API keys, database URLs, or toggling simple boolean flags.
Feature flags, on the other hand, are dynamic configuration points in your application that can be changed on the fly, without redeploying your code. They allow for fine-grained control over feature rollouts, A/B testing, and even personalized user experiences.
What is Switchr?
Switchr is a Dynamic Feature Flag Management Tool.
It is a powerful, designed to streamline feature flag implementation in your development process. This tool allows for real-time feature flag management, project-based organization, and role-based access control (RBAC).
Key features:
Project-based feature flag management
User management and RBAC
Real-time feature flag updates
REST API access
High-performance flag retrieval using Redis
Building the Tool
I built the tool using a modern tech stack:
Frontend: NextJS for a snappy, responsive user interface
Backend: Golang for high-performance API and business logic
Database: Redis for lightning-fast feature flag retrieval and PostgreSQL for persistence.
Features of Switchr
Speed up development - Deploy faster by decoupling code deployment from feature release
Improved Collaboration - Manage your development teams effortlessly. Add or remove members, assign roles, and control permissions within each project.
Flexibility and Control - Toggle features on or off instantly to test, manage, or roll back releases
Scaling - Switchr's Redis-backed architecture ensures fast and reliable performance, no matter the scale
Easy Feature Flag management - Effortlessly create, update, and delete feature flags with full CRUD support, directly from the dashboard.
Conclusion
What started as a casual listen to a tech podcast turned into a journey of discovery and creation. Feature flags have transformed how we think about deploying and managing software features. They provide a level of flexibility and control that goes far beyond what traditional environment variables can offer.
If you're still relying solely on environment variables for feature toggles, I encourage you to explore the world of dynamic feature flags. Whether you build your own system or use an existing solution, the power and flexibility they offer can be a game-changer for your development process.