The Freelancer's Guide to Managing Multiple Client Environments
Different AWS accounts, different git emails, separate SSH keys, isolated .env files. Use ConfigSync profiles to keep client environments completely separate.
The Freelancer's Configuration Nightmare
Freelance developers face a configuration problem that employees never encounter: multiple completely separate environments on a single machine. Client A uses AWS with one set of credentials. Client B is on GCP with different credentials. Client C has a self-hosted GitLab instance with its own SSH key. You need different git emails for each client, different environment variables, and sometimes different tool versions.
The consequences of mixing these up range from embarrassing to catastrophic. Committing with the wrong git email leaks information about your other clients. Pushing to the wrong AWS account could deploy code to the wrong company's infrastructure. Accidentally including Client A's environment variables in Client B's project exposes secrets across organizational boundaries.
ConfigSync profiles solve this by creating isolated configuration contexts that you can switch between cleanly.
Creating Client Profiles
A ConfigSync profile is a named set of configurations, environment variables, and module overrides. Each profile acts as an isolated context for a specific client or project.
Each profile is associated with a directory path. When you enter that directory, ConfigSync can automatically activate the corresponding profile, switching your git email, AWS credentials, and environment variables without any manual intervention.
Isolating Git Identities
One of the most common freelancer mistakes is committing with the wrong email address. ConfigSync profiles override your git identity per client.
includeIf directive, which means it works with any git workflow. You do not need to remember to switch anything manually.Separate AWS Accounts and Cloud Credentials
Each client likely has their own AWS account, GCP project, or Azure subscription. Profiles keep these credentials isolated so you never accidentally deploy to the wrong account.
Separate SSH Keys Per Client
Using the same SSH key for all clients is a security risk. If one client's systems are compromised, the attacker has a key that also works for your other clients. Use separate keys and let profiles manage which one is active.
| Configuration | Client Acme | Client Globex | Personal |
|---|---|---|---|
| Git email | sean@acme-consulting.com | sean@globex-project.com | sean@personal.dev |
| AWS account | acme-prod (us-east-1) | globex-dev (eu-west-1) | personal (us-west-2) |
| SSH key | ~/.ssh/acme_key | ~/.ssh/globex_key | ~/.ssh/id_ed25519 |
| Base directory | ~/clients/acme/ | ~/clients/globex/ | ~/personal/ |
Environment Files Per Client
Each client project has its own .env files with database URLs, API keys, and service credentials. These must be completely isolated between clients.
Automatic Profile Switching
The most powerful feature for freelancers is automatic profile activation based on your working directory. When you cd into a client's project directory, the profile activates automatically.
This is the difference between "hoping you remembered to switch contexts" and "knowing your environment is correct." For freelancers managing three, five, or ten clients, automatic switching eliminates an entire category of errors. You never accidentally push to the wrong client's AWS account because the credentials were never active in the wrong directory.
Syncing Your Freelance Setup
All profiles sync as part of your regular ConfigSync push. When you pull on another machine, every client profile is restored with its own credentials, git identity, and environment files.
Ready to try ConfigSync?
Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.