| Hello everyone! To briefly introduce myself, I'm mainly a backend developer, working in the industry for the past 7 years. On one of the products I was working on we were heavily using a custom feature flagging system. Basically, any functionality we were building was starting with a new feature flag. It was useful because: 1. We were able to silently deploy a feature to production for real environment testing
2. We would enable feature flag for specific users across our team, like marketing, sales, so everyone can check it out, test and prepare for the release
3. We were restricting certain features across pricing plans or organizations
4. We were sometimes initially only releasing to customers that requested the feature, or a small group There were more use cases, but all in all, feature flagging was deeply integrated in the product. As someone who has a lot of experience with this topic, I decided to build a new feature flagging tool in a way how I would imagine it to work. Additionally, I always wanted to go on a journey with my own product, going through the entire process from seeing an empty page on my localhost to having a finished, well documented and working product. The product is now live and working, although still with a "Beta" badge as it lacks some real-world testing. The stack I'm using:
1. Laravel framework for the main app with Interia.js and Tailwind CSS for styling
2. Postgres/Redis for data storage
3. Astro for the marketing website and (Starlight) for the documentation The main app is deployed on Hetzner with Kubernetes. One of the main issues I was worried about is the latency, as flags evaluation must be fast otherwise it is not very appealing to use an external tool for that. I solved it by caching evaluations on Cloudflare Edge network close to users around the world. I've set up a worker that is responsible for managing the flag evaluation content. I have some ideas to improve this approach in future, but for v1 I think it does a pretty good job. Marketing website is also on Cloudflare worker. I would like to invite you to try it out and provide some feedback if you have, at https://fecusio.com/ To understand how the product is intended to be used, you can read the Quickstart guide: https://fecusio.com/docs/quickstart/quickstart/ Thanks! |