Is self-hosted GrowthBook cheaper than Optimizely cost of ownership?
Self-hosting does not automatically make GrowthBook cheaper than Optimizely. It changes what you pay for. Optimizely Feature Experimentation and Web Experimentation are sold on custom, MAU-based plans, so the recurring fee tracks how many users you count. Self-hosted GrowthBook removes that subscription for the free Open Source plan, which includes 1 project and unlimited users and API requests, according to the GrowthBook pricing page. The spend moves to servers, a MongoDB or compatible database, warehouse query costs, migration work and the engineers who keep the stack running. If you need the paid self-hosted Enterprise tier, which adds SSO and SCIM, approval workflows, holdouts and other features the free plan omits, its pricing is custom, so it must be quoted before you compare totals.
Before you compare, check how Optimizely counts your traffic. Web Experimentation counts every visitor on a page that loads the snippet, so a high-traffic marketing site can drive a large MAU figure even when only a small share of visitors enter a test. Feature Experimentation counts users differently, so the same audience may land in a different tier. Ask Optimizely for the exact counting rule in your contract and pull a 12-month MAU history from your own analytics to test it. Also confirm the renewal date and any overage terms, since those set the window in which a move has to finish.
Build the self-hosted estimate by component and ask for a written quote for each. Ask the platform team what the GrowthBook Docker image or Helm chart needs in CPU, memory and storage at your peak traffic, and whether a managed MongoDB service such as MongoDB Atlas or AWS DocumentDB is priced into your cloud budget. Ask the data team what the warehouse queries will cost, because GrowthBook runs SELECT queries against your own warehouse, so compute spend depends on experiment volume and table size. Finally, include migration effort and the on-call time needed to operate and upgrade the service, since those recur every year as well.
Which cost components move when you self-host GrowthBook
This table compares each cost component of an Optimizely custom plan with the matching cost of running GrowthBook yourself, and marks whether each one is one-time or recurring. Read it as a checklist for your quote: the Optimizely side depends on the contract you negotiate, so confirm those terms with Optimizely before comparing. The main takeaway is that the self-hosted license may be free, but the infrastructure, warehouse and staffing costs remain and need an owner.
| Cost component | Optimizely custom plan | Self-hosted GrowthBook | One-time or recurring |
|---|---|---|---|
| Subscription or license | Custom plan priced on monthly active users and products, quoted by Optimizely | Open Source plan is free with unlimited users and 1 project; Enterprise adds SSO, approvals and bandits under a custom quote | Recurring for Optimizely and for GrowthBook Enterprise; none for Open Source |
| Application servers | None; Optimizely hosts the decision and reporting service | Single Docker image bundling the Next.js front end, Express API and Python statistics engine, or the official Helm chart on Kubernetes | Recurring: compute and load balancing you provision and patch |
| MongoDB or compatible database | None; handled inside the vendor service | Stores metadata; docs suggest a managed service such as MongoDB Atlas or AWS DocumentDB for production | Recurring: managed database fees or self-managed hosting and backups |
| File storage for uploads | None on your side | Local disk, Amazon S3 or Google Cloud Storage, as documented in the self-hosting guide | Recurring, usually small; depends on upload volume |
| Warehouse query costs | Optimizely's events export lands in your storage, but analysis runs in its platform | GrowthBook runs read-only SELECT queries on your warehouse such as Snowflake or BigQuery, so your warehouse bills the compute | Recurring; driven by experiment count, metric count and query frequency |
| Implementation and migration | Limited to the vendor onboarding in your contract | No built-in Optimizely importer; flags and experiments are recreated through the API, SDKs or snippet are swapped, and metrics are rebuilt on your warehouse | One-time; confirm effort with your implementation partner in writing |
| Support and upgrades | Included in the plan terms; confirm response times in writing | Community support on Open Source; Enterprise support and retainers depend on your agreement; you apply image and chart upgrades | Recurring; ask who patches, tests and rolls back releases |
| Internal skills | Vendor administers the platform; your team manages flags and experiments | Your team or a partner runs databases, Kubernetes, SSO, backups and the warehouse connection | Recurring staff time; the largest cost to estimate honestly |
How Optimizely's MAU meter and GrowthBook's seat and project limits differ
Optimizely's cost follows traffic. Its plans are custom and priced on monthly active users, and Web Experimentation counts every visitor on a page that loads the snippet, including visitors to pages where no test is running. Your bill therefore moves with site growth, marketing campaigns and the number of pages carrying the tag, not with how many experiments your team runs. Before comparing numbers, ask Optimizely in writing how it defines an MAU in your contract, whether a visitor is counted once per period across products, which domains and environments count, and what happens when traffic spikes above the committed volume.
GrowthBook's paid cloud tiers follow people and projects instead. The GrowthBook pricing page lists Cloud Pro at $40 per seat per month for up to 30 users and 3 projects, and Cloud Starter as free for up to 3 users and 1 project. That $40 figure is a cloud plan price, not the cost of running GrowthBook yourself. The self-hosted Open Source plan has no seat fee, unlimited users and unlimited API requests, but it allows only 1 project. Self-hosted cost is then your own servers, MongoDB, storage, staff time and any Enterprise license, which is custom priced.
The practical decision is to count your people and projects, then check whether the 1-project limit fits. If several products or business units need separate flag sets, the free self-hosted plan may not be enough, and you should ask GrowthBook for an Enterprise quote covering seats, projects and the self-hosted Enterprise features you need, such as SSO and SCIM and approval workflows. Warehouse query volume and infrastructure size still scale with usage, so ask your team to estimate event volume with and without the Optimizely snippet removed, and request that estimate in the quote.
What moves the self-hosted GrowthBook number up or down
The self-hosted GrowthBook number is not one fixed figure. Each driver below changes a specific line in your cost of ownership, so you can tell which decisions move the total and which questions to put to a quote or to your own team before cutover.
Number of projects
The free self-hosted Open Source plan allows one project. Each additional team or product area that needs its own project pushes you toward the paid self-hosted Enterprise tier, which is a licence cost that recurs every year. Before you commit, count how many distinct products, environments and teams will manage flags and experiments in GrowthBook, and ask the vendor how Enterprise is priced for your deployment.
Seats and Enterprise features
Self-hosted Open Source has unlimited users, so seats do not drive cost on the free plan. Enterprise adds SSO and SCIM, advanced permissioning, approval workflows, holdouts, safe rollouts and sticky bucketing. If your Optimizely contract includes these controls, or your audit needs approval trails, the Enterprise licence line becomes the largest recurring item. Confirm which of these features you need before you compare totals.
Event volume and warehouse query cost
GrowthBook runs read-only SELECT queries against your own warehouse and transmits only aggregated statistics. The software cost stays flat, but the compute you pay your warehouse provider rises with event volume, the number of metrics, and how often results refresh. Optimizely's Web Experimentation billing counts visitors, so high-traffic sites shift cost from a vendor invoice into your data platform bill. Ask your data team to estimate query cost per experiment before cutover.
MongoDB sizing and managed hosting
GrowthBook stores its metadata in MongoDB or a compatible database. The self-hosting documentation suggests a managed service such as MongoDB Atlas or AWS DocumentDB for production. A managed database adds a recurring service charge but removes backup, patching and failover work from your team. Self-managing MongoDB keeps the infrastructure bill lower but adds staff time. Decide this with your platform team and price both options in your own cloud account.
Availability needs for the SDK path
Feature flags sit in the request path of your application, so the availability target for the SDK and the GrowthBook service determines how much redundancy you run. Multiple application replicas, a highly available database and a Kubernetes deployment through the official Helm chart each add compute and operations effort. If a flag outage can stop checkout or onboarding, the redundancy line should be sized to that risk rather than to the licence. Define the required availability and fallback behaviour in writing before estimating infrastructure.
Internal skills and staffing
The people line is often the largest number in a self-hosted comparison and the easiest to omit. Running GrowthBook means someone upgrades the bundled Docker image, maintains MongoDB, owns the warehouse connections and reviews statistics configuration. Count the hours your platform, data and experimentation owners already spend on Optimizely administration and compare them with the hours to run GrowthBook. If internal capacity is thin, fixed-scope implementation support or a retainer changes this line from unknown to a quoted figure.
How to build the comparison with your own numbers
This sequence turns your current Optimizely contract and your own usage into a three-year cost comparison against self-hosted GrowthBook. Every input comes from your environment and written quotes, so the result reflects your organization rather than a generic estimate.
Pull the current Optimizely contract and MAU history
Collect the signed order form, the current product tiers and any amendments from procurement, along with the monthly active user counts Optimizely has billed or reported over the contract term. Confirm with your Optimizely account team how each product, including Feature Experimentation and Web Experimentation, counts users, because Web Experimentation counts every visitor on a page carrying the snippet. The step is done when you have a dated table of billed MAUs, the renewal date and the list of line items with their unit terms.
Inventory flags, experiments and environments
Have the engineering team export or list every feature flag, experiment, environment and SDK integration currently in use, and mark which ones are live, which are stale and which depend on Optimizely-specific features such as the visual editor. Note which products each team uses, since this determines which GrowthBook edition you need. The step is done when the inventory shows counts per product, the SDKs in use and a list of gaps between current features and the GrowthBook tiers, including SSO and SCIM, approval workflows, holdouts and multi-armed bandits.
Count warehouse tables and expected query runs
Work with your data team to identify the warehouse tables that hold exposure and metric events, such as Snowflake, BigQuery or Postgres, and estimate how often experiment analyses will run. GrowthBook sends only read-only SELECT queries to your source, so warehouse compute is the main recurring usage cost, and it depends on table size, refresh frequency and the number of metrics per experiment. The step is done when you have a list of source tables, a query schedule and a quote from your warehouse provider or internal cost model for that workload.
Price infrastructure and MongoDB at your rates
Using your cloud or data center rates, price the compute for the GrowthBook image, the Helm chart deployment if you use Kubernetes, the storage for uploads on local disk, Amazon S3 or Google Cloud Storage, and a production MongoDB service such as MongoDB Atlas or AWS DocumentDB, or self-managed MongoDB. Include separate environments for staging and disaster recovery if your policies require them. The step is done when each line item has a unit rate from your own invoices or a provider quote, with a note on which items are one-time and which recur monthly.
Estimate migration and internal staff hours
Estimate the work to move flags, experiments, metrics and SDK calls, with a quote from DeployOpen or another implementation partner based on a written scope, and add your internal hours for security review, access control design, on-call and upgrades. Note that GrowthBook's LaunchDarkly importer warns about advanced setups it cannot handle, and that application code still needs to switch SDKs after an import. The step is done when you have a migration estimate tied to a defined scope and a staff-hour table by role, with clear ownership for ongoing operations.
Compare three-year totals side by side
Build one spreadsheet that lists Optimizely costs for three years, including expected MAU growth and renewal uplifts stated in your contract, against GrowthBook costs for the same period, covering the edition fee if any, infrastructure, MongoDB, warehouse queries, migration and staff time. Run a sensitivity check on MAU growth and query volume, and record which assumptions came from quotes and which came from your own usage data. The step is done when the three-year totals, the assumptions log and the list of open quote requests are reviewed by finance, engineering and the data owner together.
Why warehouse query costs belong in the GrowthBook total
GrowthBook analyzes experiments where your data already lives. According to its data source documentation, it runs only SELECT queries against your own warehouse and transmits only aggregated statistics back, so the query compute that powers each analysis is a recurring cost that you pay to your warehouse provider, not to GrowthBook. Supported sources named in the GrowthBook data source documentation include BigQuery, Snowflake, Redshift, Databricks, ClickHouse, Postgres, MySQL, SQL Server, Athena, Presto or Trino and Vertica. Optimizely's plan does not show a separate line for this work, so the comparison has to add it in explicitly.
Check your warehouse billing model before you put a number next to the GrowthBook license. Some providers charge per byte scanned, some per compute second on a reserved or on-demand cluster, and some bundle compute into a commitment. Ask your data platform team how the tables holding experiment exposure and metric events are partitioned and how often experiment queries refresh, because scan volume and refresh frequency drive the bill up or down. Also confirm whether the warehouse account has a separate compute pool that can be sized for experiment analysis, so that experiments do not compete with dashboards or pipelines for capacity.
Treat this line as part of the total cost of ownership, next to the GrowthBook servers and MongoDB. Ask for an estimate from your warehouse provider based on your expected number of experiments, metrics and analysis cadence, then compare that with the Optimizely events export and storage you would otherwise keep. A practical decision is whether your team already pays for a warehouse with spare capacity, in which case the marginal query cost may be small, or whether experiments would be the main reason to add capacity, in which case the cost belongs squarely in the business case.
Which GrowthBook edition fits which cost case
The self-hosted Open Source plan is free and includes unlimited users, one project and unlimited API requests, according to GrowthBook's pricing page. The license cost is zero, so your spend moves to infrastructure, people and data. GrowthBook ships its Next.js front end, Express API and Python statistics engine in one Docker image and stores metadata in MongoDB or a compatible database, so you pay for the hosts and database service that run them, the engineering time to install and upgrade them, and the warehouse compute that runs experiment queries.
- Hosting: Compute for the GrowthBook container, plus a managed MongoDB or DocumentDB service, which the docs suggest for production.
- Warehouse queries: GrowthBook runs SELECT queries against your own data source, so the bill for those scans lands in your warehouse account.
- Upgrades and operations: Ongoing time for backups, version upgrades and on-call coverage, which recurs with every release.
- Single-project limit: Teams that need a second project will hit the cap and must move to a paid tier or split their setup.
Before committing, confirm with GrowthBook which features the Open Source plan excludes, such as SSO, SCIM, approval workflows and holdouts, and model your warehouse query volume against your expected experiment count.
Self-hosted Enterprise adds SSO and SCIM, advanced permissioning, approval workflows, multi-armed bandits, safe rollouts, ramp schedules, sticky bucketing and holdouts, which the free self-hosted plan does not include. Pricing is custom, so the cost is set by a written quote rather than a public rate. You keep the same infrastructure and warehouse components as the free edition and add the license fee, which recurs on the contract term.
- License fee: Custom annual pricing from GrowthBook, which recurs and should be checked against the features you need.
- Identity integration: Work to connect SSO and SCIM to your identity provider, usually a one-time effort plus support for user changes afterward.
- Governance setup: Configuring permissions, approval flows and holdouts is one-time design work that your change process will need to maintain.
- Enterprise license terms: GrowthBook's LICENSE file places its enterprise directories under the GrowthBook Enterprise License, so review those terms with your legal team.
Ask the vendor in writing for the quoted price, the included feature list, support response terms, what happens to licensed features if you stop paying, and how upgrades to new releases are handled.
The cloud Pro plan is listed at $40 per seat per month for up to 30 users and 3 projects, according to GrowthBook's pricing page. GrowthBook operates the hosting, so the bill covers seats instead of servers and database administration. You still pay for your own warehouse compute, because analysis runs against your data source, and you still own the data governance decisions that come with it. Seat-based billing means the cost scales with the number of people who need access, not with traffic.
- Seat count: Each seat is billed monthly, so the total moves with headcount and with any users who need access to experiments.
- Project limit: The three-project cap on Pro may be enough for a small program or may push you to Enterprise.
- Warehouse compute: Experiment queries still run in your warehouse and are billed by that warehouse provider.
- Data location: Confirm where GrowthBook stores metadata and how it handles data for your region and regulatory needs.
Before signing, ask GrowthBook to confirm in writing the seat definition, the project limit, the data location for metadata and how the plan behaves if your seat count rises mid-term.
What a migration from Optimizely adds to the first year
Optimizely to GrowthBook has no built-in importer, so the migration is labor you plan and pay for rather than a button you press. The work begins with an inventory of every feature flag, experiment, audience and metric in use, including the web experiments that run through the Optimizely snippet. Each item then has to be recreated in GrowthBook through its API, the application's Optimizely SDK or snippet has to be swapped for the GrowthBook equivalent, and the success metrics have to be rebuilt as SQL definitions against your own warehouse. The sibling migration guide explains the sequence, but the effort depends on what your inventory turns up.
The size of that inventory varies widely between organizations, and the difference matters more than any general estimate. GrowthBook's LaunchDarkly importer documentation warns that advanced setups may include scenarios it cannot handle, and that the application still has to switch SDKs after the import. That warning applies in spirit to any cross-vendor move. Nested prerequisites, custom audiences, mutually exclusive experiments, flags read by back-end jobs nobody remembers, and web tests that depend on Optimizely-specific page targeting each add work. Ask your team to count these before scoping, and treat any item you cannot explain as a risk line in the plan.
Most of the migration cost is one-time labor plus a parallel-run period, during which both platforms serve traffic or results are compared. Parallel running is where recurring cost hides: you pay for Optimizely until cutover, and you run GrowthBook infrastructure and warehouse queries during validation. Ask any implementation partner for a written scope that names the inventory method, the metrics to rebuild, the cutover criteria, the validation window and the handover of runbooks. Confirm with Optimizely the end date and notice terms of your contract, because those set how long the overlap can run.
Questions buyers ask about cost, effort and staffing
Is self-hosting GrowthBook always cheaper than Optimizely?
No. Self-hosting removes the subscription line, but you pay for the servers, the MongoDB service, your data warehouse queries, the migration and the staff who run it. Those costs depend on your traffic, your data volume and how many people need access. The GrowthBook pricing page lists the self-hosted Open Source plan as free with unlimited users, but it allows 1 project, and the self-hosted Enterprise plan is priced separately. Build a side-by-side model with each component on its own line, then compare it with your current Optimizely contract, which is custom and based on monthly active users. Also count the recurring work of upgrades and patching, not only the first deployment.
What does the GrowthBook free plan include and what does it leave out?
The self-hosted Open Source plan is free with unlimited users, 1 project and unlimited API requests. It is enough for a single product team that needs flags and a warehouse-based experiment analysis within one project. It does not include SSO and SCIM, advanced permissioning, approval workflows, multi-armed bandits, safe rollouts, ramp schedules, sticky bucketing or holdouts, which the self-hosted Enterprise plan adds. Confirm with GrowthBook which of these features your experiments depend on before you rely on the free plan, and check whether your organization needs more than one project.
Can an internal team run GrowthBook without outside help?
Often yes, if the team already runs containers, a Kubernetes cluster and a managed or well-operated MongoDB service. GrowthBook ships its Next.js front end, Express API and Python statistics engine in one Docker image, and it maintains an official Helm chart. The harder parts are the warehouse connection, metric definitions, experiment governance and the application-side SDK switch. Decide early who owns each piece, and document the on-call path for flag evaluation outages, because your product may depend on those flags being served.
What skills does the team need to operate GrowthBook?
Plan for four skill areas. Docker is needed for the single image and local testing. Kubernetes and Helm are needed if you use the official Helm chart. MongoDB administration is needed because GrowthBook stores metadata in MongoDB or a compatible database, and the documentation suggests a managed service such as MongoDB Atlas or AWS DocumentDB for production. Warehouse SQL is needed because GrowthBook runs read-only SELECT queries against your data source and expects you to define metrics that match your event model. Engineers who maintain the application will also need to handle the SDK change.
How long does a migration from Optimizely take?
The duration depends on how many flags, experiments and metrics you have, how complex your targeting is and how many applications use the SDK. Timelines should be set in a written, fixed scope that lists the inventory, the recreated items, the SDK or snippet changes and the validation steps before cutover. Ask any provider for a schedule tied to that scope, and ask what it assumes about your warehouse access and change windows.
What should a quote for self-hosting GrowthBook include?
A useful quote lists each deliverable separately: infrastructure design for the GrowthBook container, the MongoDB service and file storage, the Helm deployment if you use Kubernetes, the warehouse connection and read-only access model, metric and experiment rebuilds, the SDK change in each application, validation of results against the Optimizely export, security hardening, backup and documentation. It should also state what is excluded, such as ongoing upgrades, and what support follows cutover. Ask for the assumptions behind each line. DeployOpen plans and implements these items under a written, fixed scope agreed before work starts, and ongoing support is available as a retainer.
What recurring costs should we budget after the migration?
Recurring costs are the cloud or data center capacity for GrowthBook and MongoDB, warehouse query charges from metric and experiment analysis, any paid GrowthBook plan you choose, and the staff time for upgrades, security patches and backups. Upgrades matter: GrowthBook publishes releases on GitHub, and v5.1.0 was released on September 22, 2026. Warehouse query costs rise with the number of metrics, experiments and the size of the tables scanned, so ask your data team to review them after launch.
How DeployOpen scopes a fixed-price GrowthBook implementation
DeployOpen is a Chainscore Labs company that plans, implements, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure. For a move from Optimizely to self-hosted GrowthBook, we start by agreeing in writing which flags, experiments, data sources and users are in scope, then build and hand over against that scope.
How we scope
- Inventory Optimizely plans, MAU drivers, flags, experiments and metrics in use today before any quote is drafted.
- Confirm which GrowthBook plan fits, since self-hosted Enterprise adds SSO, SCIM, approvals and holdouts that the free plan lacks.
- Define the warehouse sources, MongoDB hosting model and cloud accounts that GrowthBook will connect to in your environment.
How we build
- Deploy GrowthBook in your cloud account or data center, using the official Helm chart where Kubernetes is the target.
- Configure MongoDB or a compatible database, file storage and read-only warehouse credentials as written in the scope.
- Test SDK integration and experiment results against agreed reference values before any production traffic moves.
How we hand over
- Deliver architecture notes, configuration records, runbooks and a list of any Optimizely features that were not recreated.
- Document the cost components you own after handover, including hosting, database, warehouse query spend and staff time.
- Walk your team through upgrades, backups and access reviews so the platform can be run without us.
How we support
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Ask us to confirm the Optimizely quote, the GrowthBook plan and the effort estimate against your written scope before signing.

