Flagsmith Cloud vs Self-Hosted
A complete, beginner-friendly guide to choosing where your feature flag service should live: what each option really means, how they differ in speed, safety, cost and effort, and how to decide without regret.
Imagine two companies that both decide to use feature flags. The first signs up for a hosted service, pastes a small key into the app and has working flags before lunch. The second spends three weeks building servers, databases and monitoring so the flag service can run inside its own walls. A year later, both companies are happy with their choices. A different pair of companies made the opposite choices and both are miserable. The tool was the same in every case. The difference was whether the choice fit the company.
Flagsmith, the open-source feature flag and remote configuration service, can be used in two main ways. You can use Flagsmith Cloud, where the Flagsmith team runs everything for you. Or you can self-host, where you run the same software on your own machines or in your own cloud account. Both give you flags, segments, remote configuration and a dashboard. What changes is who carries the responsibility, who pays which bills, and where your data lives.
This guide assumes you know nothing. We explain each new term when it first appears, use everyday comparisons, and then climb to the deeper topics that senior engineers argue about: latency, availability, security reviews, data residency, total cost, upgrades, scaling, vendor lock-in and migration. By the end you will have a clear framework to choose, and a plan to change your mind later if you need to.
1Why This Decision Matters
Where a service runs sounds like a boring detail. In practice it shapes your costs, your risks and your team’s daily life for years.
A feature flag service sits in the middle of your product
A feature flag is a switch that lets you turn parts of your software on or off without releasing new code. Your application asks the flag service a question such as “should this user see the new checkout page?” and the service answers yes or no. Because that question can be asked on every page view, the flag service ends up close to the heart of your product. If it is slow, your product feels slow. If it is down, your product must decide what to do without an answer. If it leaks, your private targeting rules leak with it.
Choosing where to run your flag service is like choosing how to get electricity for a shop. You can buy power from the utility company, which means reliability and no machinery to maintain, but you pay by usage and follow their rules. Or you can install your own generator, which gives you independence and control, but you buy the fuel, service the engine and wake up when it fails. Neither is wrong. The right answer depends on the shop.
The two options in one sentence each
Flagsmith Cloud is the hosted version, operated by the Flagsmith team, which you use through a web address and pay for according to a plan. Self-hosted Flagsmith is the same open-source software that you install and operate yourself, on servers or containers that you control, usually inside your own cloud account or data centre.
What is at stake
Latency
How quickly your app gets an answer, which depends on how far the flag service is from your users and servers.
Availability
How often the service is reachable, and who gets woken up when it is not.
Security and compliance
Whether auditors, customers and laws accept where your data lives and who can touch it.
Total cost
Not only the invoice, but also server bills, engineer time and the cost of mistakes.
Operational effort
Upgrades, backups, monitoring and on-call duty that somebody on your team must perform.
Flexibility
How easily you can customise, integrate, scale, switch or leave.
This is not a contest where one option wins everywhere. It is a trade between convenience and control. Most mistakes come from choosing control you never use, or convenience you cannot afford.
2Flagsmith in Plain Words
Before comparing the two ways to run it, let us make sure we know what is being run.
What Flagsmith does
Flagsmith stores your feature flags and configuration values and answers questions about them. It gives people a dashboard to manage flags, and it gives applications a way to read them through small code libraries called SDKs. An SDK, short for software development kit, is a ready-made helper that your application uses so that you do not have to write the web requests yourself. There are SDKs for many languages, for web pages, for mobile apps and for servers.
The building blocks
Flagsmith organises things in layers. An organisation is your company. A project is one product. An environment is a copy of the world such as development, staging or production. A feature is a flag or a configuration value. A segment is a saved group of users, such as paying customers. An identity is one particular user. Each environment keeps its own state, so a feature can be on in staging and off in production at the same time.
Think of a hotel chain’s control panel. The chain is the organisation. Each hotel is a project. Each floor is an environment. Each light switch is a feature. A group of rooms for loyalty members is a segment, and one particular guest is an identity. The panel exists once, but it lets you control every room precisely.
Two kinds of requests
It helps to separate two traffic types. The first is management traffic: people using the dashboard to create flags, change values and read the audit log. That traffic is small and comes from humans. The second is flag evaluation traffic: applications asking what each flag should be for each user. That traffic can be enormous, because a busy product asks all day long. When people compare cloud and self-hosted, most of the heat is about the second kind, because it is where speed and availability matter most.
Where the software comes from
Flagsmith is open source, so its code can be read and run by anyone. The hosted service runs that same core software with extra infrastructure around it for global reach and scale. Self-hosting means you take the software and run it yourself. There is also a paid enterprise edition with additional features, which can be used in hosted or self-managed ways. Features and editions change over time, so always check the current documentation and your own plan before building a design around a specific capability.
3What Flagsmith Cloud Really Means
Cloud sounds simple, and mostly it is. But it helps to know exactly what you get and what you hand over.
What you get
With Flagsmith Cloud you sign up, create an organisation and start working. The Flagsmith team runs the servers, the databases, the networks, the backups, the security patching and the monitoring. You use a web dashboard and an API that already exist and already work. When new versions are released, they arrive without you scheduling anything. When something breaks in the platform, the provider is the one who responds.
The edge idea
Large hosted flag services often add a layer designed for fast answers around the world. In Flagsmith’s case, the hosted service includes a globally distributed way of serving flag requests, often called the edge, so a user in Singapore does not have to wait for an answer from a server in another continent. The exact design and regions can change, and you should confirm them in the documentation, but the principle is important: a hosted provider can spread copies of your flag data near your users, which is expensive and difficult to build alone.
An edge network is like a chain of local corner shops compared with a single warehouse. If every customer must travel to one warehouse, far-away customers wait a long time. If the same goods sit in shops near every neighbourhood, everybody gets served quickly. A hosted provider can afford to stock shops in many cities because the cost is shared by many customers.
What you pay
Hosted plans are usually priced by tiers that depend on how much you use the service, for example the number of requests your applications make, plus the number of people and projects you need and the features you want. There is typically a free or low-cost starting level and higher levels for larger teams and extra capabilities. Pricing changes, so check the current plans instead of relying on any article, including this one.
What you hand over
Advantages of Cloud
- Start in minutes with no servers to build.
- The provider handles upgrades, backups and patching.
- Global reach and scale are built in.
- Your team spends time on product features, not infrastructure.
- Predictable, usage-based costs that start small.
Trade-offs of Cloud
- Your flag data lives on the provider’s systems.
- You depend on the provider’s availability and roadmap.
- Strict network or residency rules may not be satisfied.
- Costs grow with usage, so heavy traffic needs watching.
- Less freedom to modify how the platform behaves.
Some providers, Flagsmith included, may offer dedicated or private hosted arrangements for large customers who want hosted convenience with more isolation. Availability and terms vary, so ask the vendor directly if you need this middle path.
4What Self-Hosted Really Means
Self-hosting is freedom with homework. Here is exactly what the homework involves.
What you run
When you self-host Flagsmith, you run the Flagsmith application on infrastructure you control. In simple terms, you need a place to run the application containers, a database to store flags and settings, and a way for users and applications to reach it over the network. Teams commonly run it with containers on a single server for small setups, or with a container orchestrator such as Kubernetes for larger ones. A database that stores everything permanently is essential, and many setups add a cache and a separate background worker for tasks like webhooks and audit processing.
Who is responsible
Everything the hosted provider would do for you becomes your job. You choose and size the servers. You apply updates, and you decide when. You back up the database and, more importantly, you test restoring from those backups. You watch the system, set up alerts and answer them when they fire. You secure the network, the database, the secrets and the certificates. You plan for failures and for growth.
Self-hosting is like owning a house instead of renting. You can paint the walls any colour, build an extension and keep the neighbours out. But when the roof leaks, nobody else fixes it. The landlord’s phone number is now your own.
What you pay
The software itself is open source, so there is no licence fee for the basic version. But the real costs are the servers, databases and network traffic you pay your cloud provider, plus the engineer time to build and run it. If you need enterprise features that are sold under a commercial licence, there is also that licence cost. People often compare only the licence fee and forget the human cost, which is usually larger.
Why teams do it anyway
Advantages of Self-Hosted
- Full control over where data lives and who can access it.
- Can run inside private networks with no public exposure.
- Meets strict residency or sovereignty requirements.
- Freedom to tune, extend and integrate deeply.
- Costs can be low at very high volume if you are efficient.
Trade-offs of Self-Hosted
- You own uptime, backups, security and upgrades.
- Reaching global low latency is hard and costly.
- Needs skilled people and on-call time.
- Falling behind on updates creates risk.
- Hidden costs are easy to underestimate.
Free to download does not mean free to run. The most common surprise in self-hosting is not the server bill. It is the number of hours engineers quietly spend keeping the service healthy.
5The Two Architectures Side by Side
A picture makes the difference clear. Here is how the pieces fit in each option.
flowchart TB
subgraph CloudSide["Flagsmith Cloud"]
direction TB
CA["Your Apps and SDKs"] --> CB["Provider Edge Network"]
CB --> CC["Provider Core API"]
CC --> CD["Provider Databases"]
CE["Your Team Dashboard"] --> CC
end
subgraph SelfSide["Self-Hosted Flagsmith"]
direction TB
SA["Your Apps and SDKs"] --> SB["Your Load Balancer"]
SB --> SC["Your Flagsmith API Containers"]
SC --> SD["Your Database"]
SC --> SE["Your Cache"]
SC --> SF["Your Task Worker"]
SG["Your Team Dashboard"] --> SB
end
Walking through the diagram
The top half shows Flagsmith Cloud. Your applications and your team connect to the provider, and everything behind the curtain belongs to the provider: the edge network that answers quickly, the core service that handles management, and the databases that keep everything safe. You never see those boxes, and you never pay to run them directly.
The bottom half shows self-hosted. Every box is yours. Applications reach a load balancer that you configure. Behind it are one or more Flagsmith containers that you run. Those containers talk to your database, your cache and your background worker. Your team uses the same entrance for the dashboard. Each box is a thing that can be sized well or badly, secured well or badly, and watched well or badly.
The components in plain words
Load balancer
A traffic director that spreads incoming requests across several copies of the application so no single copy is overwhelmed.
API containers
The running copies of the Flagsmith application that answer flag questions and handle dashboard actions.
Database
The permanent store for projects, flags, segments, users and the audit log. Losing it without a backup means losing everything.
Cache
A fast, temporary store that holds answers ready to serve so the database is not asked the same question again and again.
Task worker
A background worker that does jobs such as sending webhooks and processing analytics, away from the web servers.
Edge network
In the hosted option, copies of flag data placed near users around the world for fast answers.
Cloud is eating at a restaurant: the kitchen, staff and dishwashing are somebody else’s business, and you pay for the meal. Self-hosted is cooking at home: you pick every ingredient and every recipe, but you also shop, cook and clean. The food can be as good in both cases. The difference is who does the work.
6How a Flag Request Travels
Let us follow a single question, “is this flag on for this user?”, through both setups, and notice where time and risk hide.
sequenceDiagram
participant U as User Device
participant A as Your Application
participant S as Flagsmith SDK
participant F as Flagsmith Service
participant D as Data Store
U->>A: Opens a page
A->>S: Is new checkout on for this user
alt Answer already stored in SDK memory
S-->>A: Returns stored answer instantly
else Answer not stored or expired
S->>F: Asks for flags for this user
F->>D: Reads environment settings
D-->>F: Returns settings
F-->>S: Returns flag values
S-->>A: Returns answer
end
A-->>U: Shows the right experience
Reading the sequence
A user opens a page. Your application needs to know whether to show the new checkout, so it asks the Flagsmith SDK. If the SDK already holds a recent answer in memory, it replies instantly and nothing leaves your server. If not, it asks the Flagsmith service, which reads the environment settings from its data store and returns the flag values. The SDK passes the answer back and your application shows the right experience.
The key lesson is that the Flagsmith service is not always in the path. Good SDK setups keep answers in memory, refresh them in the background and can even evaluate flags locally inside your own server using a copy of the rules. This means the speed and availability of the flag service matter less to each individual user request than you might fear, and it changes how you weigh cloud against self-hosted.
Ask
The application asks its SDK about a flag for a user.
Check memory
The SDK looks in its own memory first. If a fresh answer exists, the trip ends here.
Call the service
If needed, the SDK sends a request over the network to Cloud or to your own deployment.
Read and decide
The service reads the stored rules and works out the right value for that user.
Return and remember
The answer comes back, and the SDK may keep it for next time.
Pointing an SDK at the right place
SDKs normally talk to the hosted Flagsmith address by default. If you self-host, you tell each SDK the web address of your own deployment, using a setting that all SDKs provide. That one setting is the switch between cloud and self-hosted from the application’s point of view, which makes moving between them far easier than people expect, as we will see in the migration chapter.
Always configure sensible default values in your code, so that if the flag service cannot be reached, your application falls back to a known safe behaviour instead of failing. This habit protects you under both cloud and self-hosted options.
7Performance and Latency
Speed is the first thing people ask about. The honest answer depends on where your users are and how your SDKs are set up.
What latency means
Latency is the delay between asking a question and receiving the answer. It is mostly governed by distance and work. Distance matters because signals take time to cross the world, even at the speed of light in fibre. Work matters because the service must read data, apply rules and build a response. A request across an ocean can easily cost many tens of milliseconds more than a request across a city, and that cost is added every time the question has to leave your own machine.
Cloud and latency
A hosted provider with a distributed edge can place answers close to users in many regions. For a product with customers spread across continents, especially one that evaluates flags from browsers and mobile apps, this is a big advantage. Without any effort on your side, a user far from your main servers still gets quick answers.
Self-hosted and latency
A self-hosted deployment lives where you put it. If you deploy it in the same region as your servers, calls from your servers are very fast, often faster than going out to a public service, because the traffic stays on your own network. But a mobile user on the other side of the planet must travel to your region. To match global edge performance you would need to deploy several copies in several regions and keep their data in sync, which is possible but is real engineering work.
A hosted edge is like a coffee chain with a shop on every corner. Your own deployment is like one excellent cafe in your home town. Locals get the fastest coffee imaginable, but a visitor from another country must travel a long way for the same cup.
The SDK changes the story
For server-side applications, there is a powerful technique called local evaluation. The SDK downloads the flag rules once, keeps them in memory, refreshes them every so often, and answers every question locally without any network trip. When you use it, the flag service is only contacted occasionally in the background, so each user request is as fast as reading from memory. In that mode, the latency gap between cloud and self-hosted almost disappears for your server code. Browser and mobile apps are different, since they cannot safely hold all the rules, so they usually ask the service and benefit more from a nearby edge.
| Situation | Cloud tends to be better when | Self-hosted tends to be better when |
|---|---|---|
| Global browser and mobile users | Users are spread across many regions and edge delivery helps them | All your users live near one region you already operate in |
| Server-side calls | You need no extra setup and are fine with calls leaving your network | You want calls to stay inside a private network at very low delay |
| Local evaluation in servers | Either option works well | Either option works well |
| Traffic bursts | You want the provider to absorb spikes | You have tested your own capacity for spikes |
Measure instead of guessing. Test real requests from the places your users actually are, for both options if possible, and look at the slow tail of results rather than only the average.
8Availability and Reliability
When the flag service has a bad day, what happens to your product? And who is responsible for fixing it?
Key words
Availability is the share of time a service is reachable and working, often written as a percentage such as ninety-nine point nine. Reliability is a broader idea, covering whether the service does the right thing consistently. A system can have a high availability number and still occasionally return wrong answers, so both matter. Redundancy means having spare copies so one failure does not stop everything. A single point of failure is any single part whose failure stops the whole system.
Cloud availability
A hosted provider runs the service as its core business, with teams on call, redundancy across zones and regions, and years of lessons from many customers. It is unlikely that a small company would match that quality for a flag service quickly. But you still depend on the provider. If they have an outage, you cannot fix it, and you wait for their recovery. Provider status pages and service agreements tell you what to expect, and larger plans may include stronger commitments.
Self-hosted availability
For self-hosted, availability is whatever you build. A single container on a single server is easy but fragile. To reach high availability you need several copies of the application behind a load balancer in more than one zone, a database that can survive a server failure, tested backups and monitoring that wakes someone up. Each of these is achievable, and a team that already runs databases well may find it natural. But each is something you must design, test and keep working.
Cloud availability is like taking a scheduled airline: the carrier owns spare aircraft, trained crew and a control centre. Self-hosted availability is like flying your own plane. You can fly exactly where and when you wish, but you also need a pilot’s licence, a mechanic and a backup plane if you want the same dependability.
Designing for the flag service being unavailable
Whichever option you choose, a wise design assumes that the flag service will sometimes be unreachable. Several protective habits help.
- Set default values in code so the application behaves safely when no answer arrives.
- Let SDKs keep the last known answers in memory or storage so a short outage goes unnoticed.
- Prefer local evaluation on servers, so flag decisions do not depend on a live call.
- Use short timeouts so a slow flag service never makes the whole page slow.
- Test the outage on purpose, by blocking the flag service in a test environment and watching what happens.
Reliability strengths
- Cloud: expert operators, built-in redundancy and no maintenance windows for you to manage.
- Self-hosted: you decide the redundancy level and can place the service next to your critical systems.
Reliability risks
- Cloud: you cannot influence recovery time, and an outage affects every customer at once.
- Self-hosted: a skipped backup test, an unpatched server or a missing alert can turn a small fault into a long outage.
The flag service should never be an unguarded dependency in the path of a critical user action. The safest products work even if every flag falls back to its default.
9Security and Compliance
Security reviews often decide the question before anything else is discussed. Let us see what each option offers and demands.
What is actually sensitive in a flag service
People sometimes think flags are harmless on and off switches. In reality a flag service can hold sensitive material. It stores targeting rules that reveal business plans, such as which customers get a new pricing page. It may receive user identifiers and traits that you send for targeting. Its audit log reveals who changed what. Its administrative access can change what your application does in production within seconds. Protecting all this matters.
Cloud security
A hosted provider invests in security staff, monitoring, patching, encryption and independent audits, which large vendors usually describe through recognised certifications. Many buyers value that they can ask for the provider’s security documents and attach them to their own review. The shared responsibility idea applies: the provider secures the platform, while you secure your account, your users, your access keys and the data you choose to send. Strong sign-in, access controls and careful handling of keys remain your tasks.
Self-hosted security
With self-hosting, the platform security is also yours. You decide who can reach the service, how traffic is encrypted, where secrets are stored, how the database is protected and how quickly patches are applied. This can be a major advantage for organisations with strong security teams who want the service inside private networks with no public exposure at all. It is a risk for teams without that depth, because an unpatched or misconfigured server is an easy target.
Using a bank vault service is like cloud: professionals guard the vault, but you still must keep your own key safe. Keeping valuables at home is like self-hosting: nobody else can touch them, but you must install the locks, the alarm and the safe, and you must remember to maintain them.
Compliance in plain words
Compliance means showing that you follow certain rules, laws or standards, for example those that protect personal data or require records of changes. Auditors typically ask where data is stored, who can access it, how long it is kept, how it is protected and how changes are tracked. Hosted vendors often make this easier by providing ready documentation. Self-hosting can make some requirements easier, such as keeping everything inside a specific country or network, but you must produce your own evidence.
| Security topic | Cloud | Self-hosted |
|---|---|---|
| Platform patching | Provider does it | You do it, on your schedule |
| Network exposure | Reached over the public internet with strong controls | Can be fully private if you wish |
| Encryption | Provided and managed by the vendor | You configure it for traffic and storage |
| Access control | Provided by the product, plus your sign-in setup | Same product features, plus your network and server controls |
| Audit evidence | Vendor documents and reports | Your own documents and evidence |
| Incident response | Vendor leads for the platform | You lead everything |
Enterprise sign-in features, such as single sign-on and fine-grained roles, may depend on the plan or edition you use. Check which capabilities your edition includes before assuming they exist.
10Data Location and Privacy
Some organisations are legally or contractually required to keep data in particular places. For them, this chapter may be the whole decision.
What data Flagsmith holds
Flagsmith holds your configuration data: projects, features, values, segments and the audit log. If you use identities, it can also hold user identifiers and traits that your application sends. You control how much personal information goes in. A privacy-friendly practice is to send only opaque identifiers, such as random user numbers, and only the traits you truly need for targeting.
Data residency and sovereignty
Data residency means keeping data in a certain geographic area. Sovereignty goes further, concerning which country’s laws apply to the data and who can compel access to it. Some public bodies, banks, hospitals and companies that serve them must meet these conditions. Hosted providers may offer deployments in particular regions, which helps in many cases, but the details vary and must be confirmed. When the rule is strict, self-hosting inside the required country or inside your own private network gives the clearest answer, since you know exactly where every byte sits.
Data residency is like a customs rule for goods. A hosted provider is a warehouse company that stores your goods in its own buildings, and some of its buildings may be in the right country. Self-hosting is storing the goods in your own building. If the law says goods must never leave the country, your own building offers the simplest proof.
Questions to ask
Where are the servers?
Which regions hold your data, and can you choose one that satisfies your rules?
Who can access it?
Which staff of the provider or your own company can read or change the stored data?
How long is it kept?
What is the retention for the audit log and for deleted items, and can you control it?
What do we send?
Are we sending names or emails when a random identifier would do?
Reducing the personal data you send is the cheapest privacy control there is. A design that sends only opaque identifiers is easier to approve under cloud and safer under self-hosted alike.
11The Real Cost: Total Cost of Ownership
Prices on a web page tell only part of the story. The honest comparison counts everything, including people.
What total cost of ownership means
Total cost of ownership, often shortened to TCO, is the full cost of using something over time, not only the price you see at the start. For a flag service it includes the subscription or licence, the servers and databases, the network traffic, the monitoring tools, the security tooling, and above all the time of the engineers who build and run it. It also includes the cost of risk, such as the cost of an outage or a security incident.
Cloud cost shape
Cloud costs tend to be easy to predict at small scale and to grow with usage. You pay a plan fee that depends on tier and consumption, and you pay almost nothing in engineering time. At very large volumes, usage-based pricing can become a major line in the budget, so teams watch request counts and use caching and local evaluation to reduce unnecessary calls.
Self-hosted cost shape
Self-hosted costs tend to be fixed and front-loaded: you pay to build, then pay a steady amount to run. The software is free in its open-source form, but servers, database, network and monitoring all cost money, and several skilled people must spend part of their time on it. At small scale this is usually much more expensive than a hosted plan. At very large scale, an efficient team may run it cheaper, but only if it counts people honestly.
Renting a car for a weekend is cheap and simple. Owning a car costs far more in the first year, because of purchase, insurance, servicing and parking. But if you drive every day for ten years, owning can win. A flag service has the same pattern: cloud is renting, self-hosted is owning, and the break-even depends on how much and how long you use it.
A simple cost comparison
| Cost item | Cloud | Self-hosted |
|---|---|---|
| Software | Included in the plan | Free for the open-source version, paid for enterprise features |
| Servers and database | Included | Billed by your cloud or data centre |
| Engineering setup time | Very small | Days to weeks at first |
| Ongoing operations | Almost none | A regular share of someone’s week, plus on-call |
| Global performance | Included in the service | Extra copies and engineering for each region |
| Cost of an outage | Out of your hands but still felt | Entirely yours to prevent and to fix |
| Growth | Moves up pricing tiers | Add capacity and people |
Hidden costs people forget
- The engineer who knows the self-hosted setup goes on holiday or leaves the company.
- Upgrades are delayed because nobody has time, so security fixes pile up.
- The database grows, performance drops and nobody noticed until a busy day.
- A cloud plan jumps to a higher tier because traffic crossed a threshold unexpectedly.
- The cost of switching later, which is lower if you planned for it from the start.
When comparing, assign a realistic hourly cost to the engineers who would run a self-hosted setup. Teams that leave this out almost always conclude that self-hosting is cheaper than it really is.
12The Operations Burden
Running a service is a job that never ends. Here is the full list of chores that self-hosting adds to your calendar.
Installing and configuring
Someone must choose how to deploy: plain containers, a container orchestrator or a managed container service. Someone must configure environment settings, certificates, domain names, secrets and network rules. This first stage is the part most people picture, and it is usually the easiest, because good documentation and deployment examples exist.
Upgrading
New versions arrive with fixes, features and security patches. Self-hosting means you read the release notes, test the new version somewhere safe, back up the database, apply the upgrade and watch for trouble. If you skip upgrades for too long, the jump to the latest version becomes bigger and riskier, and you may miss security fixes. A good habit is to upgrade regularly in small steps.
Backups and recovery
A backup is a copy of your data that you can restore if something goes wrong. The important truth is that a backup you have never restored is only a hope. Schedule backups, store them in a separate place, protect them with encryption and practise restoring them. Decide how much data loss you can accept, called the recovery point, and how long you can be down, called the recovery time, and design backups to meet both.
Monitoring and alerting
You need to know when the service is slow, failing or filling its disk. That means collecting measurements, drawing dashboards and creating alerts that reach a real person who knows what to do. Flagsmith provides ways to expose operational metrics that common monitoring tools can collect, but you must set up the monitoring tools and write the alert rules.
On-call and incident response
When the service fails at night, somebody has to respond. That means a rota, a runbook, access rights and the confidence to act. Even if the flag service rarely fails, the existence of the duty is a real cost, especially for small teams.
Operating a service is like keeping a garden. Planting is a weekend job. Watering, weeding, pruning and fighting pests are weekly work that never stops. A neglected garden does not simply stay as it was. It declines quietly until one day it is a mess.
Daily
Glance at dashboards and alerts. Confirm backups completed. Keep an eye on error rates and response times.
Weekly
Review capacity trends, disk growth and slow queries. Check that certificates are not close to expiring.
Monthly
Read release notes, plan and test upgrades, review access lists and rotate secrets that are due.
Quarterly
Practise restoring a backup, rehearse an outage, and review costs and capacity against the next quarter’s plans.
If your company already runs many services with a mature platform team, adding one more may cost very little extra. If you have no platform team at all, the same chores land on product engineers who would rather build features.
13Scaling Up
Today’s traffic is not tomorrow’s. Let us see how each option copes when usage grows tenfold.
What scaling means
Scaling is the ability to handle more load without breaking. Vertical scaling means making one machine bigger. Horizontal scaling means adding more machines to share the work. Stateless parts, which do not remember anything between requests, are easy to scale horizontally. The database, which does remember, is usually the harder part.
Scaling in the cloud
With a hosted service, scaling is mostly the provider’s problem. You send more requests and the platform absorbs them, possibly with a change in your pricing tier. The things to watch are plan limits, fair use rules and cost. This is a major reason fast-growing products start with the hosted option.
Scaling when self-hosted
For self-hosted, the application containers are straightforward to multiply behind a load balancer. The database is the point to plan for: you may need a larger instance, read copies to share the load, careful indexing and caching to reduce repeated reads. Background work such as webhooks and analytics processing may need its own dedicated workers so it does not compete with request handling. Load testing before launches shows where the first bottleneck will appear.
Scaling a hosted service is like adding a few more guests to a restaurant with a large kitchen and flexible staff. Scaling a self-hosted service is like hosting a bigger dinner party at home: you can borrow chairs and cook more, but the kitchen is only so big, and the oven is the first thing to become the limit.
Ways to reduce load in both worlds
Local evaluation
Let server SDKs hold the rules and decide locally, so most questions never reach the service.
SDK caching
Keep answers in memory for a short time, so repeated questions are answered without a network call.
Fewer identity calls
Send identities and traits only when they are needed for targeting, rather than on every action.
Sensible refresh timing
Poll for changes at reasonable intervals instead of constantly, balancing freshness and load.
Good client-side habits reduce load so much that they change which option is cheaper. Before comparing prices, optimise how your SDKs behave.
14Features and Editions
Both options share a common core, but the extras you can use depend on the edition and plan you have.
The shared core
Whether you use the hosted service or run it yourself, the core abilities are the same: feature flags, remote configuration values, environments, segments and identity-based targeting, multivariate values for experiments, an audit log, role-based team management, webhooks and a family of SDKs. Because the same open-source engine sits behind both, the way flags behave from your application’s point of view is consistent.
Editions and plans
Beyond the core, there are extras that are usually tied to paid plans or enterprise editions. Examples that products in this category commonly offer include single sign-on, finer access control, approval workflows for changes, scheduled changes, deeper audit capabilities, extended history and dedicated support. Which extras exist, in which edition, and on which plan changes over time. A common trap is to assume a feature included in a hosted plan is available in the free self-hosted version, or the reverse. Always list the features you truly need and then check them against the current documentation for the exact way you plan to run Flagsmith.
Think of a smartphone. The basic phone, with calls and messages, is the same in every box. Extra features, such as a better camera or more storage, depend on which model you buy. And the carrier plan you choose decides what you can do with the connection. Editions and plans are the model and the carrier plan of the flag world.
Features that depend on the hosting model
| Capability | Why it can differ |
|---|---|
| Global edge delivery | It is infrastructure that the hosted provider builds and shares across customers, which is not simple to copy. |
| Real-time updates to client apps | Streaming changes to apps needs extra infrastructure and may be tied to specific plans or editions. |
| Single sign-on and advanced roles | Often reserved for higher plans or enterprise editions, in either hosting model. |
| Usage analytics | The storage and processing of analytics may be handled for you in the cloud, but needs setup when self-hosted. |
| Support level | Hosted plans bundle support differently from self-hosted enterprise agreements. |
| Source-level changes | Only possible when you run the open-source code yourself. |
Never decide on the strength of a feature list alone. Write down your top five must-have capabilities, then confirm each one in the documentation for the exact edition and hosting model you are considering.
15Customisation and Integration
Sometimes the question is not where it runs but how much it can bend to your needs.
Integrating with your tools
Both options can talk to your other tools through the same mechanisms: a management API for automation, webhooks that announce changes, and built-in integrations with popular tools for chat, monitoring and analytics. Because these are features of the product, they behave similarly under either model. A key difference is networking: a self-hosted deployment can reach private internal tools directly, such as an internal chat server or a private monitoring system, while a hosted service can reach only what is reachable from the public internet, unless you open a safe path.
Private connections
When webhooks need to land on a private service, the self-hosted option is simpler. The sender lives in your network and can call internal addresses without any exposure. With the hosted option, you need a public receiver that is carefully protected with signatures and network rules, or you must place a small public gateway in front of the private service. This is an everyday reason why security-focused teams lean toward self-hosting.
Changing the software itself
Because the core is open source, a self-hosting team can read the code, tune settings in depth and, if truly necessary, make modifications. In practice, most teams should avoid modifying the code, because every change makes upgrades harder. The value of open code is more often transparency, the ability to inspect behaviour, understand failures and contribute fixes, than custom forks.
A rented flat lets you hang pictures and arrange furniture freely, but you cannot knock down walls. A house you own lets you rebuild rooms, but every renovation you make is also something you must maintain forever. Most people are happiest rearranging furniture and leaving the walls alone.
Management API
Automate creating and changing flags from scripts and pipelines in either model.
Webhooks
Announce changes to chat, caches and archives. Private targets are simpler when self-hosted.
Built-in integrations
Connect to common tools for chat, monitoring and analytics without custom code.
Deep tuning
Adjust database, cache and worker settings to match your traffic patterns.
If your only reason for self-hosting is to reach a few private tools, consider whether a small, well-protected gateway on the cloud side would meet the need with far less effort.
16Lock-in and the Exit Plan
A good decision includes an easy way to reverse it. Here is how locked in you really are under each choice.
What lock-in means
Lock-in is how costly it is to leave a product once you depend on it. High lock-in means that leaving requires rewriting lots of code or losing data. Low lock-in means that you can move with modest effort. It is wise to ask about lock-in on day one, because the cheapest time to design an exit is before you need one.
Why Flagsmith lock-in is relatively low
Several features reduce lock-in. The core is open source, so a hosted customer always has the option to run the same engine themselves. Application code talks through Flagsmith SDKs using a small number of calls, and the address of the service is a setting. And the flag data itself, features, segments, environments, can generally be exported or recreated through the management interface, though the exact methods and completeness should be tested rather than assumed. These facts mean that moving between hosted and self-hosted is far easier than moving to an entirely different product.
Moving between hosted and self-hosted Flagsmith is like moving a business from a rented shop to a shop you own on the same street, using the same shelves and the same stock list. Moving to a completely different product is like changing country, language and currency at once.
Protecting your freedom to leave
- Wrap flag reads in a small layer of your own code so only one place knows which service you use.
- Keep a regular export of your flag configuration in a safe place under your control.
- Use clear, consistent naming for flags, segments and environments so they are easy to recreate.
- Avoid depending on a feature that exists in only one hosting model unless you truly need it.
- Practise the migration once in a test environment before you ever need it in earnest.
Even a small flag cleanup habit protects you. Teams that remove old flags regularly have far less to migrate, less to secure and less to confuse new engineers.
17A Decision Framework You Can Use
Enough comparison. Here is a simple way to reach a decision, followed by a questionnaire you can fill in with your team.
flowchart TD
A["Start: where should Flagsmith run"] --> B{"Is data location or network isolation legally required"}
B -- Yes --> C{"Can the hosted option meet the rule in writing"}
C -- Yes --> D["Consider Cloud with the right region or private arrangement"]
C -- No --> E["Choose Self-Hosted"]
B -- No --> F{"Do you have a team able to run databases and be on call"}
F -- No --> G["Choose Cloud"]
F -- Yes --> H{"Do you need global low latency for browser and mobile users"}
H -- Yes --> I["Lean to Cloud or a multi-region plan"]
H -- No --> J{"Is your traffic so high that usage pricing hurts"}
J -- Yes --> K["Model the cost and consider Self-Hosted"]
J -- No --> L["Lean to Cloud and revisit yearly"]
Reading the decision path
The first question is about rules, because rules are not negotiable. If the law or a contract demands that data stay in a particular place or network, you check whether the hosted option can satisfy that in writing. If it can, cloud may still work. If it cannot, self-hosting is the answer and the rest of the discussion is about how to do it well.
If no such rule exists, the second question is about people. A team that cannot run databases and take night calls will struggle with self-hosting, and the honest answer is cloud. If you do have the skills, the next question is about your users. Global browser and mobile audiences favour the hosted edge. Finally, if usage is so large that pricing hurts, model both costs honestly before deciding. In most other cases, start with cloud and revisit the decision once a year.
A team questionnaire
| Question | If yes, it leans toward |
|---|---|
| Must data stay inside a specific country or private network? | Self-hosted, unless the hosted option meets the rule in writing |
| Do we lack engineers who can run and patch a database service? | Cloud |
| Do our users live all over the world and use browsers or mobile apps? | Cloud |
| Do we need webhooks or integrations to reach private internal tools? | Self-hosted, or a cloud setup with a protected gateway |
| Is our request volume enormous and steady? | Model both; self-hosted may win on cost |
| Do we need to start this week with minimal effort? | Cloud |
| Do our auditors demand control over every layer of the stack? | Self-hosted |
| Do we want to avoid on-call duty for the flag service? | Cloud |
The decision framework is like a travel planner choosing between a guided tour and an independent trip. If the destination has strict entry rules, you follow them first. If you have no experience of the place, you take the guided tour. If you know the country well and want freedom, you travel alone. The framework simply asks the questions in a sensible order.
18Scenarios from the Real World
Abstract advice is easier to trust when it is attached to a story. These imaginary companies show how the same questions lead to different answers.
The small startup shipping fast
A five-person team is building a new app and wants to try ideas quickly. Nobody on the team wants to run databases. Their traffic is small, so hosted costs are modest. They choose Cloud, set sensible default values in code and spend their effort on the product. They revisit the decision when their usage or compliance needs change.
The regional bank
A bank must keep all customer-related systems inside its own network and its own country, and its auditors insist on full control of every layer. A hosted service cannot meet this in writing. The bank self-hosts Flagsmith inside its private cloud, with a dedicated platform team, strong access controls and a tested recovery plan. Webhooks flow to internal tools that never touch the public internet.
The global consumer app
A media app serves tens of millions of mobile and browser users on every continent. Latency matters, and the team cannot afford to run services in many regions just for flags. They choose Cloud for the edge reach, use local evaluation in their servers to cut down on calls and keep defaults in code for safety.
The healthcare software company
A company sells software to hospitals, and some hospital customers require that no patient-related data leaves their region. The team sends only random identifiers to Flagsmith, which lowers the privacy risk, and then discusses with each customer. For customers with strict rules they deploy a self-hosted copy in the customer’s region. For others they use Cloud.
The agency managing many small clients
A digital agency builds sites for dozens of small clients. Running a flag service for each would be a maintenance nightmare. The agency uses Cloud with separate projects per client, keeps costs predictable and avoids becoming the on-call team for everyone’s flag infrastructure.
The mature platform company
A large technology company already runs hundreds of services with a skilled platform team and its own global network. Its volume is very high, and it wants flags inside its own tooling. Adding Flagsmith to the platform costs little extra effort, and at its scale the economics favour self-hosting. The company still reviews the decision every year.
19Hybrid Setups and Migration
Your first choice does not have to be your last. Many teams mix the two or move from one to the other as they grow.
Hybrid thinking
A hybrid setup uses both models for different purposes. A company might use Cloud for its public consumer product, where global reach matters, and self-hosted for an internal regulated system where isolation matters. Another might use Cloud for development and staging, where convenience wins, and self-hosted for production, where control wins. The key is to keep naming, structure and processes consistent so people do not need to learn two different ways of working.
Migration in simple stages
flowchart LR
A["Plan and inventory flags"] --> B["Stand up the new Flagsmith"]
B --> C["Recreate or import configuration"]
C --> D["Verify values match in test"]
D --> E["Point a small share of apps to the new address"]
E --> F{"Everything healthy"}
F -- Yes --> G["Move remaining apps in waves"]
F -- No --> H["Roll back by restoring the old address"]
G --> I["Keep the old setup read-only for a safety period"]
I --> J["Retire the old setup"]
Walking through the stages
The journey starts by listing what you have: every project, environment, feature, segment, team member and integration. Then you stand up the destination, whether that is a new cloud organisation or a new self-hosted deployment. Next you bring configuration across, using the management interface and any import or export tools available for your version, and you verify that values for each flag match in a test environment. Remember that environment keys are different in the new place, and that each application must be updated to use the new keys and, when moving to self-hosted, the new service address.
Then you move gradually. A small share of applications switch first, so any surprises affect only a little traffic. If something looks wrong, you roll back by pointing the applications back at the old address. If everything is healthy, you move the rest in waves. You keep the old setup in a read-only state for a while as a safety net, and only then retire it.
A careful migration is like moving house in stages. You rent the new place first, move a few boxes, check that the keys, the heating and the internet work, and only then move the furniture. You do not give up the old flat until you have slept a few nights in the new one.
Two things surprise teams most during migration: environment keys that must be replaced in every application, and identity data and history that may not travel the way configuration does. Check exactly what your chosen method moves, and plan for the rest.
20Design Patterns and Anti-Patterns
Teams that have lived with either choice for years tend to repeat the same smart habits, and the same unhappy mistakes.
Patterns that work
Safe defaults in code
Every flag read has a sensible default so the application behaves well if the service cannot be reached.
Wrapper layer
A thin layer of your own code around flag reads, so only one place knows where the service lives.
Local evaluation on servers
Server SDKs keep rules in memory, so flag decisions stay fast and survive short outages.
Start hosted, revisit yearly
Begin with the simplest option and review the decision against real usage once a year.
Practised recovery
For self-hosted setups, rehearse restoring from backup and rolling back upgrades on a calendar.
Minimal personal data
Send opaque identifiers and only the traits you need, easing privacy reviews in any model.
Anti-patterns to avoid
What it looks like
A small team chooses self-hosting because the software is free and the pricing page looks expensive.
Why it hurts
The team forgets the cost of engineers’ time, upgrades and on-call duty, and ends up spending more than a hosted plan while taking on more risk.
Better approach
Compare total cost including people. Start hosted unless a rule or a scale truly demands otherwise.
What it looks like
A single container and a single database server serve production, with no tested backups and no alerts.
Why it hurts
One failure takes down flag delivery, and recovery takes hours because nobody has ever practised it.
Better approach
Run multiple application copies, protect the database with replication and backups, and rehearse recovery.
What it looks like
Flag reads are scattered across the codebase with direct calls to the service and no default values.
Why it hurts
Any outage breaks features in many places, and switching hosting models means editing code everywhere.
Better approach
Centralise reads in one wrapper, set defaults, and keep the service address a single setting.
What it looks like
A self-hosted installation is set up once and never upgraded, because nothing seems broken.
Why it hurts
Security fixes are missed, the gap to the latest version grows, and one day an urgent upgrade becomes a risky leap.
Better approach
Upgrade in small, regular steps and test each in a safe environment first.
What it looks like
A company on Cloud ignores usage and is surprised by a jump in cost after a traffic spike or a chatty SDK setup.
Why it hurts
Bills rise and the team scrambles to cut calls under pressure.
Better approach
Use local evaluation and caching, monitor request counts and set budget alerts from day one.
21Best Practices and Common Mistakes
A short checklist of habits that work under either option, and mistakes that cause pain under either option.
Best practices
- Write down your real constraints first: rules, skills, users and budget.
- Compare total cost including engineers’ time and risk.
- Set safe default values in code for every flag.
- Use local evaluation and caching to reduce calls.
- Keep flag reads behind a wrapper so switching is easy.
- Send as little personal data as possible.
- Export your flag configuration regularly and store it safely.
- Review the hosting decision every year against real numbers.
- Clean up old flags so there is less to run, secure and migrate.
- Test an outage on purpose and watch how your application behaves.
Common mistakes
- Choosing self-hosting because the software is free, ignoring people costs.
- Choosing cloud without checking residency or compliance needs.
- Making the flag service a hard dependency on critical paths.
- Running self-hosted with no tested backups or monitoring.
- Letting upgrades slide for many months.
- Assuming a feature exists in every edition without checking.
- Scattering direct service calls through the whole codebase.
- Ignoring request volume until the bill arrives.
- Never rehearsing a migration, then needing one in a hurry.
- Letting a single engineer be the only person who understands the setup.
Protecting against the single expert problem
A self-hosted flag service often starts as one engineer’s project. That engineer builds it, understands it and fixes it. The risk is obvious: when they move on, the knowledge goes with them. Write simple documentation, share the on-call duty among several people and run recovery drills with different team members each time. A system that only one person can run is a system on borrowed time.
Protecting against the surprise bill
For cloud users, the equivalent risk is a bill that grows without anyone noticing. Set a budget alert if the plan allows it, watch your request counts each month and keep an eye on any release that changes how often SDKs ask the service. Often a single misconfigured polling interval creates most of the traffic.
Good habits here are like household finance and household maintenance. Cloud users must watch the monthly bill so there are no surprises, and self-hosting users must watch the house so there are no leaks. Both kinds of home need regular attention, just of different kinds.
Whatever you choose, write the decision down together with the reasons and the conditions that would make you change it. When the situation changes, you will know exactly what to review.
22A Readiness Checklist for Self-Hosting
If you are leaning toward self-hosting, use this checklist to find out honestly whether you are ready, before you build anything.
People and process
- At least two people can deploy, upgrade and troubleshoot the service.
- There is an on-call rota that includes the flag service, and a written runbook.
- Someone owns the upgrade schedule and the security patching.
- A named owner approves access to the production flag environment.
Infrastructure
- Several copies of the application run behind a load balancer, ideally in more than one zone.
- The database has a plan for failure, such as a standby copy, and enough room to grow.
- A background worker runs separately from the web-facing containers where load demands it.
- Certificates, domain names and secrets are stored and renewed with a clear process.
Data safety
- Backups are automatic, stored in a separate location and encrypted.
- A restore has been rehearsed recently and the time it took is written down.
- You know how much data you can afford to lose and how long you can afford to be down.
Visibility
- Dashboards show request rate, error rate, response time, database health and disk space.
- Alerts reach a human and are tuned so that they are not ignored.
- Logs are collected and kept long enough to investigate incidents.
| Area | Ready if you can say | Warning sign |
|---|---|---|
| People | Two engineers can run it and one is always reachable | Only one person knows how it works |
| Upgrades | We upgrade on a schedule and test first | We are many versions behind |
| Backups | We restored one last quarter and it worked | Backups exist but nobody has tried them |
| Monitoring | We would be alerted before users complain | We find out from customers |
| Capacity | We load tested above our expected peak | We guess our peak from the average |
| Security | Access is limited, secrets are stored safely and patches are timely | Shared passwords and unpatched servers |
The readiness checklist is like the safety inspection before opening a restaurant. The kitchen may look lovely, but the inspector wants to know about fire exits, fridge temperatures and hand washing. Those boring details decide whether the restaurant survives its first busy night.
If you cannot tick most of these boxes today, that is not a reason to give up on self-hosting forever. It is a reason to start on Cloud and build these skills first, with a migration planned for when you are ready.
23Lessons from the Wider Software World
The cloud versus self-managed question is not unique to Flagsmith. Many well-known products offer both, and their users have learned useful lessons.
Code hosting platforms: the same product, two homes
The software development platform GitLab is offered both as a hosted service and as software that organisations run themselves. Many small teams choose the hosted service for speed, while large enterprises, governments and security-minded companies run it inside their own networks. The lesson: the same engine can serve both worlds, and the deciding factors are almost always rules, skills and scale, not features.
Error tracking tools: open source with a hosted twin
The error tracking product Sentry is open source and can be self-hosted, and it also runs as a hosted service. Teams that self-host often report that the effort grows with traffic, which pushes many to the hosted service once volume or reliability requirements rise. The lesson: self-hosting can be easy to start and demanding at scale.
Databases: managed versus self-run
Companies that need a relational database often choose between a cloud provider’s managed database and running the database software themselves on virtual machines. Managed options reduce backups, patching and failover work, while self-run options give maximum control and tuning. Many organisations choose managed services for most workloads and self-run only where a special need exists. The lesson: reserve the burden of self-running for places where you gain something specific.
Messaging and collaboration tools
Several collaboration products offer a hosted version and a self-hosted version aimed at customers with strict data control needs. Their experience shows a recurring pattern: regulated industries and security-focused teams are the main self-hosters, while most other customers prefer convenience.
Large internet companies: build where it differentiates
Very large internet companies often build and run their own versions of infrastructure services, including experimentation and flag systems, because their scale and special needs justify the investment, and they have platform teams to match. Smaller companies rarely gain from copying that choice. The lesson: do not self-host to imitate the giants. Do it only if your situation resembles theirs.
The details of each product’s offerings change over time. Treat these examples as illustrations of common patterns, and check each vendor’s current documentation before relying on specifics.
24A Worked Example: Choosing for a Growing Company
Let us walk one imaginary company through the whole decision, so you can see the framework used on real-feeling facts.
The company
Imagine a travel booking company called Wayfarer. It has a website, two mobile apps and about forty engineers. It serves customers in Europe, North America and South-East Asia. Payments and personal data are handled by a separate, tightly controlled system. The product team wants to roll out new search results gradually, test a new booking flow and switch off risky features quickly during peak holiday traffic. There is no dedicated platform team, but there is a small operations group that runs the main database and the company’s cloud account.
Step one: list the constraints
The team starts by writing down what cannot be negotiated. They check with legal and security and learn that flag data will contain only random user identifiers and simple traits such as a plan type, never names or emails. The security team confirms that a hosted flag service is acceptable if the vendor can provide standard security documentation. There is no rule that forces the data to stay inside the company network. So the first branch of the decision framework leads to the next question.
Step two: assess the skills
The operations group is small and already stretched. They could run another database service, but it would compete with higher-priority work, and the idea of adding another night-time pager rotation is not welcome. This points toward Cloud.
Step three: look at the users
Wayfarer’s customers are spread over three continents and mostly use browsers and mobile apps. Every extra hundred milliseconds on a search page costs bookings. A hosted edge that answers near the customer is attractive. Building the same reach alone would require several regional deployments, each with its own database copy and its own monitoring.
Step four: model the cost
The team estimates monthly request volume from analytics, assuming good SDK habits such as caching and local evaluation on servers. They compare the hosted plan against a self-hosted setup in three regions, and they honestly price the engineer time: setup, upgrades, backups, monitoring and on-call. The hosted plan costs far less than the combined price of servers and people at their current volume. Only at many times their present traffic would the comparison become close.
flowchart TD
A["Wayfarer constraints reviewed"] --> B["No legal need for private hosting"]
A --> C["Small operations group already busy"]
A --> D["Users spread across three continents"]
A --> E["Cost model favours hosted plan"]
B --> F["Decision: start with Flagsmith Cloud"]
C --> F
D --> F
E --> F
F --> G["Safe defaults and local evaluation in servers"]
F --> H["Wrapper layer around flag reads"]
F --> I["Yearly review with new traffic and cost data"]
I --> J{"Rules or volume changed"}
J -- Yes --> K["Plan a staged migration to self-hosted"]
J -- No --> L["Stay on Cloud"]
Reading the picture
Four separate lines of evidence feed into one decision. Each is simple and independent, which is what makes the outcome trustworthy. Notice the three actions that follow the decision. The team adds safe defaults and local evaluation so the product works even if the flag service is unreachable. They add a thin wrapper around flag reads so the service address is a single setting. And they schedule a yearly review so the decision is revisited with real data rather than inherited by habit.
Wayfarer’s choice is like a family deciding whether to rent or buy a home while new in a city. They have not decided where to settle permanently, their time is limited and their savings are better spent elsewhere, so they rent. They keep their paperwork in order, so if they decide to buy next year, the move is simple.
Eighteen months later
A year and a half on, Wayfarer signs a large contract with a public-sector customer who requires that all related systems run inside a specific country and within a private network. The team reviews the decision, as planned. For the new customer only, they deploy a self-hosted Flagsmith inside the required environment, using the same naming conventions and the same wrapper layer. The rest of the company stays on Cloud. Because the application code only needed a different service address and keys, the new deployment takes weeks, not months. The earlier habits turned a potential crisis into a project.
A decision made carefully but reversibly is better than a perfect decision made slowly. Wayfarer did not need to predict the future. It only needed to keep its options open.
25Modelling the Cost Step by Step
Everyone says compare the cost. Few explain how. Here is a simple, honest method that you can run in an afternoon with a spreadsheet.
Step one: estimate your traffic honestly
Begin with what your applications will actually ask. Count the number of application servers, the number of mobile and browser sessions per day, and how often each SDK refreshes or asks the service. Then apply your caching and local evaluation plans. Many teams find that smart SDK settings cut their service calls dramatically. Write the result as a monthly request estimate, with a pessimistic number for busy seasons and launches, since those are the months that decide costs.
Step two: price the hosted option
Take the current plan pages and find the tier that matches your traffic, your number of team members and the features you need, such as access controls or approval steps. Add any extra charges for usage above included limits. Then add a margin for growth over the next year. Because prices change, use the numbers from the vendor’s current page on the day you do the exercise, and note the date.
Step three: price the self-hosted option
List every component: application containers, a database with room to grow and a standby copy, a cache if used, a background worker, a load balancer, storage for backups, monitoring tools, log storage, certificates and network traffic charges. If you need multiple regions to match global reach, multiply the infrastructure accordingly. Add the licence cost if you need enterprise features sold commercially.
Step four: price the people
This is the step that most teams skip. Estimate the hours per month for patching, upgrading, backup testing, monitoring tuning, incident response and answering questions from colleagues. Add the one-off setup time, spread across a few years. Multiply by a realistic fully loaded cost for an engineer, which includes more than the salary. Include the cost of being on call, such as the extra people needed to share the rota fairly.
Step five: price the risk
Think about the cost of an outage or a security incident, and how the likelihood differs between the two options for your team. This is not an exact science. But it forces a conversation. If an hour of downtime in your product costs a lot, then a more mature operations setup, whether the provider’s or yours, is worth paying for.
| Worksheet row | Cloud column | Self-hosted column |
|---|---|---|
| Subscription or licence | Plan fee for your tier | Zero for open source, or enterprise licence fee |
| Compute and containers | Included | Sum of your instances in every region |
| Database and standby | Included | Primary, standby and storage growth |
| Backups and logs | Included | Storage and retention costs |
| Monitoring and alerting | Included | Tools and your time to tune them |
| Engineering hours | Small, for administration only | Setup, upgrades, on-call and fixes |
| Risk allowance | Provider outage exposure | Your own outage and security exposure |
| Growth margin | Next tier up | Extra capacity and extra people |
Doing this worksheet is like comparing a taxi with a car you own for your daily commute. The taxi fare is the one number on the receipt. The car needs the purchase price, fuel, insurance, parking, servicing and the afternoon you lose when it will not start. Only when every line is written down does the comparison mean anything.
Step six: test the answer
Change the assumptions and see how the answer moves. What if traffic doubles? What if one engineer leaves? What if you need a second region? What if the vendor raises prices by a fifth? A good comparison is not a single number but a range, and a clear idea of which assumption matters most. Often it is the cost of people, and in many cases it is the traffic estimate.
Double the traffic
See when the hosted tier jumps and when the self-hosted setup needs more capacity.
Lose a key engineer
Estimate the effect on self-hosted reliability when only one person understood the setup.
Add a region
Compare adding global reach under hosted pricing with adding a regional deployment yourself.
Price changes
See how sensitive your plan is to a change in the vendor’s pricing or in your cloud bill.
Numbers in this chapter are intentionally absent, because plans and prices change often. Build your own worksheet with current figures, and date it so you know when to refresh it.
26Failure Scenarios in Each Model
Every option fails sometimes. What matters is how it fails, who is responsible, and what you can do about it.
Scenario one: the flag service becomes unreachable
In Cloud, the provider’s service has an incident and requests fail or slow down. You can check the provider’s status page and wait for recovery, but you cannot fix the platform. Your protection is on your side: defaults in code, SDK caches, local evaluation and short timeouts mean your product keeps working in a known safe way. In self-hosted, the same symptom might come from a failed container, an overloaded database or a network fault. Your protection is the same defaults, plus the ability to act: restart containers, fail over to a standby, add capacity or roll back a bad upgrade.
Scenario two: a bad release of the flag software
In Cloud, a new version introduced by the provider could contain a bug that affects some customers. You depend on the provider’s testing and rollback. In self-hosted, you choose when to upgrade, so a bad release cannot surprise you unless you apply it. You test first, upgrade in a quiet period and keep the ability to roll back. This is one area where self-hosting gives you timing control, balanced by the risk of neglecting upgrades altogether.
Scenario three: a traffic surge
A marketing campaign sends five times the usual traffic. In Cloud, the platform absorbs the load, and you may move into a higher usage tier. In self-hosted, you must have capacity ready. If you tested for the surge and your containers can multiply quickly, all is well. If not, the database becomes the bottleneck, and requests slow down. Load testing before big events is the discipline that separates calm launches from stressful ones.
Scenario four: a leaked access key
Someone commits a management key into a public code repository. In either model, the immediate response is the same: revoke the key, create a new one, review the audit log for unexpected changes and check whether any flags were altered. In self-hosted, you may also need to review server logs, since you own the whole stack. In Cloud, the audit trail and access controls are provided by the product, and the provider can help with platform-level questions.
Scenario five: data loss
In Cloud, the provider is responsible for backups and recovery of the platform, and you can ask about their policies and test your own exports. In self-hosted, you carry the whole duty. A database failure with no tested backup is the nightmare scenario: all flags, segments and history may be lost. Scheduled backups, off-site copies and a rehearsed restore are essential. Even in Cloud, keeping your own export of configuration is a wise precaution.
| Failure | In Cloud you | In self-hosted you |
|---|---|---|
| Service unreachable | Rely on defaults and caches, then wait for the provider | Rely on defaults and caches, and also restore service yourself |
| Bad software release | Depend on the provider’s rollback | Choose upgrade timing and roll back yourself |
| Traffic surge | Let the platform absorb it and watch costs | Provide the capacity and test it beforehand |
| Leaked key | Revoke, rotate and review the audit log | Revoke, rotate, review the audit log and the servers |
| Data loss | Trust provider backups and keep your own export | Restore from your own tested backups |
Handling failure is like dealing with a power cut. If the utility fails, you light candles and wait for the company to fix the grid. If your own generator fails, you can fix it yourself, but only if you kept spare parts and know how it works. In both cases the candles and torches you prepared in advance, the defaults in code, are what keep life going.
The common thread
In every scenario, the best protection is the same, whichever model you choose: assume the service will occasionally be unavailable, design your application to behave sensibly without it and practise the recovery steps. The model decides who performs the repair. Your preparation decides whether anyone notices the fault.
Write a one-page incident guide for your chosen model: who to contact, which dashboards to open, where the exports and backups live and how to switch every application to safe defaults if needed.
27Questions to Ask Before You Commit
Good decisions come from good questions. Use these lists in your evaluation meeting, one for the provider and one for your own team.
Questions for the hosted provider
Where will our data live?
Ask which regions are available, whether you can choose one and whether data ever moves between regions.
What commitments do you make?
Ask for availability targets, how incidents are communicated and what remedies exist when targets are missed.
What evidence can we review?
Ask for security documents, audit reports, encryption details and the process for reporting vulnerabilities.
How do we leave?
Ask how configuration can be exported, how deletion of data is handled and what the notice terms are.
What happens at the edges of the plan?
Ask what occurs when usage passes included limits, and how you will be warned before costs jump.
Who answers at three in the morning?
Ask which support levels exist, what response times apply and how urgent problems are escalated.
Questions for your own team
Who will run it, and who backs them up?
Name at least two people and confirm they have time that is not already promised elsewhere.
Have we run something like this before?
Experience with databases, containers, monitoring and backups makes self-hosting far safer.
What do our customers and auditors require?
Collect real requirements from contracts and policies, not assumptions about what might be demanded.
Where will we be in two years?
Think about traffic, new regions and new customers, and whether your choice will still fit.
What happens if flags are unavailable?
Confirm that defaults exist and have been tested for every important flag.
How will we switch if we must?
Confirm the wrapper layer exists, exports are scheduled and a practice migration has been planned.
Turning answers into a decision
After collecting answers, give each topic a simple score for each option: how well does it meet our need, how risky is it, and how reversible is it. Share the scores with the whole group, including the people who will carry the pager and the people who sign the contracts. Look for any single topic where one option fails outright, such as a legal rule, because that overrides everything else. For the rest, choose the option that satisfies your must-haves with the least ongoing effort, and write down the conditions under which you would review the choice.
These questions are like the checks before buying a used car. You ask about service history, examine the engine, take it for a drive and think about where you will park it. A few hours of questions can save years of regret, and the seller’s answers, or the lack of them, tell you a great deal.
Ask the questions in writing and keep the answers. When someone new joins the team a year later and wonders why you chose this option, the record answers them kindly and quickly.
28Glossary of Terms
Every important word used in this guide, in plain language, for quick lookup.
| Term | Plain meaning |
|---|---|
| Feature flag | A switch in your software that turns a feature on or off, or changes its behaviour, without releasing new code. |
| Remote configuration | Storing values such as text or numbers outside the code so they can be changed instantly without a new release. |
| SDK | A ready-made code library that lets your application talk to Flagsmith easily. |
| Cloud (hosted) | The service run for you by the provider, which you reach over the internet and pay for by plan. |
| Self-hosted | The same software run by you on servers or containers you control. |
| Edge network | Copies of data placed near users around the world so answers arrive quickly. |
| Latency | The delay between asking a question and getting the answer. |
| Local evaluation | Letting an SDK keep the rules in memory and decide flags itself, with no network trip for each question. |
| Availability | The share of time a service is reachable and working. |
| Redundancy | Having spare copies of parts so one failure does not stop the whole system. |
| Single point of failure | One part whose failure would stop the entire system. |
| Load balancer | A traffic director that spreads requests across several copies of an application. |
| Database | The permanent store where Flagsmith keeps projects, flags, segments, users and the audit log. |
| Cache | A fast temporary store that avoids repeated work by keeping ready answers. |
| Horizontal scaling | Handling more load by adding more machines rather than making one bigger. |
| Vertical scaling | Handling more load by making a single machine larger and stronger. |
| Total cost of ownership | The full cost of using something over time, including people, risk and hidden work. |
| Data residency | The requirement that data be stored within a particular geographic area. |
| Data sovereignty | The idea that data is subject to the laws of the country where it is stored. |
| Compliance | Showing that you follow required rules, laws or standards. |
| Single sign-on | A way to log in to many tools using one company identity. |
| Recovery point and recovery time | How much data you can afford to lose and how long you can afford to be down after a failure. |
| Lock-in | How costly it is to leave a product once you depend on it. |
| Migration | Moving your configuration and applications from one setup to another. |
| Hybrid setup | Using both cloud and self-hosted for different purposes. |
29Frequently Asked Questions
Short answers to the questions people ask most often when choosing.
30Summary and Key Takeaways
Everything in this guide comes down to a handful of ideas you can carry into your decision meeting.
Flagsmith Cloud and self-hosted Flagsmith are two ways to run the same open-source engine. Cloud gives you speed, global reach and freedom from operations. Self-hosted gives you control, privacy and the ability to run inside your own walls, at the price of owning every chore. The decision is not about which is better in general. It is about which fits your rules, your skills, your users and your budget today, with a clear path to change later.
Key Takeaways
- Same engine, different responsibilities. Both options run Flagsmith. The real difference is who operates it, who pays which bills and where your data lives.
- Start with your constraints. Legal and contractual rules about data location or network isolation come first, because they cannot be negotiated away.
- Count people, not only prices. Self-hosting is free to download but not free to run. Include engineers’ time, on-call duty and risk in every comparison.
- Cloud wins on convenience and reach. Hosted delivery suits small teams, fast starts and global audiences, while growth in usage must be watched and managed.
- Self-hosted wins on control. Private networks, strict residency and deep tuning are real advantages, but only for teams that can run, patch, back up and monitor the service well.
- Design for failure in both worlds. Use safe defaults, SDK caching and local evaluation so your product works even when the flag service does not.
- Keep the exit open. Wrap flag reads, export configuration regularly, rehearse a migration and review the decision every year as your situation changes.