Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


🎚️ OPToggles 🎚️

Open policy based feature toggling

Netlify Status Docker pulls Join our Slack!

What is OPToggles?

We often want our frontend to reflect the permissions enforced by the backend. E.g. if a user is not allowed to click run the action behind a button - don't show them that button.

OPToggles brings the power of OPA + OPAL into your existing feature toggling solutions.
It enables you to create user targeted feature flags/toggles based on Open Policy managed authorization rules, and keep them synced thanks to OPAL's realtime policy and policy-data change detection.

With OPToggles frontend devs can continue to enjoy working with the feature flags they are familar with, and backend-devs easily harness the power of open-policy.

OPToggles Demo


👥 Community & Contribution

Come talk to us about OPToggles, or authorization in general - we would love to hear from you ❤️

You can raise questions and ask for features to be added to the road-map in our Github discussions, report issues in Github issues, follow us on Twitter to get the latest OPToggles updates, and join our Slack community to chat about authorization, open-source, realtime communication, tech any anything else!

If you are using our project, please consider giving us a ⭐️


Contributing to OPToggles

  • Pull requests are welcome! (please make sure to include passing tests and docs)
  • Prior to submitting a PR - open an issue on GitHub, or make sure your PR addresses an existing issue well.