Runtime Config Control
At the Edge

Ship faster with instant feature rollouts and edge compute. Runcfg delivers flags, configurations, and runs your config workers from global edge servers.

No credit card required. Free tier available for everyone*

Building Free and Open Source software?

Contact us to get a free enterprise license. A billing account is required to reach support and request a FOSS enterprise upgrade.

Contact us
Global Infrastructure

Edge-Replicated

Your flags and configurations are replicated across edge locations globally. Your users get rapid responses, no matter where they are.

Low Latency

In optimal cases, flags and configurations are served from the edge node closest to your users.

Multiple Edge Locations

When enabled, your configuration and flags are automatically replicated across our global edge network on every change.

99.9% Uptime SLA

Built-in redundancy and automatic failover ensure your applications can evaluate flags & configuration at runtime.

Features

Everything You Need

Powerful feature management without the complexity. Ship confidently with granular control.

Feature Flags

Toggle features on or off instantly. Support for boolean, string, and numeric flag types with default fallbacks.

Remote Configuration

Store and update application configuration in YAML format with full version history and audit trail. Changes propagate instantly.

Encrypted Secrets

Store API keys and sensitive values with RSA-2048 encryption. Per-project key pairs with 90-day rotation tracking.

Multi-Environment

Organize by projects with separate credentials for development, staging, and production environments.

Native SDKs

First-class SDKs for Go, Rust, C++, and TypeScript. Integrate in minutes.

Usage Analytics

Track flag evaluations and configuration requests. Monitor usage against your plan in real-time.

New

Config Workers

Deploy config workers to our global edge network. Run compute close to your users with automatic flag and config injection.

  • WASM Runtime — Write workers in Rust, Go, C++, or any language that compiles to WebAssembly
  • Auto-Injected Flags — Project flags and configs automatically available as environment variables
  • Secure Sandbox — Isolated execution with configurable memory limits and timeouts
  • No SDK Required — Workers access flags via standard environment variables
use std::env;

fn main() {
    // Flags are auto-injected as env vars
    let dark_mode = env::var("RUNCFG_FLAG_DARK_MODE")
        .unwrap_or("false".into());

    let max_items = env::var("RUNCFG_FLAG_MAX_ITEMS")
        .unwrap_or("10".into());

    // Access request info
    let method = env::var("REQUEST_METHOD").unwrap();
    let path = env::var("REQUEST_PATH").unwrap();

    // Write HTTP response
    println!("STATUS 200");
    println!("Content-Type: text/plain");
    println!();
    println!("Hello from the edge!");
}
package main

import (
    "fmt"
    "os"
)

func main() {
    // Flags are auto-injected as env vars
    darkMode := os.Getenv("RUNCFG_FLAG_DARK_MODE")
    if darkMode == "" {
        darkMode = "false"
    }

    maxItems := os.Getenv("RUNCFG_FLAG_MAX_ITEMS")
    if maxItems == "" {
        maxItems = "10"
    }

    // Access request info
    method := os.Getenv("REQUEST_METHOD")
    path := os.Getenv("REQUEST_PATH")

    // Write HTTP response
    fmt.Println("STATUS 200")
    fmt.Println("Content-Type: text/plain")
    fmt.Println()
    fmt.Println("Hello from the edge!")
}
#include <iostream>
#include <cstdlib>
#include <string>

int main() {
    // Flags are auto-injected as env vars
    const char* dark_mode_env = std::getenv("RUNCFG_FLAG_DARK_MODE");
    std::string dark_mode = dark_mode_env ? dark_mode_env : "false";

    const char* max_items_env = std::getenv("RUNCFG_FLAG_MAX_ITEMS");
    std::string max_items = max_items_env ? max_items_env : "10";

    // Access request info
    std::string method = std::getenv("REQUEST_METHOD");
    std::string path = std::getenv("REQUEST_PATH");

    // Write HTTP response
    std::cout << "STATUS 200" << std::endl;
    std::cout << "Content-Type: text/plain" << std::endl;
    std::cout << std::endl;
    std::cout << "Hello from the edge!" << std::endl;
    return 0;
}
10ms
Typical cold start
10MB
Max WASM binary
128MB
Default memory limit
10s
Max execution time
Why Runcfg

Simpler Than the Alternatives

No complex setup, no infrastructure to manage. Just connect your SDK and go.

Self-Hosted Solutions

Require maintaining servers, databases, and replication. DevOps overhead adds up quickly.

Other Platforms

Bloated with features you don't need. Complex pricing, lengthy onboarding, and steep learning curves.

Application Configurations

Require redeployment to change configurations. No gradual rollouts, no instant updates, no audit trail.

Runcfg

  • 5-minute integration with any stack
  • Zero infrastructure to manage
  • Global edge delivery built-in
  • Simple, transparent pricing
  • Instant changes without redeploy
  • RSA-2048 encrypted secrets storage
  • Config Workers with auto-injected flags
  • Clean, intuitive dashboard

Integrate in Minutes

A few lines of code is all it takes.

import "github.com/runcfg/sdk-go"

client := runcfg.New("your-api-key")

// Get a feature flag
enabled := client.Bool("new-checkout", false)

// Get configuration
config := client.Config("app-settings")
use runcfg::Client;

let client = Client::new("your-api-key");

// Get a feature flag
let enabled = client.bool("new-checkout", false);

// Get configuration
let config = client.config("app-settings");
#include <runcfg/runcfg.hpp>

runcfg::Client client("your-api-key");

// Get a feature flag
bool enabled = client.get_bool_default("new-checkout", false);

// Get configuration
auto config = client.get_config("app-settings");
import { Runcfg } from '@runcfg/sdk';

const client = new Runcfg('your-api-key');

// Get a feature flag
const enabled = client.bool('new-checkout', false);

// Get configuration
const config = client.config('app-settings');

Ready to ship faster?

Join thousands of developers who use Runcfg to manage feature flags and configuration at the edge.

*All tiers include limited flag evaluations/month