v3.0 Docs

Introduction

Learn what App Config.json is, how it works, and get your project configured in under 5 minutes.

📅 Last updated: Jan 15, 2025
⏱️ 5 min read
📌 v3.0

What is App Config.json?

App Config.json is a modern configuration management platform that allows you to define, version, and deploy application settings across all environments — from local development to production — with zero downtime.

Instead of scattering configuration across environment variables, hardcoded files, and deployment pipelines, App Config.json provides a single source of truth for your entire application's configuration, accessible through a simple JSON interface and powerful SDKs.

💡
Why JSON?

JSON is universally supported, human-readable, and perfectly structured for configuration data. App Config.json leverages this format to provide a familiar, developer-friendly experience.

How It Works

App Config.json operates on a simple but powerful model:

  1. Define your configuration schema Create a config.json file that defines your app's settings, including defaults, validation rules, and environment-specific overrides.
  2. Push to the App Config.json platform Use our CLI, dashboard, or API to push your configuration. Changes are immediately validated and versioned.
  3. Load in your application Use one of our SDKs to fetch and apply configurations. Updates are pushed to your running instances in real-time without restarts.

Key Features

Feature Highlights

Real-time sync: Config changes propagate to all instances in under 50ms.
Version control: Every change is versioned with full rollback capability.
Multi-environment: Manage dev, staging, production, and custom environments from one place.
Encrypted secrets: AES-256 encryption for sensitive values at rest and in transit.
Audit logs: Complete history of who changed what and when.
Feature flags: Toggle features per environment or user segment (Beta).

Prerequisites

Before getting started, make sure you have the following:


Quick Start

Get your first configuration up and running in under 5 minutes. This guide walks you through creating an account, installing the SDK, and loading your first config.

Step 1: Create an Account

Head over to appconfig.json and sign up for a free account. Once logged in, navigate to your Dashboard and create a new project.

⚠️
Keep Your API Key Secure

After creating your project, copy your API key immediately. For security reasons, the key is only shown once. Store it securely — you'll need it to initialize the SDK.

Step 2: Install the SDK

Install the SDK for your preferred language:

bash
# Using npm
npm install @appconfig/sdk

# Using yarn
yarn add @appconfig/sdk

# Using pnpm
pnpm add @appconfig/sdk
bash
# Using pip
pip install appconfig

# Using poetry
poetry add appconfig
bash
go get github.com/appconfig/sdk-go/v3
bash
# Install the CLI tool
curl -fsSL https://cli.appconfig.json/install | bash

Step 3: Initialize Your App

Initialize the SDK with your API key. We recommend storing your key in an environment variable:

javascript
import { AppConfig } from '@appconfig/sdk';

// Initialize the client
const config = new AppConfig({
  apiKey: process.env.APP_CONFIG_KEY,
  projectId: 'my-awesome-app',
  environment: process.env.NODE_ENV || 'development',
});

// Connect to the realtime sync channel
await config.connect();
console.log('Connected to App Config.json');

Step 4: Load Your First Config

Fetch and use your configuration values. The SDK handles caching, validation, and realtime updates automatically:

javascript
// Load the full configuration
const settings = await config.get('app');

console.log(settings.app_name);        // "my-awesome-app"
console.log(settings.version);         // "3.0.0"
console.log(settings.features);        // { realtime_sync: true, ... }

// Listen for realtime updates
config.onUpdate((changes) => {
  console.log(`Config updated: ${changes.keys.join(', ')}`);
  // Apply new configuration...
});
🎉
You're all set!

Your application is now connected to App Config.json. Any changes you make in the dashboard will automatically sync to your running instances in real-time.


Installation

Here's a more detailed guide on installing and configuring the App Config.json SDK for each supported language.

Node.js / TypeScript

bash
npm install @appconfig/sdk

# For TypeScript, types are included
# No additional @types package needed

Python

bash
pip install appconfig

# Optional: async support
pip install appconfig[async]

Go

bash
go get github.com/appconfig/sdk-go/v3@latest

System Requirements

SDK Minimum Version Recommended Platform
@appconfig/sdk Node.js 18 Node.js 20+ Any
appconfig Python 3.9 Python 3.11+ Any
sdk-go/v3 Go 1.21 Go 1.22+ Any
appconfig-cli macOS 12 / Ubuntu 20.04 macOS 14+ / Ubuntu 22.04+ macOS, Linux, Windows

Configuration Schema

App Config.json uses a structured JSON schema to define your application's configuration. Below is the complete schema reference with all available fields and their types.

Basic Configuration

json
{
  "app_name": "my-awesome-app",
  "version": "3.0.0",
  "environment": "production",
  "debug": false,
  "port": 3000,
  "database": {
    "host": "db.appconfig.json",
    "port": 5432,
    "name": "myapp_production",
    "ssl": true
  },
  "features": {
    "realtime_sync": true,
    "max_retries": 3,
    "timeout_ms": 5000,
    "beta_ui": false
  },
  "endpoints": {
    "api": "https://api.appconfig.json/v3",
    "cdn": "https://cdn.appconfig.json"
  }
}

Schema Reference

Below is the complete field reference for the configuration schema:

Field Type Required Description
app_name string Required Unique application identifier (lowercase, hyphens allowed)
version string Required Semantic version string (e.g., "3.0.0")
environment string Optional One of: development, staging, production, or custom
debug boolean Optional Enable debug logging. Default: false
port number Optional Application server port. Default: 3000
database object Optional Database connection settings object
features object Optional Feature flag definitions and toggle states
endpoints object Optional API and service endpoint URLs
secrets object Optional Encrypted secret references (managed via dashboard)
🚨
Never Hardcode Secrets

Never store API keys, passwords, or other secrets directly in your config.json file. Use the Secrets Management feature to store sensitive values securely. The SDK will automatically resolve secret references at runtime.