{"id":26261181,"url":"https://github.com/jnunemaker/flipper","last_synced_at":"2025-03-14T00:01:39.239Z","repository":{"id":4042553,"uuid":"5144181","full_name":"flippercloud/flipper","owner":"flippercloud","description":"🐬 Beautiful, performant feature flags for Ruby.","archived":false,"fork":false,"pushed_at":"2024-09-04T12:24:22.000Z","size":8048,"stargazers_count":3702,"open_issues_count":38,"forks_count":414,"subscribers_count":42,"default_branch":"main","last_synced_at":"2024-10-29T09:04:30.152Z","etag":null,"topics":["api","dalli","feature","feature-flag","feature-flagging","feature-flags","feature-toggle","feature-toggles","features","flipper","http","memcached","mongo","mysql","postgres","rails","redis","rollout","ruby"],"latest_commit_sha":null,"homepage":"https://www.flippercloud.io/docs","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flippercloud.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"flippercloud"}},"created_at":"2012-07-22T19:39:38.000Z","updated_at":"2024-10-29T08:50:38.000Z","dependencies_parsed_at":"2023-10-14T14:06:38.397Z","dependency_job_id":"8f183058-9544-4503-b21e-786e289b58ae","html_url":"https://github.com/flippercloud/flipper","commit_stats":{"total_commits":2586,"total_committers":142,"mean_commits":"18.211267605633804","dds":"0.28228924980665115","last_synced_commit":"d010739e8936034d81368739570153bd99961e12"},"previous_names":["jnunemaker/flipper"],"tags_count":102,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flippercloud%2Fflipper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flippercloud%2Fflipper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flippercloud%2Fflipper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flippercloud%2Fflipper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flippercloud","download_url":"https://codeload.github.com/flippercloud/flipper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243500790,"owners_count":20300773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","dalli","feature","feature-flag","feature-flagging","feature-flags","feature-toggle","feature-toggles","features","flipper","http","memcached","mongo","mysql","postgres","rails","redis","rollout","ruby"],"created_at":"2025-03-14T00:01:09.615Z","updated_at":"2025-03-14T00:01:39.230Z","avatar_url":"https://github.com/flippercloud.png","language":"Ruby","readme":"[![Flipper Mark](docs/images/banner.jpg)](https://www.flippercloud.io)\n\n[Website](https://flippercloud.io?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=website_link) | [Documentation](https://flippercloud.io/docs?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=docs_link) | [Examples](examples) | [Chat](https://chat.flippercloud.io/join/xjHq-aJsA-BeZH) | [Twitter](https://twitter.com/flipper_cloud) | [Ruby.social](https://ruby.social/@flipper)\n\n# Flipper\n\n\u003e Beautiful, performant feature flags for Ruby and Rails.\n\nFlipper gives you control over who has access to features in your app.\n\n- Enable or disable features for everyone, specific actors, groups of actors, a percentage of actors, or a percentage of time.\n- Configure your feature flags from the console or a web UI.\n- Regardless of what data store you are using, Flipper can performantly store your feature flags.\n- Use [Flipper Cloud](#flipper-cloud) to cascade features from multiple environments, share settings with your team, control permissions, keep an audit history, and rollback.\n\nControl your software \u0026mdash; don't let it control you.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n    gem 'flipper'\n\nYou'll also want to pick a storage [adapter](https://flippercloud.io/docs/adapters), for example:\n\n    gem 'flipper-active_record'\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself with:\n\n    $ gem install flipper\n\n## Subscribe \u0026amp; Ship\n\n[💌 \u0026nbsp;Subscribe](https://blog.flippercloud.io/#/portal/signup) - we'll send you short and sweet emails when we release new versions ([examples](https://blog.flippercloud.io/tag/releases/)).\n\n## Getting Started\n\nUse `Flipper#enabled?` in your app to check if a feature is enabled.\n\n```ruby\n# check if search is enabled\nif Flipper.enabled?(:search, current_user)\n  puts 'Search away!'\nelse\n  puts 'No search for you!'\nend\n```\n\nAll features are disabled by default, so you'll need to explicitly enable them.\n\n```ruby\n# Enable a feature for everyone\nFlipper.enable :search\n\n# Enable a feature for a specific actor\nFlipper.enable_actor :search, current_user\n\n# Enable a feature for a group of actors\nFlipper.enable_group :search, :admin\n\n# Enable a feature for a percentage of actors\nFlipper.enable_percentage_of_actors :search, 2\n```\n\nRead more about [getting started with Flipper](https://flippercloud.io/docs?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=getting_started) and [enabling features](https://flippercloud.io/docs/features?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=enabling_features).\n\n## Flipper Cloud\n\nLike Flipper and want more? Check out [Flipper Cloud](https://www.flippercloud.io?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=check_out), which comes with:\n\n- **multiple environments** \u0026mdash; production, staging, per continent, whatever you need. Every environment inherits from production by default and every project comes with a [project overview page](https://blog.flippercloud.io/project-overview/) that shows each feature and its status in each environment.\n- **personal environments** \u0026mdash; everyone on your team gets a personal environment (that inherits from production) which they can modify however they want without stepping on anyone else's toes.\n- **permissions** \u0026mdash; grant access to everyone in your organization or lockdown each project to particular people. You can even limit access to a particular environment (like production) to specific people.\n- **audit history** \u0026mdash; every feature change and who made it.\n- **rollbacks** \u0026mdash; enable or disable a feature accidentally? No problem. You can roll back to any point in the audit history with a single click.\n- **maintenance** \u0026mdash; we'll keep the lights on for you. We also have handy webhooks and background polling for keeping your app in sync with Cloud, so **our availability won't affect yours**. All your feature flag reads are local to your app.\n- **everything in one place** \u0026mdash; no need to bounce around from different application UIs or IRB consoles.\n\n[![Flipper Cloud Screenshot](docs/images/flipper_cloud.png)](https://www.flippercloud.io?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=screenshot)\n\nCloud is super simple to integrate with Rails ([demo app](https://github.com/fewerandfaster/flipper-rails-demo)), Sinatra or any other framework.\n\nWe also have a [free plan](https://www.flippercloud.io?utm_source=oss\u0026utm_medium=readme\u0026utm_campaign=free_plan) that you can use forever.\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Run the tests (`bundle exec rake`). Check out [Docker-Compose](docs/DockerCompose.md) if you need help getting all the adapters running.\n4. Commit your changes (`git commit -am 'Added some feature'`)\n5. Push to the branch (`git push origin my-new-feature`)\n6. Create new Pull Request\n\n## Releasing\n\n1. Update the version to be whatever it should be and commit.\n2. `script/release`\n3. Create a new [GitHub Release](https://github.com/flippercloud/flipper/releases/new)\n\n## Brought To You By\n\n| pic                                                                    | @mention                                       | area        |\n| ---------------------------------------------------------------------- | ---------------------------------------------- | ----------- |\n| ![@jnunemaker](https://avatars3.githubusercontent.com/u/235?s=64)      | [@jnunemaker](https://github.com/jnunemaker)   | most things |\n| ![@bkeepers](https://avatars3.githubusercontent.com/u/173?s=64)        | [@bkeepers](https://github.com/bkeepers)       | most things |\n| ![@dpep](https://avatars3.githubusercontent.com/u/918804?s=64)         | [@dpep](https://github.com/dpep)               | tbd         |\n| ![@alexwheeler](https://avatars3.githubusercontent.com/u/3260042?s=64) | [@alexwheeler](https://github.com/alexwheeler) | api         |\n| ![@thetimbanks](https://avatars1.githubusercontent.com/u/471801?s=64)  | [@thetimbanks](https://github.com/thetimbanks) | ui          |\n| ![@lazebny](https://avatars1.githubusercontent.com/u/6276766?s=64)     | [@lazebny](https://github.com/lazebny)         | docker      |\n| ![@pagertree](https://avatars.githubusercontent.com/u/24941240?s=64)   | [@pagertree](https://github.com/pagertree)   | sponsor     |\n| ![@kdaigle](https://avatars.githubusercontent.com/u/2501?s=64)   | [@kdaigle](https://github.com/kdaigle)   | sponsor     |\n","funding_links":["https://github.com/sponsors/flippercloud"],"categories":["Run stuff locally","Happy Exploring 🤘","Uncategorized","Feature flipping","Feature Flippers and A/B Testing","Deployment","Feature flags"],"sub_categories":["[GitHub self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners)","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnunemaker%2Fflipper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjnunemaker%2Fflipper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnunemaker%2Fflipper/lists"}