From 62caa9bd21642872c50fedf895fd531d0451994b Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Wed, 9 Sep 2026 15:50:24 +0100 Subject: [PATCH 1/7] Update README.md docs: update README with code sample, SDK links, and What is Flagsmith section --- README.md | 97 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 71 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 3c5a70545964..b982063de95a 100644 --- a/README.md +++ b/README.md @@ -8,77 +8,122 @@ [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) Built with Depot -

- - Try our interactive demo -

-

- Try our interactive demo -

+# Flagsmith: The most flexible and complete open-source feature flag management solution + +## What is Flagsmith? +Flagsmith is an open-source feature management platform that offers remote configuration and experimentation solutions, as well as four different deployment options: Open source, on-premises/self-hosted, cloud, and private cloud. -# [Flagsmith](https://flagsmith.com/) is an Open-Source Feature Flagging Tool to Ship Faster & Control Releases +As an open-source solution, Flagsmith provides greater flexibility and a more complete feature set than other flagging tools, as well as greater control over your choices—you are never locked into one vendor, thanks to our partnership with [OpenFeature](https://openfeature.dev/). -Change the way your team releases software. Roll out, segment, and optimise—with granular control. Stay secure with on-premise and private cloud hosting. +With Flagsmith, you can evolve how your team releases software. Roll out, segment, experiment, and optimise with granular control. Stay secure with on-premises and private cloud hosting. * Feature flags: Release features behind the safety of a feature flag * Make changes remotely: Easily toggle individual features on and off, and make changes without deploying new code * A/B testing: Use segments to run A/B and multivariate tests on new features -* Segments: Release features to beta testers, collect feedback, and iterate +* Segments: Release features to beta testers, collect feedback, and iterate * Organisation management: Stay organised with orgs, projects, and roles for team members -* SDKs & frameworks: Choose from 15+ popular languages like Typescript, .NET, Java, and more. Integrate with any framework, including React, Next.js, and more -* Integrations: Use your favourite tools with Flagsmith +* SDKs and frameworks: Choose from 15+ popular languages like TypeScript, .NET, Java, and more. Integrate with any framework, including React, Next.js, and more +* Integrations and MCP server: Use your favourite tools with Flagsmith -Flagsmith makes it easy to create and manage feature flags across web, mobile, and server side applications. Just wrap -a section of code with a flag, and then use Flagsmith to toggle that feature on or off for different environments, users -or user segments. +Flagsmith makes it easy to create and manage feature flags across web, mobile, and server-side applications. Just wrap a section of code with a flag, and then use Flagsmith to toggle that feature on or off for different environments, users, or user segments. -## Get up and running in less than a minute: +## See Flagsmith in action + +If you want a step-by-step demonstration of how to get started with Flagsmith, why not [try our interactive demo](https://www.flagsmith.com/demo). + +

+ + Try our interactive demo +

