Nobody creates a feature flag meaning to keep it forever. It goes in for a rollout, and everyone in the room agrees it comes out when the rollout is done. Then the rollout finishes, whoever made the flag moves on to the next project, and the flag sits in the code for a year. Nobody’s name is on it. Nothing ever asks about it. Tools have been able to spot a dead flag for years. Spotting it puts no date on anyone’s calendar and no name in anyone’s inbox, and in practice those two things are what get a flag deleted.
That’s most of this release. Any flag can now carry an expiry date, on every plan. When a flag passes its date, or has done nothing for 90 days, Team and above get an email about it, and on Pro and Business it goes to the flag’s named owner. The plans changed too. Free now covers three people, Team is a new tier at $49 a month, and Business adds single sign-on through your own identity provider. Outbound webhooks, which shipped a few days earlier, round it out.
Key Takeaways
- Every plan, Free included, can set an expiry date on a flag. Passing it marks the flag stale and leaves what the flag serves untouched.
- On Team and above, a flag that expires or goes dead triggers a cleanup notice: to the flag’s owner on Pro and Business, and to your Owners and Admins on Team.
- Pro and Business name an owner for each flag. When someone leaves, the admin removing them picks who inherits their flags.
- Free covers up to 3 people. Team is $49 a month, Pro $99 and Business $249, and Business adds SSO through Okta, Microsoft Entra ID or any OpenID Connect provider.
- Paying for Pro or Business today? Your price holds until you change plan or switch between monthly and annual billing.
1. Why flags outlive the work they were for
Pete Hodgson’s long write-up on feature toggles calls them “inventory which comes with a carrying cost” (martinfowler.com). You pay that cost in small amounts, constantly. Every flag is a branch someone reads around, a second code path your tests may or may not reach, and one more thing to rule out at 2 a.m. when production misbehaves. Is this one still live? Who would know?
Featureflip already sorts flags into Active, Stale and Dead from real evaluation traffic, and the stale flag detection docs explain the signals. A badge in a dashboard only helps whoever opens the flags list and goes looking, and by then the person best placed to act on it has often left the team.
So two pieces were missing. A flag had no written end, which meant “finished” was always inferred from traffic after the fact. And a flag had no person attached, so a stale signal had nowhere to go. The next three sections are about closing those two gaps.
2. Give a flag an end date the day you create it
The Create Flag page has a new optional Expires on field, and every existing flag has a Set expiry control in its header. Pick the day you expect the flag to come out.
Once the date passes, the flag is marked Stale with the reason PastExpiry, and the flags list labels it Expired. Evaluation is unaffected. A flag serving true to half your users keeps doing exactly that the morning after, because the date is a note to your team and the evaluation engine ignores it. If the rollout slipped, move the date, or clear it. Both remove the stale marking straight away.
A flag has to look finished for 30 days before the traffic signals call it Stale, and 90 before they call it Dead, so a quiet week in staging doesn’t read as abandonment. An expiry date skips the wait entirely, since you wrote the date down yourself and there’s no ambiguity to sit out.
The flag cleanup Action sees the date too, but it won’t open a removal pull request on a passed date alone, because a typo in a date should never make a live flag look safe to delete. It waits until traffic agrees. You can also set dates through the Management API or the MCP server, so an AI agent creating a flag for you can give it an end in the same call. The flag expiration guide covers every route.
3. Cleanup notices land with someone, once
Every day Featureflip looks for flags that have passed their expiry date or been dead for 90 days, and emails a digest to whoever should act. The subject line is blunt: “Feature flag checkout-v2 is ready to remove”, or “3 feature flags are ready to remove” when several arrive together. Inside, flags are grouped by project and each one links to its page in the dashboard.
A flag gets one notice and then goes quiet, so you won’t get a daily reminder about a kill switch you’ve decided to keep. If it comes back to life and later goes dead again, you’ll hear about it again, with at least 30 days between notices for the same flag, which stops a flag flickering at the edge of the traffic signal from turning into a stream of email.
Who receives it depends on the plan. On Pro and Business the notice goes to the flag’s owner. Unowned flags, and every flag on Team, go to the organization’s Owners and Admins, under a heading that explains why they’re getting it.
Anyone can switch these off. It’s the Flag cleanup notices toggle under Profile, then Email Preferences, or the unsubscribe link at the foot of any notice. The setting is per person, so one admin opting out doesn’t silence everyone else.
Notices are a Team feature. On Free the same flags still get caught: each expired or dead one is marked in the flags list, and the cleanup Action opens the removal pull request once a flag goes dead. Team adds the email, so somebody hears about a finished flag without opening the dashboard.
4. Flag owners put a name next to every flag
On Pro and Business, every flag can have an owner, set from the flag’s header, and the flags list shows who owns what. The owner is the person who can answer the question every cleanup eventually hits. Was this a finished rollout, or a kill switch someone meant to keep?
Remove a member who owns flags and the dialog tells you how many they own and asks who should inherit them. Pick a teammate and the flags move in the same step. Or leave them unowned, and their notices go to your Owners and Admins until someone claims them.
On Free and Team, Featureflip still quietly records who created each flag. Nothing is routed by it. It means that when you upgrade to Pro, your flags already have owners (the people who made them), and nobody has to reconstruct who built what two years ago from git blame.
5. Webhooks tell your other systems
Outbound webhooks went out a few days before the rest of this release. Choose the events you care about, from a flag toggling to a targeting rule changing to an SDK key being rotated, and Featureflip sends a signed HTTP request to your endpoint the moment it happens. There are 29 event types, and a subscription can be narrowed to particular projects and environments, so a staging pipeline never hears about a production toggle.
Posting production toggles into the channel your on-call engineers watch is the obvious first use. Others are triggering a deploy, refreshing a cache, or feeding every change into your own audit pipeline. Each delivery is signed, retried if your endpoint fails, and kept in a delivery log you can resend from once the endpoint is back.
You can manage subscriptions in Organization Settings, the Management API, the MCP server or the Terraform provider. Free includes one endpoint, Team and Pro three, and Business as many as you need. The webhooks guide has payloads and signature verification.
6. Single sign-on through your own identity provider
Business now connects to the identity provider your company already runs. Featureflip uses OpenID Connect, so Okta, Microsoft Entra ID and any provider that publishes an OIDC discovery document will work. The Okta guide and the Entra ID guide each include a Terraform config for the IdP side, if you’d rather not click through an admin console.
Verify your email domain with a DNS TXT record, register Featureflip in the IdP, then save, test and activate the connection. After that, people on your domain sign in with Continue with SSO. With Add new people automatically switched on, anyone your IdP lets in joins with a default role you choose, Viewer, Member or Admin, and giving a new engineer access becomes a group assignment in your IdP.
Require single sign-on makes your IdP the only door into the organization, and Owners keep a password recovery path so a misconfigured IdP can never lock everyone out. The single sign-on guide walks through all of it.
Google and GitHub sign-in remain on every plan. They’re a convenience for individual accounts, where SSO is your company’s IdP deciding who gets in.
7. The new plans
Four self-serve plans now, each a flat monthly price. No metered seats, monthly active users or evaluations, and no overage.
| Plan | Price | Team members | Projects | Environments per project | What it adds |
|---|---|---|---|---|---|
| Free | $0 | Up to 3 | 1 | 2 | 10 flags per project, 1 webhook endpoint, 7-day audit log |
| Team | $49/mo ($39 annual) | Up to 5 | 3 | 3 | Unlimited flags, scheduled changes, 3 webhook endpoints, 30-day audit log |
| Pro | $99/mo ($79 annual) | Up to 10 | 10 | 5 | Flag owners, everything in Team |
| Business | $249/mo ($199 annual) | Up to 25 | 25 | Unlimited | SSO with your IdP, unlimited webhook endpoints, 90-day audit log |
Free used to cover one person. It now covers three, so a small team can run flags in production together without paying anything. Team takes the $49 price Pro used to have, sized for up to five people and three projects. Scheduled changes are now part of the paid plans.
A lot stays on every plan, Free included. Targeting and percentage rollouts, all 13 SDKs, the Management API, the MCP server, the Terraform provider and the audit log. Expiry dates, stale flag detection and the cleanup Action, too, since flag debt starts on day one whatever your team size. Past 25 people, Enterprise is priced by quote. See pricing for the full grid.
8. If you already pay for Featureflip
Your price doesn’t move. Pro and Business subscriptions that started before this change keep the rate they signed up at, and Pro subscribers get flag owners at that rate.
The old price is tied to your current plan and billing interval. Switching from monthly to annual billing (or back again) moves the subscription to today’s price for that plan, and so does moving to a different plan. Stay where you are and nothing changes, and we won’t move anyone over from our side.
The shorter version
- Any flag can carry an expiry date on any plan. Once it passes, the flag is marked stale and keeps serving what it served.
- A flag that expires or goes dead triggers one cleanup email, to its owner on Pro and Business and to your Owners and Admins otherwise. You can opt out per person.
- Pro and Business name an owner per flag, and removing a member asks who inherits their flags.
- Outbound webhooks send signed requests to your endpoint when flags or configuration change.
- Business adds SSO through Okta, Entra ID or any OIDC provider, with optional enforcement.
- Free covers 3 people. Team is $49, Pro $99, Business $249. Existing subscribers keep their price until they change plan or billing interval.
Frequently asked questions
Does a flag stop working when its expiry date passes?
No. Evaluation ignores the date completely, and the flag serves exactly what it served the day before. Passing the date marks the flag Stale with the reason PastExpiry and, on Team and above, queues a cleanup notice. To keep a flag longer, move the date or remove it, and the stale marking clears straight away.
Who gets flag cleanup emails if nobody owns the flag?
The organization’s Owners and Admins. That’s also where every notice goes on Team, where flag owners aren’t part of the plan. Each person can turn the notices off under Profile, then Email Preferences, or with the unsubscribe link in any notice.
How often will I get emailed about the same flag?
Once per episode. A flag that expires or goes dead gets one notice and then stays quiet while it remains in that state. If it becomes active again and later goes dead a second time, a new notice can go out, but never within 30 days of the last one for that flag.
Is my current Pro or Business price going up?
Not while you stay on the same plan and billing interval. Existing subscriptions keep their price. Switching between monthly and annual billing, or changing plan, moves you to the current price for the plan you pick.
Is signing in with Google or GitHub the same as SSO?
They’re separate features. Google and GitHub sign-in are on every plan and let each person use an account they already have. Single sign-on, on Business, connects Featureflip to your company’s identity provider over OIDC, so your IdP decides who can get in and you can require it for every member.
Free covers up to three people, never expires, and includes expiry dates, stale flag detection and the cleanup Action. Create a free account and put an expiry date on the next flag you make.