acklo is no longer being maintained.
Hey ๐, thanks for visiting. After an unsuccessful beta I've decided
to move acklo's testers onto other services and wind the project down.
If you're looking for a remote config service, check out Flagsmith!
Deploy safer, experiment faster.
acklo is a simple configuration and feature flags tool for Node.js applications.
Use cases
Risky deployments, long lived feature branches, scattered configuration, emergency rollbacks… sound familiar?
acklo solves these issues by letting you safely roll out new features and configuration changes to your Node.js applications.
Tame those scary deployments by introducing features to production behind a feature flag, knowing that if anything goes wrong, you can disable them with a single click. No rollbacks or redeployments required.
Improve debugging feedback loops by changing the configuration of running applications on the fly.
Merge early, merge often… instead of waiting for a feature to be completed and tested in a long-lived feature branch, get it incrementally integrated with the mainline code, but hidden from your users until it's ready for prime time.
How it works…
(Hint: getting started takes less than 5 minutes)
Define your config
Add a Config Template file to your codebase and populate it with the properties you'd like to manage.
version: v1
configuration:
- id: config
name: General configuration
properties:
- id: log_level
name: Logging level
type: string
default: info
- id: switches
name: Feature switches
properties:
- id: experimental_api
name: Experimental v2 API
type: boolean
default: false
Add the SDK
Run npm install @acklo/node-sdk
and start using the SDK to get the latest
values of your config. When your application starts up it will connect to acklo
and stay in sync with any config updates you make.
const AckloClient = require('@acklo/node-sdk');
const acklo = new AckloClient({
applicationName: 'api-service',
environmentName: 'production'
}).connect();
app.get('/api/experimental_api', (req, res) => {
if (!acklo.get('switches.experimental_api')) {
res.status(404).end();
return;
}
res.json({ hello: 'world' });
});
Start making changes!
Use the web dashboard to quickly view and change your app's configuration. Updates are immediately sent to your app's instances.
Features
Resilient
If the SDK can't retrieve your config (e.g. due to a bad network connection), it will keep providing your application with the last known good config, or with defaults.
Fast and efficient
Instead of polling or fetching config values via a web request whenever they're accessed, the SDK caches config values locally and automatically updates the cache when it's pushed an update via WebSocket.
Config as code
The template for your app's configuration is defined in a YAML file alongside your codebase. You can track it in source control, and reuse it on other environments of your application without having to recreate the config on the UI.
Support for multiple environments
Configuration for different environments (e.g. dev, prod, staging, or even a developer's local machine) is isolated and can be updated without affecting other environments.
Instant updates
Your application instances receive a notification about config updates as soon as they're made. This lets you update your config without worrying about restarting or redeploying code on servers.
Team and workspace management
Invite your team to your acklo workspace and manage your app's configuration together. Work in more than one team? Create a different workspace for each one and manage membership granularly.