Changelog

We ship product updates weekly. Follow us on 𝕏 for the latest.

Polish season: Week #4

We’re into the 4th week of polishing our UI, SDKs, and backend as part of our commitment to making a world-class product. 

We’re back after taking last week off to put together our roadmap for 2025 at our offsite in Berlin.

Here’s what we polished this week:

App improvements

  • Let users create new features on Bucket by using flag.new 
  • Added a tooltip to the targeting UI to clarify the “Some” targeting rule conditions
  • Put a “Give feedback” button on the app sidebar
  • Added ID columns to the Users and Companies tables
  • Polished the Slack alerts for access rules and release stage changes

SDKs

  • Added SDKVersion and ServiceName to feature flag events to make them simpler to debug
  • The React SDK and Browser SDKs now use new-style exports
  • Improved the automated survey documentation to explain how to position the modal when using requestFeedback

Bug fixes

  • Improved the positioning of the automated survey popover widget so it always stays in the viewport
  • Cleaned up legacy code and feature flags, which included making flag targeting validation stricter
  • Fixed an occasional glitch where the “Hide feature sidebar” button didn’t appear in the Feature tab

Recap

With polish season coming to an end, this everything we've shipped over the past 4 weeks to make Bucket a robust, reliable, and intuitive product.

App improvements

  • Overhauled the code instructions block. It’s simpler and actively listens for real-time checks or usage tracking
  • Drastically improved internal data processing service start up times (reduced by 98.4%!) by initializing from stored aggregated values
  • Included a feature view selector on the individual company screen under the Features tab
  • New card design for the Analyze widgets.
  • Simplified headers across the app.
  • New card design for the Targeting environment rules.
  • A rounded border-radius was added to buttons, inputs, and cards.
  • Simplified the app and environment picker in the sidebar
  • Polished the overall design of the feature sidebar
  • Redesigned the main content area as a card
  • Added a guide for feature entitlements
  • Improved load times and stopped spinners from blocking the feature UI
  • Updated the free trial indicator in the left sidebar for better clarity
  • Added a new environment activity indicator to the feature sidebar
  • Refactored some of the internal segment size estimation endpoints for increased simplicity
  • Added a new profile menu to the bottom of the app sidebar

SDKs

React/Browser SDK

  • Send feedback using the feature key instead of the feature ID.
  • Added the requestFeedback function to allow users to implement the “Get feedback” button

Node.js SDK

  • Now, it automatically sends user and company details to Bucket when either bindClient or getFeature(s) calls are made. This ensures that up-to-date information is pushed to Bucket so companies can be used immediately. Previously, you had to call updateCompany and updateUser manually.
  • Introduced the enableTracking option to disable the sending of track, user, company, and flag events. This is useful when you’re impersonating other users, for example.
  • Updated and expanded the SDK documentation
  • Introduced offline mode to improve the behavior of the SDK in tests and on localhost
  • Added options to set local feature overrides for localhost development
  • Improved logging
  • Made improvements to the installation and getting started process
  • Introduced file and environment variable-based configuration
  • Fixed a rate limiter issue where it would keep accumulating data

Bug fixes

  • Streamlined the STARS funnel step icons.
  • Filters no longer show errors when you open the popover.
  • Updated autocomplete selectors so they all work the same
  • Reduced loading flicker in autocomplete selectors when a user is typing
  • Changed how rules were stored to stop some flag rules from being misrepresented as OR instead of AND.
  • Fixed an ingest issue where remote contexts overrode the given context
  • Solved an occasional bug where users were prompted to create a new organization after receiving an invite link

Happy shipping!

Simplifying the targeting UI

The targeting UI is one of the most important screens in feature management tools, our ambition is to make the world's best targeting UI for B2B SaaS.

In speaking to users, it became clear that almost all B2B targeting rules focus on either specific companies or a segment of companies. Bucket company-level aggregation and segments make this simple, so we doubled down on these common use cases.

We’ve simplified the targeting UI to make it more intuitive. We’ve added three presets: 

  • No one
  • Some
  • Everyone

These presets let you set targeting rules for features in the click of a button.

We’ve made defining the “Some” targeting rules simple while optimizing for the most common B2B use cases. You can add segments, individual companies, and individual users by simply clicking an “Add” button.

Targeting rules in Bucket

The whole team can be alerted to targeting rules updates through the Slack integration. A summary of all the targeting rule updates can be shared in the Slack channel of your choice. 

Targeting rules update alert in Slack

You can also still create advanced targeting rules when you need them with the "+ Add Rule" button.

Advanced rules let you specify rollout percentages and create targeting rules using company attributes, user attributes, feature targeting, or other contexts.

Advanced targeting rules in Bucket

This is a great example of how Bucket’s focus on B2B lets us create a simpler product without sacrificing functionality.

Happy shipping!

Polish season: Week #3

It’s week 3 of polishing our UI, SDKs, and backend to keep Bucket as well-crafted as ever while continuing to ship new features and improvements. 

Here’s what we polished this week:

App improvements

  • Included a feature view selector on the individual company screen under the Features tab
  • Added a new profile menu to the bottom of the app sidebar
  • Improved load times and stopped spinners from blocking the feature UI
  • Updated the free trial indicator in the left sidebar for better clarity
  • Added a new environment activity indicator to the feature sidebar
  • Refactored some of the internal segment size estimation endpoints for increased simplicity 

SDKs

React SDK

Bug fixes

  • Fixed an ingest issue where remote contexts overrode the given context
  • Solved an occasional bug where users were prompted to create a new organization after receiving an invite link

Happy shipping!

Polish season: Week #2

We’re into week 2 of polishing our UI, SDKs, and backend to keep Bucket a high-quality product while shipping tons of improvements. 

Here’s what we polished this week:

App improvements

  • Drastically improved internal data processing service start up times (reduced by 98.4%!) by initializing from stored aggregated values
  • Simplified the app and environment picker in the sidebar
  • Polished the overall design of the feature sidebar
  • Redesigned the main content area as a card
  • Added a guide for feature entitlements

SDKs

Node SDK

  • Updated and expanded the SDK documentation
  • Introduced offline mode to improve the behavior of the SDK in tests and on localhost
  • Added options to set local feature overrides for localhost development
  • Improved logging
  • Made improvements to the installation and getting started process
  • Introduced file and environment variable-based configuration
  • Fixed a rate limiter issue where it would keep accumulating data

Bug fixes

  • Updated autocomplete selectors so they all work the same
  • Reduced loading flicker in autocomplete selectors when a user is typing
  • Changed how rules were stored to stop some flag rules from being misrepresented as OR instead of AND.

Happy shipping!

Signups automatically get a demo app

We’ve made it easier for new users to get a feel for Bucket by automatically creating a demo app full of realistic data when you sign up for the first time.

The “Slick” demo app is complete with features and demo data that lets you explore Bucket’s different features.

When you’re ready to integrate Bucket with your app, click “Switch to live app” in the sidebar to get started. The demo app will stick around until you delete it so you'll have a helpful reference when you start setting up your app.

Happy shipping!

Polish season: Week #1

Making a world-class product requires continuous care and attention to detail. We want Bucket to be a high-quality product that’s robust, reliable, and intuitive to use.

That’s why we’re spending the next five weeks polishing our UI, SDKs, and backend.

Here’s what we polished this week:

App improvements

  • Overhauled the code instructions block. It’s simpler and actively listens for real-time checks or usage tracking.
  • New card design for the Analyze widgets.
  • New card design for the Targeting environment rules.
  • Simplified headers across the app.
  • A rounded border-radius was added to buttons, inputs, and cards.

SDKs

Node SDK

  • Now, it automatically sends user and company details to Bucket when either bindClient or getFeature(s) calls are made. This ensures that up-to-date information is pushed to Bucket so companies can be used immediately. Previously, you had to call updateCompany and updateUser manually.
  • Introduced the enableTracking option to disable the sending of track, user, company, and flag events. This is useful when you’re impersonating other users, for example.

Browser/React SDK

  • Send feedback using the feature key instead of the feature ID.

Bug fixes

  • Streamlined the STARS funnel step icons.
  • Filters no longer show errors when you open the popover.

Happy shipping!

Gradually release features with Stages

We’ve just added release stages to make it simpler to gradually release features. Release stages let you configure your commonly used targeting rules so you can easily apply them to features as you roll them out. 

Feature Tab with Release Stages

New apps come with 4 default release stages: In development, Internal, Beta, and General availability

They support the common use case of taking a feature from development to internal testing to an optional beta testing phase then finally releasing to everyone.

Stages also make it easy for your team to see which rollout stage a feature has reached.

Editing Release Stages Editing under Settings

A stage consists of a name, color, set of targeting rules, and rollout percentage. 

Targeting rules in Bucket let you target:

  • A segment of companies
  • Individual companies
  • Individual users
  • Custom contexts

You can edit or delete release stages under Settings. 

To apply a stage to a feature, go to the Targeting tab and select a release stage. You have complete flexibility to add custom targeting rules for individual features. 

Happy shipping!

Introducing remote attributes

We’ve rolled out remote attributes to make Bucket faster and easier to implement. Company and user attributes stored on our servers can now be used when evaluating feature flags.

Bucket remote attributes

The introduction of remote attributes means that rather than having to fetch or compute all the required attributes each time a feature flag is evaluated, you only need to provide the Company ID and User ID when fetching features.

Attributes in Bucket are updated when they change, via the SDK, or periodically from your backend via the API.

Like so:

Remote attribute code comparison

With remote attributes you can:

  • Set the company plan attribute according to the customer subscription plan from your backend and then gate features access based on the plan from anywhere in your application.
  • Use an attribute called betaUser: true to gate who gets access to beta features. Then allow users to opt-in to beta features using a button in your application that simply sets the attribute in Bucket.
  • Integrate with your back office system to set a list of the add-ons that the customer has bought through an attribute in Bucket. For example: addOns: [‘copilot-addon’, ‘ sso’] which you can then use in feature targeting.

Company and user attributes stored in Bucket are automatically used when evaluating feature flags in the case of our browser-based SDKs and can optionally be used in the server-based SDKs. 

Setting remote attributes is a simple method call using our Node SDK. You can also set attributes through our Segment integration which allows you to continue using your existing setup.

By default, attributes are replicated to multiple locations across the globe in our global infrastructure to keep initial evaluation round-trip times low. 

However, you have the option to keep your data exclusively within the EU if you need to adhere to certain data protection regulations.

Happy shipping!

Making it easy to detect stale flags

We’ve made it easy to detect stale feature flags by adding the “Last check” column to feature views. 

The "Last check” column lets you confirm that you’ve properly removed the feature's key from your codebase and that checks are no longer firing. 

What's a check exactly? A check is fired from the Bucket SDK whenever a user reaches code that's gated by a Bucket feature key in your app. The "Last check" column shows checks across all of your environments and is fired regardless of the check result (access granted or not).

Last Check column in the Bucket feature tab

Happy shipping!

Adding feature descriptions

We’ve just added feature descriptions to Bucket. Document each feature’s functionalities with full markdown support.

All the common syntax is supported including *italics*, **bold**, [link](https://example.com), and 'code'.

Feature description in Bucket


Feature descriptions appear in a sidebar on the Feature tabs.

Happy shipping!