Skip to content

Adds Flagsmith adapter #103

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open

Conversation

tiagoapolo
Copy link

@tiagoapolo tiagoapolo commented Mar 13, 2025

This pull request introduces a new provider adapter for the Flags SDK that integrates with Flagsmith. The changes include adding configuration files, updating dependencies, and creating the necessary code for the adapter.

Flagsmith documentation: https://docs.flagsmith.com/clients/next-ssr

Usage

import { createFlagsmithAdapter } from '@flags-sdk/adapter-flagsmith';
import { flag } from 'flags';

// Create the Flagsmith adapter
const flagsmithAdapter = createFlagsmithAdapter({
  environmentID: 'your-environment-id',
  // Optional: Add any other Flagsmith configuration options
  // See: https://docs.flagsmith.com/clients/javascript/
});

// Define your flags
const myFeatureFlag = flag({
  key: 'my-feature',
  adapter: flagsmithAdapter,
});

// Use the flag in your application
const flag = await myFeatureFlag();

Copy link

vercel bot commented Mar 13, 2025

@tiagoapolo is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

Copy link

socket-security bot commented Mar 13, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedflagsmith@​9.0.51001008094100

View full report

@tiagoapolo tiagoapolo marked this pull request as ready for review March 14, 2025 14:08
@tiagoapolo tiagoapolo marked this pull request as draft March 14, 2025 14:08
@tiagoapolo tiagoapolo marked this pull request as ready for review March 14, 2025 14:11
Copy link
Collaborator

@dferber90 dferber90 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contributions so far! I left a bit of early guidance

@@ -0,0 +1,64 @@
# Flags SDK - Flagsmith Provider

A provider adapter for the Flags SDK that integrates with [Flagsmith](https://flagsmith.com/), allowing you to use Flagsmith's feature flags and remote configuration in your application.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you work for Flagsmith? If we merge this PR we'd also put up some actual docs on flags-sdk.dev. Would you be wiling to link to our Flags SDK and those docs from https://docs.flagsmith.com?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @dferber90, just jumping in here since Tiago is on vacation - yes, Tiago works for Flagsmith.

In answer to your question, for sure, we'd be happy to link to your docs from https://docs.flagsmith.com - would you be happy with adding reciprocal backlink(s) too?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! We'd add you to https://flags-sdk.dev/providers and create a docs page for FlagSmith

@tiagoapolo
Copy link
Author

@dferber90 could you take one more look at my PR ?

@dferber90
Copy link
Collaborator

@tiagoapolo I‘m out of office this week, but @AAorris will take over leading adapter work and help you get this finalized, listed and released 👍

Copy link
Contributor

@AAorris AAorris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your PR! Please consider the following input:

Strongly recommended:

  • Support identity through entities
  • Optimize performance for multiple features in one request

Recommended:

  • Add origin to link flags to your customers' dashboards

@dferber90 dferber90 removed their request for review April 21, 2025 07:05
@tiagoapolo tiagoapolo requested review from dferber90 and AAorris April 29, 2025 21:04
Copy link
Contributor

@AAorris AAorris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The progress here is looking good!

It looked ready enough while reviewing that I started to explore an example app using the adapter. However, I found several issues while testing in an app.

To continue the review with me, please develop an example that uses the adapter based on an existing one

You can build, test, and deploy the demo using your local adapter code by following these instructions

Please share a link to the example app with your next review request. I look forward to it!

@tiagoapolo
Copy link
Author

@AAorris in this branch you have my example running https://github.com/tiagoapolo/examples/tree/flagsmith-adapter. Also it's deployed in vercel at: https://flags-sdk-template-ff5v5lyuk-tiagos-projects-e9d5728f.vercel.app/
Here's quick demo:

flags_compressed.mov

@tiagoapolo tiagoapolo requested a review from AAorris May 6, 2025 22:34
@AAorris
Copy link
Contributor

AAorris commented May 28, 2025

Hi @tiagoapolo, thanks for your work and sorry for the delay. I'm back and will be reviewing this week if possible.

I don't see your code pushed up to the branch, could you make sure it's available for me to reproduce?

It would be great if the example shows how to replicate the flags in the same way as other examples:

  • Free Delivery: 50% staged feature rollout by ID
  • Summer Sale: 50% staged feature rollout by ID
  • Proceed to Checkout: "red" | "green" | "blue" multivariant string staged 33% each by ID
  • Dev tools widget is able to update the ID to see different variants

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants