The Core Principle
Most teams experience a gap between their infrastructure tools:- The BaaS has one mental model
- The IaC tool (like Terraform) has another
- The CI/CD system has yet another
- Feature flags are managed separately
- Analytics live in a different platform
Applad collapses all of these into a single config tree. The config files are the backend. The admin UI is a lens into them. The AI is the lad that helps you work with both.
applad instruct produces real changes in your config files. There is no gap, no drift, no manual translation.
Directory Structure as UI
The directory structure mirrors UI navigation exactly. This is not a coincidence — it’s a fundamental design principle:database/tables/users.yaml is Database > Tables > users in the UI. Always.The path in the filesystem is the breadcrumb in the UI. They are the same thing.Discovery via Marker Files
Applad discovers organizations and projects by scanning for marker files:org.yamlmarks an organization directoryproject.yamlmarks a project directory
projects/ wrapper folder — one level shorter everywhere. Applad discovers everything by scanning for these marker files.
Config File Principles
Purely Declarative
Applad’s config files are and will always remain purely declarative. They describe what exists — schemas, adapters, pipelines, providers, rules. They do not describe logic. If you need conditional behavior — send this message only if the user has a mobile device, run this migration only if this table exists, deploy to production only if tests pass — that is what functions, workflows, and CI/CD pipeline conditions are for. Config describes structure. Code describes behavior. These are different things and they live in different places.One Focused File Per Resource
Every resource gets its own file:database/tables/users.yaml— one tablestorage/buckets/avatars.yaml— one bucketfunctions/process-payment.yaml— one functiondeployments/android-production.yaml— one deployment pipeline
Security Lives Alongside What It Protects
Permission rules are defined in the same file as the resource they protect:database/tables/users.yaml
Bidirectional Sync
Every action in the admin UI immediately generates or updates the corresponding.yaml file. Every config file change reflects in the UI immediately.
No gap, no drift, no manual translation.
Environment Overrides
Configurations can specify environment-specific overrides:database/database.yaml
Variable References
Config files contain${VAR} references, never actual secret values:
messaging/messaging.yaml
- Local development —
.envfile (never committed) - Staging/Production — admin database (encrypted at rest)
- External secret managers — AWS Secrets Manager, HashiCorp Vault, etc.
Secrets are never in config files. Config files contain only references.
Composable Configuration
Applad supports ashared/ directory at the instance level that any org or project can reference:
postgres-primary shared config block that includes standard connection settings, migration config, and baseline table permission rules — then reference it across multiple projects.
Auto-Generated Documentation
Applad automatically generates.env.example files from your config tree:
${VAR_NAME} reference is extracted, annotated with:
- What the variable is for
- Which config file uses it
- What format it expects
- Whether it should go through
applad secrets setin production
The Four-Way Separation
Applad maintains a clean separation between four types of data:Config Files
Structural decisions requiring developer review: schemas, pipelines, rules, adapters, role definitions (intent only), SSH key scopes (hard ceilings),
${VAR} references (never values)Admin Database (Access Control)
Managed via
applad access only: actual role grants, project-level overrides, scope grants, environment-level apply grants, time-limited access, pending requestsAdmin Database (Operational Data)
Feature flag targeting rules, messaging template content, signing certificates (encrypted), AI and cloud provider credentials (encrypted), secret values for non-local environments (encrypted)
Runtime Database
User records, application data, analytics, full audit log, deployment history, function logs, messaging send history, real-time state, storage metadata, security event logs
Config Validation
Before any changes are applied, Applad validates the entire config tree:- Syntax — all YAML is well-formed
- Schema — every file matches the expected structure
- Variables — all
${VAR}references are satisfied - Cross-references — functions referenced in workflows exist, tables referenced in realtime channels exist
- Cross-database relations — flagged with actionable errors (must be resolved at application layer)
From Config to Reality
When you runapplad up, here’s what happens:
Read and merge
Applad reads the entire config tree and merges it (instance → org → project → environment)
Synthesize Docker Compose
A
docker-compose.yml is generated from your config for the target environmentApply changes
Only what has changed is updated — containers restarted, migrations run, configs reloaded
applad up makes reality match it.
Next Steps
Agentless Operation
Learn how Applad connects via SSH without persistent agents
Idempotency
Understand how running
applad up twice is the same as once