Public Repository

Last pushed: 10 months ago
Short Description
Short description is empty for this repo.
Full Description

<img src="" width="400" />

What is Tweek?

Tweek is an open source feature management solution for customizing applications and system behavior without deploying new code.

Tweek aims to be a complete open-source alternative to other industry feature/configuration/experiment management solutions such as Facebook's Gatekeeper, LinkedIn's XLNT, Dropbox's Stormcrow and other commercial SaaS solutions...


  • Feature toggles, gradual release
  • Multi-variant experiments, A/B testing
  • Built-in Editor with user friendly UI
  • Hierarchical configurations
  • Advanced targeting of users/groups
  • Dependencies between features
  • Customizable schema/domain model
  • Auditing
  • Integrated storage for saving context
  • Container friendly
  • Integrated OAuth support
  • Pluggable storage backend
  • Simple RESTful api for fetching configurations
  • Scalable

Getting Started

The easiest way to start evaluating Tweek is to run it locally on docker, make sure you have the latest docker (for windows/mac/etc..) version installed (17-06+).

Running Tweek

  • clone the repo (git clone
  • go to deployments/dev (cd tweek/deployments/dev)
  • (optional) pull the images instead of building (docker-compose pull --parallel)
  • run (docker-compose up)

Edit your first key

  • Open in browser.
  • Go to keys page.
  • Click on "Add New Key"
  • Type my_app/sign_button/color
  • Set value type to String
  • Add default value "red"
  • Save changes
  • Click on "Add Rule"
  • Set Property to Country (user) and set "=" and "Canada" in the other fields
  • In Rule value set the value "blue"

Querying Tweek

Use curl/postman/chrome to fire GET Request:

More on Tweek Rest api. (link)

Adding context data

Using the API, use curl/postman to fire POST Request:

After that, we can query Tweek API with:

More on Context.

Gradual Feature Release

Create new key in the editor "my_app/sign_button/is_enabled" with value type "boolean" and default value False.
Add new rule, remove all conditions, set the the rule value to gradual release with 50%.
Try querying configuration with different users and You'll have different results.

More on how multi-varaint keys work in Tweek. (link)

Deployment to production


  • Who's using Tweek?
    Tweek is been used in large scale production deployment at Soluto.
  • How do I generate ssh keys and a pfx file for use in production?
    There's a script for this purpose in utils/
  • I found a security vulnerability, should I open an issue about it?
    No. Please send an email to ``.

Related projects

Tweek.JPad - Tweek's internal rules engine

Additional Resources

Docker Pull Command