Introduction
Learn what App Config.json is, how it works, and get your project configured in under 5 minutes.
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.
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:
-
Define your configuration schema
Create a
config.jsonfile that defines your app's settings, including defaults, validation rules, and environment-specific overrides. - Push to the App Config.json platform Use our CLI, dashboard, or API to push your configuration. Changes are immediately validated and versioned.
- 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
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:
- An App Config.json account (free tier available)
- Node.js 18+ or Python 3.9+ or Go 1.21+
- Access to an API key from your dashboard settings
- Basic familiarity with JSON and environment configuration
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.
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:
# Using npm npm install @appconfig/sdk # Using yarn yarn add @appconfig/sdk # Using pnpm pnpm add @appconfig/sdk
# Using pip pip install appconfig # Using poetry poetry add appconfig
go get github.com/appconfig/sdk-go/v3
# 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:
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:
// 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... });
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
npm install @appconfig/sdk # For TypeScript, types are included # No additional @types package needed
Python
pip install appconfig
# Optional: async support
pip install appconfig[async]
Go
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
{ "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 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.