The Agentless Philosophy
Applad inherits Ansible’s philosophy on this — and deliberately learns from both what Ansible got right and where it fell short. The operational overhead of managing agents across a fleet of servers is real, painful, and a source of its own class of bugs and security issues. Agent-based tools like Puppet and Chef require:- Installing and maintaining an agent on every managed server
- Keeping agent versions in sync across your fleet
- Managing agent configuration and credentials
- Monitoring agent health and connectivity
- Patching agent security vulnerabilities
- Debugging agent-specific failures
Applad takes Ansible’s answer to this problem: connect over SSH, do the work, disconnect.
How It Works
When you run a command likeapplad up --env production, here’s what happens:
Read config tree
Applad reads your project config from
orgs/acme-corp/mobile-app/ and determines the infrastructure target from project.yamlValidate and synthesize
All config is validated. A
docker-compose.yml is synthesized for the target environment based on your configOpen SSH connection
Applad opens an SSH connection to the target server using your SSH key (no passwords, ever)
Transfer and apply
The synthesized Docker Compose config is transferred and applied. Services start, restart, or remain unchanged based on what’s needed
Close connection
The SSH connection closes. Only Docker containers running your application remain on the machine
Zero persistent footprint on target machines beyond Docker containers running your application.
Example: Deployment Flow
Here’s a concrete example of the agentless flow for a typical deployment:Open SSH to build server
Applad opens an SSH connection to the build VPS using the developer’s SSH key
Synthesize build environment
Applad synthesizes the correct
docker-compose.yml for the build environmentWhat This Means in Practice
Zero Agent Overhead
- No agent installation — just Docker and SSH access
- No agent updates — no version mismatch issues between controller and agents
- No agent monitoring — no daemon health checks or restart logic
- No agent security patches — smaller attack surface
Universal Compatibility
Cloud VMs
AWS EC2, GCP Compute Engine, Azure VMs — if you can SSH in, Applad can manage it
VPS Providers
DigitalOcean, Hetzner, Linode, Vultr — any VPS with Docker and SSH
Bare Metal
On-premise servers, colocated hardware, dedicated servers
Edge Devices
Raspberry Pi, home servers, edge compute nodes
Smaller Security Surface
Agent-based tools create a new security concern: the agent itself becomes an attack vector. An attacker who compromises an agent daemon can:- Execute arbitrary commands on the host
- Access credentials stored by the agent
- Pivot to other managed machines
- Maintain persistence through agent auto-restart mechanisms
- No daemon to compromise
- SSH keys are the only authentication mechanism
- Connections are ephemeral — opened only when work needs to be done
- Standard SSH hardening practices apply
Familiar Technology Stack
Applad uses tools operations teams already know:- Docker Compose
- Caddy
- NATS/Redis
- SSH
Service orchestration. The same
docker-compose.yml that runs locally runs on your VPS. Standard docker CLI commands work everywhere:Nothing is a black box. Everything is inspectable with tools your team already knows.
SSH Key Identity
Every operation is attributed to an SSH key identity:actor field shows:
- Identity —
alice@acme-corpfrom the SSH key metadata - Key fingerprint —
SHA256:abc123...for cryptographic proof
applad instruct action, every applad access operation, and every deployment is attributed to a named SSH key identity with cryptographic proof.
The audit trail captures actor, action, target, change, and — for
applad instruct — the exact prompt that produced the change.No SSH Connection When Not Needed
Applad only opens SSH connections when work needs to be done. If you runapplad up against a fully reconciled environment:
- Config is compared against last-applied state
- All resources are already in sync
- No SSH connection is opened
- Recap shows
ok: 12, changed: 0
Drift Detection
applad status --drift connects to every configured environment, compares running state against the config tree, and reports what has drifted — without changing anything:
Comparison to Agent-Based Tools
Puppet / Chef
Puppet / Chef
Agent-based: Require a daemon on every managed server. Agents poll for configuration updates or receive push notifications.Challenges:
- Agent version drift across fleet
- Agent crashes or hangs
- Network connectivity issues between agent and master
- Complex bootstrapping process
- Additional memory and CPU overhead on every server
Ansible
Ansible
Agentless: Like Applad, uses SSH. No persistent agent required.Where Applad improves:
- Docker Compose synthesis instead of YAML playbooks with Jinja2 templating
- First-class secrets management instead of Ansible Vault
- Guaranteed idempotency contracts instead of “usually idempotent”
--dry-runon every command instead of only onansible-playbook- Actionable error messages with file, line, problem, and fix
Terraform
Terraform
Agentless: Operates via cloud provider APIs, not SSH.Different model:
- Terraform is for cloud resource provisioning
- Applad is for full application backend management
- Terraform speaks to cloud APIs
- Applad speaks to your servers over SSH and manages Docker Compose
Requirements on Target Machines
The only requirements for a machine to be managed by Applad:
No Dart tooling. No SDK. No Applad-specific runtime. Just Docker and SSH.
Next Steps
Deployment Environments
Explore how Applad runs on local, VPS, and cloud infrastructure
Idempotency
Learn how Applad guarantees idempotent reconciliation