I know what you're thinking. At first glance, it seems rather unfair to compare a small company such as ConfigCat with Microsoft and its seemingly infinite resources, but there are many reasons to doubt whether ConfigCat truly has anything to be scared of.
There are many companies out there that offer feature flags, but only a few truly stand out. Out of them all, two of the more solid solutions are ConfigCat's Feature Flag offerings with their remote configuration service and Microsoft's App Configuration tool, so let's put these two head-to-head and see which one comes on top.
The idea is here simple. You're a busy person and you don't want your company bleeding money, so you want to implement feature flags. Both ConfigCat and Microsoft offer feature flag services, and you're wondering which one to choose for your project.
Well then, fortunately for you, you stumbled across the right article, as I've taken the time to play with both these companies' offerings. Let's look at the two platforms and see if they're suitable for your particular enterprise's needs.
Right before we start, you need to be aware that we're comparing two different animals here. ConfigCat is a small team that built a feature flagging product, while Microsoft is a massive corporation with an entire Azure App Configuration service to offer you, which is both a good and a bad thing, depending on what you're searching for.
Microsoft has been in the cloud business for years and has had time to perfect its ecosystem. You get an entire Platform as a Service, so you don't have to worry about IaaS, availability, performance, and all the other stuff that comes along with running your own infrastructure. Microsoft manages your infrastructure for you and allows you to focus on developing products.
This is a two-edged sword, however. You have to buy Microsoft's Azure service subscription, you don't have much flexibility, and your business may very well be using software that may not be the best for your enterprise. Let's not forget about dependency. If Azure goes down, all of your products become useless.
So if you can somehow make your own platform that provides the same functionality as Azure and is open-source, then you wouldn't have to worry about any of these issues.
A small company named ConfigCat offers just that.
If you're anything like me, then you're probably wondering how much this service is going to cost for you. Both offer free tiers, but in vastly different ways. I will dive into both a bit later in the article, but the TLDR short version is that ConfigCat's free tier is fairly well balanced and only asks you to upgrade after your project organically scales up, whereas Microsoft puts a time limit on their free offering. I'm not here to play favorites though, and I'm here to say that you get all of the basic features you would expect from a feature flagging service either of them.
Starting with ConfigCat, their free plan strikes a perfect balance of what an up-and-coming project might need, meaning that you get to have all of the bare essentials for free.
Essential things like two environments where you can play with your project are given to you, along with unlimited feature flag reads, unlimited team member size, and up to 10 feature flags, which is a perfect start-up ramp for any small company looking to scrape every penny it can in the beginning.
The best thing about ConfigCat's approach is that there really isn't any pressure to upgrade to a paid plan unless your company really requires more than what their free tier offers. If however, you do reach a point where you intend to upgrade, the price impact for those additional features is minimal because, by that point, your project will already have naturally scaled up organically.
Feel free (pun intended) to start your free trial at ConfigCat and see if it fits your needs. There's literally no risk involved. In case you're curious, here's the full list of services for both the free and paid ConfigCat tiers.
For a more personalized assessment though, they also created a plan calculator where you can get a direct assessment of where your project stands in terms of requirements so that you don't have to spend a penny more than you have to.
So ultimately, I think that this is going to be a very appealing option for a ton of companies because it's affordable, really doesn't trap you into a walled garden from which you can't get out, and isn't difficult to deploy.
Now, let's turn out eyes on Microsoft for a minute. They offer Feature Flag services through their Azure App Configuration tool, and the strategies here are completely different.
I talked about walled gardens earlier. Azure App Configuration is just that. If you want to use Azure App Configuration, then you need an Azure subscription.
To reel you in, they offer 12 months of free service and 170 euros in credit for you to play around with in the first 30 days, but after that, you have to hop on onto a paid plan if you want to continue. Depending on your needs, this may or may not be an issue.
Feature Flagging. This is what you're looking for, so let's talk about that. This service gives you the ability to control how your customers interact with your site or application. You can restrict users from loading certain elements or even have them boot into different endpoints entirely, just as you'd expect with Feature Flags.
The problem here though is that by the time you get around to implementing Feature Flags through Microsoft's offering, you're already knee-deep and totally dependent on their platform for the entire lifetime of your project and/or company, because you won't be able to run your own infrastructure and migrating to something else will prove costly in the long run.
By doing so, the case can be made that Microsoft is trying to take control and wall-in the configuration management space as a whole, but in doing so, they may have inadvertently created a service with some pretty strict limitations that are too limiting for most start-up companies.
However, some people may not be bothered by this, and that's really understandable. If Azure App Configuration is exactly what you need, then by all means take advantage of it. One of the advantages of using Azure App Configuration is that if you already have an Azure subscription then you're already familiar with the pricing structure (which, in a nutshell, is pay-as-you-go). You may feel right at home because you already know how Microsoft taxes you.
It all sounds pretty nice and generous until you remember that ConfigCat's free plan is literally forever free for as long as you need it to be and that their paid tiers are immensely competitive.
Let me serve a dose of harsh honesty here. Focusing on short-term costs is NOT the most important factor that you have to keep in mind, and I wish more people would say this upfront. When you start a project, you're not just looking at the short-term goals, but also, and perhaps more importantly, the long-term goals, survivability, and possible ROI of your business, all the while not overloading your project/company with hidden costs that might weigh it down.
With that in mind, my recommendation for any company (especially startups) is to look to reduce dependencies on other company's services, especially if your business is still financially vulnerable.
So what is the most important thing when choosing a Feature Flag platform to integrate then? It's hands-down minimizing long-term risks.
Let's suppose that you are a company with an in-house development team, which is small but has big hopes for the future and you're looking to start working on your idea and making some serious cash off of it.
The problem here is that the companies whose services your business relies on upon do not share your same agenda, so rationally speaking, it's wise for certain securities to have to be taken on your end.
Now, I've talked about open source a lot, like in this article about Iceland, but I can't underestimate just how powerful the concept of open source really is and how much it has empowered whole communities of developers, software engineers in particular and small start-ups alike.
Many seemingly big companies (in particular those that have a lot of resources) have been caught undercutting the competition by heavily subsidizing/offering their product stack at a huge loss to create impossible-to-compete-with barriers to entry for others, to clean up the market of competitors.
They do this because such an action starves out competitors from the field in question until the industry is left with a handful of companies holding disproportionate chunks of the market. Market dominance means market control, and control brings with it the "luxury" of suddenly taxing your clients a premium for what they used to get for free. (Google Photos and their unlimited storage change is a prime example of this).
This is especially important to be aware of because people tend to establish entire budgets around the idea of fixed external service costs, ignoring such practices and often falling victim to sudden price hikes / putting critical features that they use behind newly-created paywalls.
As a result, using open source technologies is basically your warranty that you're not leaving yourself vulnerable to other companies tripping you over like this. Long-term risks like these are so easy to avoid with proper hindsight, and this is one of the things that makes or breaks company survivability in the long run.
To drive this point home, ConfigCat simply can't ever do this, since all of their tools and SDKs are open source, which means that the free tier will always be free no matter what / the code will always be available to you, and no surprise paywalls can ever mess up your business' health with seemingly-out-of-nowhere surprise expenses.
Like I said, pretty much everything is covered. ConfigCat also supports the most popular frameworks, like React, AngularJS, React Native, Nuxt.js, and even Laravel (which I was pleasantly surprised to see).
To visit ConfigCat's official website, click here.
To be honest, I was rather disappointed with this one.
They do support a ton of languages and frameworks, but they do cover what I'd deem as being the essentials. From what I see, Microsoft's Azure App Configuration covers .NET, .NET Core, ASP.NET, ASP.NET Core, Java Spring and Others via their REST API.
For such a large company, I expected more languages to be supported, but from what I'm seeing, Microsoft seems to be focused on the .NET and Java ecosystems, which is pretty disappointing because like I said earlier, it's important to look out for long-term risks that might hinder your projects' survivability.
To check out Microsoft's official documentation, you can head on over to this link.
Integration with other platforms is also something that you should consider when choosing a platform. ConfigCat, being a pure-play open source service, supports a ton of platforms out of the box so that it integrates with your technology stack and properly blends in to your already-existing workflows.
As of the time of writing, you can integrate ConfigCat with:
Slack, Jira, Trello, DataDog, Zapier, Zoho Flow, CircleCI, GitHub Actions, Terraform, Amplitude and VSCode through their newly-created extension.
That's quite a list, huh?
Microsoft's Azure App Configuration tool integrates well with... Azure. We must remember that we're comparing drastically different services that incidentally happen to meet in the same Feature Flag-offering market and that Azure App Configuration is just an extension of the overall Azure infrastructure as a whole. Again, there's nothing wrong with that at all. It just so happens that ConfigCat serves a much larger market than Azure App Configuration through its sheer open nature, but again, that is not necessarily a bad thing. They optimize for their own products and services first, and that's totally fine.
Security is also another aspect where these two platforms are very different. While Microsoft has been working hard at making sure that all of its services are as secure as possible, the case can be made that Azure is still lacking in this department.
Some people have been raising eyebrows at the way Microsoft handles data in their Cloud and the fact that they did not include what's called CSP (Third-Party Data Security Providers) in their whitelisting process, which is basically a way to verify that servers are not leaking data from their users through common vulnerabilities.
ConfigCat on the other hand gives the power back to you, allowing you to use your own CSPs and making sure that the data is not being sent anywhere nor being stored on any server without your explicit consent.
Do you want to know why most viruses are made for Windows, and not say, Linux? That's because Windows is the more popular option of the two. Same with Azure and ConfigCat's SDK's. Hackers tend to always target first the platforms with the most users, so it's pretty safe to say that ConfigCat has a leg up here. Now, this doesn't mean that Microsoft is universally vulnerable. Just like anyone else, they're working hard to make their solution as secure as possible. But at the end of the day, it's better to be safe than sorry.
I'm gonna have to say this before even starting talking about the user interface. This is something of a preference thing and different users will prefer different user interfaces. In fact, in my opinion, it's more important than anything else that you should be able to get your job done and fast.
That being said, ConfigCat's UI is alright. Same with Microsoft. I'd be hard-pressed to find a bad UI in either of these competitors.
User Interfaces almost always falls under personal preference, so take this section with that in mind. As I see it from the outside looking in, the two product offerings have very different interfaces because they tend to approach feature flag management in two totally different ways. ConfigCat's Ui is simpler and more minimalistic, with a stronger focus on the features that are actually useful for users. Microsoft's Ui is the exact opposite, with an insane amount of features and configuration options, so it can be a bit intimidating to new users.
I think that ConfigCat's simpler UI is more favorable simply because it's less overwhelming and doesn't try to expose you to more than you need.
I feel like this difference should be more stringent, but it's the easiest way to explain it. Whatever your preference is, take into consideration how the application is going to make you feel once you start working with it. There are two aspects here: First, how easy is the user interface to use and second, how easy is it going to be for your clients or nontechy employees to actually use the application.
ConfigCat's UI is simple, and it tries to make sure that it is simple and straight-forward. The configuration options themselves are fairly self-explanatory, and it also tries to be as clear as possible by default so that you don't have to deal with too much nonsense.
It really depends on what you want, since Azure has a whole lot more cluttered into it and some people like that, while ConfigCat is a bit friendlier to use.
Oh, did I mention that ConfigCat has also revamped its entire CMS? You can access the new version anytime you want by simply clicking here for the preview version and logging in with your credentials.
The new interface is great, but in all honesty I was a fan of the old one as well. The UX is good with both, but ConfigCat put a lot of thought into making it more accessible and easier to use, so I think it's a definite win as far as convenience goes. After all, who doesn't love choice?
Adjusting the way you go about configuring Features Flags has never been a more pleasurable experience. If you're going to do Feature Flag Management, then you might as well do it in style and comfort.
Personally, I have yet to meet a person that doesn't like the way ConfigCat presents itself, both on a technical and UI level, and their new user interface only strengthens this idea.
Azure has far too many options and it is really easy to get lost, even if you have used the product before. Information overload is a thing, but some folk might argue that it's a not-so-bad thing, so again this is a matter of personal preference.
By writing this article, I've had the chance to play both with Azure App Configuration and ConfigCat's offering, and if there's one thing that I learned is that if you spend more than half your time reading forums and documentation just to learn how to get around in the UI, then your time is most definitely not being used effectively.
To be clear, I don't want to appear as if I'm bashing Azure in this comparison. Their offering is rock solid, well documented and a pretty decent deal if you need the benefits that it provides. But it's not where I want to use my time and effort, and I'm really a benchmark of the average Joe user here. I don't want to have to deal with any of that stuff. I want to install, set up, and be done with it. Life is too short to go full Sisyphus and to spend it configuring that one thing lost among all those other thingies that I might ever need once in some isolated usecase!
To be honest, I wouldn't worry about either option here. Awesomely-written documentation is available for both Azure's App Configuration service and ConfigCat's opensource SDK's, and both companies have solid reputations in the industry.
The difference here is that with ConfigCat, you are getting something that's completely open and therefore can be used anywhere, but with Azure Config Service you will only be able to use it on the Azure Cloud, so there's an argument to be made that you have way more flexibility with troubleshooting yourself when using ConfigCat's offerings rather than Azure's.
When it comes to actually have someone to talk to when you need help with ConfigCat or Azure, I would again say that it's a matter of preference here. I find ConfigCat's approach more straightforward and warm, as you don't really have to wait for a representative of any sort, you just have to jump on their official Slack server and one of the devs will answer (and more often than not) directly help you with whatever kind of issue you're having, even if it takes a little while.
Microsoft's approach however is just as you'd expect if you've ever had to go through support through a big company. You wait for someone to call you (sometimes a long time), go in for a session that takes just as long, if not longer than the actual issue, and you get thrown at someone who doesn't know what is going on because your problem hasn't been logged yet. It's really a frustrating experience to go through when you know that you have a problem that just isn't being handled well, even if it happens to be your fault.
In general, I'd say that ConfigCat's approach is the better one for the average user, but you should always check out their site and documentation before deciding on which service to use.
If you're struggling to maximize the potential of your employees, or just want to save yourself a lot of time and frustration in the future, then it's time to learn about ConfigCat and their configurable feature deployment platform. There are all sorts of benefits that this will give you — including easily accessible documentation on their website, stellar support for developers via their Slack Server, and a very user-friendly UI — but the bottom line is that if you want efficacy without any guessing games, then use ConfigCat for all your Feature Flag Management needs.
If you're already using Azure and want to improve your Feature Flag Management capabilities, then Azure's App Configuration is a great option for you. It might not have as much documentation or direct straight-from-the-developer-support, but it does the job.
If you made it this far, then you're awesome! Make sure to also check out the other blog posts as well.