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...
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+).
git clone https://github.com/Soluto/tweek.git)
yarn docker-compose pull --parallel(optional for getting started fast with Tweek as it's skip build)
yarn docker-compose build --parallelfor faster build.
yarn start) - this might take a few minutes for the first time
Tilt is a CLI tool that can be used to create optimal development environment for multi-container apps such as Tweek, it support automatic rebuilding of images and re-running of containers on files' changes. Additionally, it support more complex live reloading scenarios such as Tweek Editor (React app). Tweek uses Tilt on top of docker-compose for easier and (usually) faster developer experience (compared to Tilt with k8s).
skaffold dev --port-forward=false
yarn start --build) to rebuild all images and start Tweek.
After setting up our environment, we're going to create our first key. Keys in tweek are the most basic building blocks and they represent a container for dynamic value that affect feature behaviors. Our first key, will be a key that is responsible for the color of a "sign up" button.
More on keys and paths
Use curl/postman/chrome to fire GET Request:
Using the rest api, an application can query Tweek for getting the right set of values for each specific user. More on Tweek Rest api.
Tweek provide UI and rest api for editing context.
After that, we can query Tweek API with:
You can also use the api for updating Tweek context:
More on Context.
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-variant keys work in Tweek. (link)