ConfigSync vs yadm: Git-Based vs Cloud-Based Dotfile Management
yadm wraps git to manage dotfiles in-place. ConfigSync uses encrypted cloud storage. Both solve dotfile sync, but their philosophies could not be more different.
How yadm Works
yadm (Yet Another Dotfiles Manager) is a thin wrapper around git that manages a bare repository in $HOME. Unlike tools that copy or symlink files, yadm tracks your dotfiles exactly where they live. Your .zshrc stays at ~/.zshrc, and yadm knows about it through git.
If you know git, you know yadm. Every git command works: yadm status, yadm diff, yadm log, yadm stash. There is nothing new to learn beyond a few yadm-specific features.
Alternate Files
yadm supports OS-specific file variants through alternate files. By naming files with special suffixes, yadm automatically symlinks the correct version based on the current system.
This is a pragmatic approach: rather than templating, you maintain separate files for each variant. It works well when your configs differ significantly between platforms.
yadm Encryption
yadm supports GPG-based encryption for sensitive files. You list the files to encrypt in ~/.config/yadm/encrypt, and yadm bundles them into an encrypted archive.
This works, but requires GPG setup on every machine, which is notoriously fiddly. You need to export and import GPG keys, manage trust levels, and deal with GPG agent configuration. The encrypted archive is committed to your git repo.
yadm Bootstrap
yadm has a bootstrap mechanism: a script at ~/.config/yadm/bootstrap that runs when you clone your dotfiles on a new machine. This is where you install packages, set up directories, and configure system settings.
This is manual and imperative. You write the script yourself, maintain it, and hope it works on the next machine. There is no diffing, no reconciliation, no cross-platform mapping.
How ConfigSync Differs
ConfigSync does not use git at all. It has a dedicated encrypted cloud backend (Cloudflare R2) and handles the entire sync lifecycle: track, encrypt, push, pull, restore. It also goes far beyond dotfiles.
ConfigSync has 24 built-in modules that capture and restore application-specific settings: VS Code extensions, terminal profiles, SSH configs, Git settings, and more. Package tracking covers Homebrew, apt, npm, pip, cargo, and others with cross-platform mapping.
Key Differences
Git knowledge: yadm assumes you are fluent in git. Branching, merging, rebasing, resolving conflicts — these are all part of the yadm workflow. ConfigSync requires no git knowledge. Push and pull are single commands with no merge conflicts.
Encryption model: yadm uses GPG, which is powerful but complex to set up. ConfigSync uses AES-256-GCM with a master password. Type your password and everything is encrypted. No key management, no GPG agent, no trust model.
Scope: yadm manages dotfiles. That is its job, and it does it well. ConfigSync manages dotfiles, packages, secrets, environment variables, app settings, and more. It is a broader tool with a broader scope.
Feature Comparison at a Glance
| Feature | yadm | ConfigSync |
|---|---|---|
| Approach | Bare git repo in $HOME | Encrypted cloud sync |
| Sync mechanism | Git push/pull | Built-in encrypted cloud |
| Encryption | GPG (manual setup) | AES-256-GCM (password-based) |
| OS-specific configs | Alternate files (##os.Linux) | Templates ({{#if platform}}) |
| Bootstrap | Custom shell script | Built-in pull --install |
| Package Management | Manual (via bootstrap script) | 10+ managers, auto-reconcile |
| Watch Mode | No | Yes |
| Web Dashboard | No | Yes |
| Secret Providers | GPG only | 4 providers (keychain, 1Password, etc.) |
| Git Knowledge Required | Yes | No |
| Dependencies | Git, GPG (optional) | Node.js |
| Team Features | Via git branches/remotes | Shared configs, onboarding |
The Verdict
Choose yadm if you are a git power user who wants minimal tooling layered on top of a workflow you already know. If you love git, yadm makes dotfile management feel natural. Its alternate files system is elegant, and the bootstrap script gives you full control over first-time setup. It is battle-tested and widely used.
Choose ConfigSync if you want encrypted sync without GPG complexity, automatic package tracking across 10+ managers, built-in modules for app settings, watch mode for hands-free syncing, and team features for onboarding. ConfigSync handles the entire developer environment, not just dotfiles, and does it without requiring git expertise.
If dotfiles are all you need and git is second nature, yadm is a great tool. If you want your entire development environment synced, encrypted, and managed in one place, ConfigSync is the more complete solution.
Ready to try ConfigSync?
Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.