+ +## Get up and running with Flagsmith in less than a minute: ```bash curl -o docker-compose.yml https://raw.githubusercontent.com/Flagsmith/flagsmith/main/docker-compose.yml docker-compose -f docker-compose.yml up ``` -The application will bootstrap an admin user, organisation, and project for you. You'll find a link to set your password -in your Compose logs: +The application will bootstrap an admin user, organisation, and project for you. You'll find a link to set your password in your Compose logs: ```txt Superuser "admin@example.com" created successfully. Please go to the following page and choose a password: http://localhost:8000/password-reset/confirm/.../... ``` +## Check a feature flag in your code + +Once Flagsmith is running, checking a flag takes one function call. Here's how it looks in JavaScript: + +```javascript +import flagsmith from 'flagsmith'; + +flagsmith.init({ + environmentID: '', + onChange: () => { + if (flagsmith.hasFeature('show_demo_button')) { + // show the new feature + } + }, +}); +``` + +Follow the [quick start guide](https://docs.flagsmith.com/getting-started/quick-start) for the full walkthrough, or pick your language from our [SDK docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/) to see the same thing in Python, Java, Go, .NET, and more. + ![Flagsmith Screenshot](static-files/screenshot.png) -## Flagsmith Open Source +## Contribute to Flagsmith Open Source -We love contributions from the community and are always looking to improve! Here are our [contribution guidelines](https://docs.flagsmith.com/platform/contributing). +We love contributions from the community and are always looking to improve our [open-source feature management platform](https://www.flagsmith.com/)! Here are our [contribution guidelines](https://docs.flagsmith.com/platform/contributing). ## Flagsmith hosted SaaS -You can try our hosted version for free at https://flagsmith.com +You can try our hosted version for free at [app.flagsmith.com/signup](https://app.flagsmith.com/signup). ## Community Resources * [Visit our docs](https://docs.flagsmith.com/) * [Chat with other developers on Discord](https://discord.com/invite/hFhxNtXzgm) -* If you need help getting up and running, please [get in touch](https://www.flagsmith.com/contact-us) +* If you need help getting up and running, [get in touch](https://www.flagsmith.com/contact-us) + +## Available SDKs + +### Client side ([docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/)) + +* [JavaScript](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/javascript) +* [React](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/react) +* [Next.js and SSR](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/nextjs-and-ssr) +* [Android](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/android) +* [iOS](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/ios) +* [Flutter](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/flutter) + +### Server side ([docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/server-side)) + +* [Python](https://github.com/Flagsmith/flagsmith-python-client) +* [Java](https://github.com/Flagsmith/flagsmith-java-client) +* [.NET](https://github.com/Flagsmith/flagsmith-dotnet-client) +* [Node.js](https://github.com/Flagsmith/flagsmith-nodejs-client) +* [Ruby](https://github.com/Flagsmith/flagsmith-ruby-client) +* [PHP](https://github.com/Flagsmith/flagsmith-php-client) +* [Go](https://github.com/Flagsmith/flagsmith-go-client) +* [Rust](https://github.com/Flagsmith/flagsmith-rust-client) +* [Elixir](https://github.com/Flagsmith/flagsmith-elixir-client) ## Open Source Philosophy The majority of our platform is open source under the [BSD-3-Clause license](https://github.com/Flagsmith/flagsmith?tab=BSD-3-Clause-1-ov-file#readme). A small number of repositories are under the MIT license. -We built Flagsmith as the open source feature flag tool we needed but couldn't find on GitHub. Our core functionality stays open, always. Read our [open letter to developers](https://www.flagsmith.com/about-us). +We built Flagsmith as the open-source feature flag tool we needed but couldn't find on GitHub. Our core functionality stays open, always. Read our [open letter to developers](https://www.flagsmith.com/about-us). -## Open Source vs Paid +## Open Source vs. Paid -With our core functionality being open, you can use our open-source feature flag and remote config management platform no matter what. Enterprise-level governance and management features are available with a valid Flagsmith Enterprise license. +As our core functionality is open, you can use our open-source feature flag and remote config management platform no matter what. Enterprise-level governance and management features are available with a valid Flagsmith Enterprise license. To learn more, [contact us](https://www.flagsmith.com/contact-us) or see our [version comparison](https://docs.flagsmith.com/version-comparison). ## Contributors -Thank you to the open source community for your contributions and for building this with us! +Thank you to the open source community for your contributions and for building this with us! From e69581d568db364e81451c7d50758892db45d01c Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Thu, 10 Sep 2026 07:46:21 +0100 Subject: [PATCH 2/7] Apply suggestion from @matthewelwell Co-authored-by: Matthew Elwell --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b982063de95a..46b05109b226 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Flagsmith is an open-source feature management platform that offers remote confi As an open-source solution, Flagsmith provides greater flexibility and a more complete feature set than other flagging tools, as well as greater control over your choices—you are never locked into one vendor, thanks to our partnership with [OpenFeature](https://openfeature.dev/). -With Flagsmith, you can evolve how your team releases software. Roll out, segment, experiment, and optimise with granular control. Stay secure with on-premises and private cloud hosting. +With Flagsmith, you can evolve how your team releases software. Roll out, segment, experiment, and optimise with granular control. Stay secure by self-hosting, or choosing our private cloud deployment option. * Feature flags: Release features behind the safety of a feature flag * Make changes remotely: Easily toggle individual features on and off, and make changes without deploying new code From 9ed6efe823c53cc89b15351aa301481c701736c9 Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Thu, 10 Sep 2026 07:52:16 +0100 Subject: [PATCH 3/7] Apply suggestion from @matthewelwell That's just how I was taught, but happy to remove Co-authored-by: Matthew Elwell --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46b05109b226..2685d5f486a2 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ The majority of our platform is open source under the [BSD-3-Clause license](htt We built Flagsmith as the open-source feature flag tool we needed but couldn't find on GitHub. Our core functionality stays open, always. Read our [open letter to developers](https://www.flagsmith.com/about-us). -## Open Source vs. Paid +## Open Source vs Paid As our core functionality is open, you can use our open-source feature flag and remote config management platform no matter what. Enterprise-level governance and management features are available with a valid Flagsmith Enterprise license. From 15351bfb1857e84f6dea7d2b1ea3ef52bbfee3c5 Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Thu, 10 Sep 2026 08:18:35 +0100 Subject: [PATCH 4/7] Update README.md Added the list of providers through OpenFeature --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 2685d5f486a2..8077adb9b22a 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,22 @@ You can try our hosted version for free at [app.flagsmith.com/signup](https://ap * [Rust](https://github.com/Flagsmith/flagsmith-rust-client) * [Elixir](https://github.com/Flagsmith/flagsmith-elixir-client) +### Using OpenFeature + +Prefer the vendor-neutral route? You can use Flagsmith through [OpenFeature](https://openfeature.dev/) with providers for the following languages: + +* [Go](https://github.com/open-feature/go-sdk-contrib/tree/main/providers/flagsmith) +* [Java](https://github.com/open-feature/java-sdk-contrib/tree/main/providers/flagsmith) +* [JavaScript (client-side)](https://github.com/open-feature/js-sdk-contrib/tree/main/libs/providers/flagsmith-client) +* [JavaScript (server-side)](https://github.com/open-feature/js-sdk-contrib/tree/main/libs/providers/flagsmith) +* [Kotlin](https://github.com/Flagsmith/flagsmith-openfeature-provider-kotlin) +* [.NET](https://github.com/open-feature/dotnet-sdk-contrib/tree/main/src/OpenFeature.Contrib.Providers.Flagsmith) +* [Python](https://github.com/Flagsmith/flagsmith-openfeature-provider-python) +* [Ruby](https://github.com/open-feature/ruby-sdk-contrib/tree/main/providers/openfeature-flagsmith-provider) +* [Rust](https://github.com/open-feature/rust-sdk-contrib/tree/main/crates/flagsmith) + +Check out the [OpenFeature docs](https://docs.flagsmith.com/integrating-with-flagsmith/openfeature) for setup. + ## Open Source Philosophy The majority of our platform is open source under the [BSD-3-Clause license](https://github.com/Flagsmith/flagsmith?tab=BSD-3-Clause-1-ov-file#readme). A small number of repositories are under the MIT license. From 1ebcafb6a296c40439e7cb1d0bad3867b1c00a08 Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Thu, 10 Sep 2026 08:20:04 +0100 Subject: [PATCH 5/7] Update README.md Added "As an open-source solution, Flagsmith provides flexibility and greater control over your choices. Thanks to our partnership with OpenFeature, you are never locked into one vendor." --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8077adb9b22a..17fc7bdabc6a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Flagsmith is an open-source feature management platform that offers remote configuration and experimentation solutions, as well as four different deployment options: Open source, on-premises/self-hosted, cloud, and private cloud. -As an open-source solution, Flagsmith provides greater flexibility and a more complete feature set than other flagging tools, as well as greater control over your choices—you are never locked into one vendor, thanks to our partnership with [OpenFeature](https://openfeature.dev/). +As an open-source solution, Flagsmith provides flexibility and greater control over your choices. Thanks to our partnership with [OpenFeature](https://openfeature.dev/), you are never locked into one vendor. With Flagsmith, you can evolve how your team releases software. Roll out, segment, experiment, and optimise with granular control. Stay secure by self-hosting, or choosing our private cloud deployment option. From 07e64adaf9f68491466be7743f5f4e9d6af1ed75 Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Thu, 10 Sep 2026 08:23:53 +0100 Subject: [PATCH 6/7] Update README.md Added: "As this example runs in the browser, you should use your client-side environment key. Server-side keys must stay secret and never appear in browser code." --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 17fc7bdabc6a..32016da73834 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ flagsmith.init({ }); ``` +As this example runs in the browser, you should use your client-side environment key. Server-side keys must stay secret and never appear in browser code. + Follow the [quick start guide](https://docs.flagsmith.com/getting-started/quick-start) for the full walkthrough, or pick your language from our [SDK docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/) to see the same thing in Python, Java, Go, .NET, and more. ![Flagsmith Screenshot](static-files/screenshot.png) From e64eb6943181e75d2ea656147c29584fda41c61e Mon Sep 17 00:00:00 2001 From: willsigsworth Date: Thu, 10 Sep 2026 08:26:49 +0100 Subject: [PATCH 7/7] Update README.md Took in coderabbit suggestions README.md#L71-L71: remove the trailing slash from the SDK overview URL. README.md#L77-L77: use https://docs.flagsmith.com/project-and-community/contributing. README.md#L91-L91: remove the trailing slash from the client-side SDK URL. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 32016da73834..9ffde0520732 100644 --- a/README.md +++ b/README.md @@ -70,13 +70,13 @@ flagsmith.init({ As this example runs in the browser, you should use your client-side environment key. Server-side keys must stay secret and never appear in browser code. -Follow the [quick start guide](https://docs.flagsmith.com/getting-started/quick-start) for the full walkthrough, or pick your language from our [SDK docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/) to see the same thing in Python, Java, Go, .NET, and more. +Follow the [quick start guide](https://docs.flagsmith.com/getting-started/quick-start) for the full walkthrough, or pick your language from our [SDK docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks) to see the same thing in Python, Java, Go, .NET, and more. ![Flagsmith Screenshot](static-files/screenshot.png) ## Contribute to Flagsmith Open Source -We love contributions from the community and are always looking to improve our [open-source feature management platform](https://www.flagsmith.com/)! Here are our [contribution guidelines](https://docs.flagsmith.com/platform/contributing). +We love contributions from the community and are always looking to improve our [open-source feature management platform](https://www.flagsmith.com/)! Here are our [contribution guidelines](https://docs.flagsmith.com/project-and-community/contributing). ## Flagsmith hosted SaaS @@ -90,7 +90,7 @@ You can try our hosted version for free at [app.flagsmith.com/signup](https://ap ## Available SDKs -### Client side ([docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/)) +### Client side ([docs](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks)) * [JavaScript](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/javascript) * [React](https://docs.flagsmith.com/integrating-with-flagsmith/sdks/client-side-sdks/react)