ddtcorex

25 Aug 2026 · 5 min read

A team workflow with Govard

Onboard a team, lock environments, and run audits with Govard — plus the Desktop app for non-CLI teammates.

Govard was built for the way real teams work: a lead sets up the project once, and everyone else — backend, frontend, QA, even the product manager who never opens a terminal — gets the same environment without a two-hour onboarding call. This wrap-up of the Govard series shows how the pieces fit together into one shared team workflow.

Onboarding in minutes

The fastest path onto a Govard-managed project is three steps. Clone the repository, bring the environment up, and pull a recent database from a shared remote.

git clone [email protected]:ddtcorex/example-project.git
cd example-project
govard env up

govard env up (alias govard up) reads the project's .govard.yml, provisions the services the framework needs, and boots them. After install, govard version and govard doctor confirm the binary and the host are healthy, while govard env ps shows what is running and govard env logs tails the stack if something looks off.

The one thing a fresh clone usually lacks is data. Instead of shipping a multi-gigabyte SQL dump through chat, point Govard at a staging remote and pull just what you need:

govard remote add staging \
  --host staging.example.com --user deploy \
  --path /var/www/project --capabilities files,media,db
govard remote test
govard remote sync --plan

govard remote test validates the connection and the granted capabilities before you trust it. govard remote sync --plan prints exactly what will be transferred — files, media, or the database — so there are no surprises. Run it without --plan to execute the transfer. For the database specifically, govard db dump on the source and govard db import on your machine keep schemas and content in step. A new teammate is coding against realistic data before their first coffee gets cold. The remotes and sync workflow covers every flag and capability in detail.

Tip: keep most remotes read-only for day-to-day work. Granting db and files to everyone is convenient, but a media or db push from a local machine can clobber shared staging faster than you can ask "who ran the sync?"

The Desktop app for non-CLI teammates

Not everyone on a project lives in a terminal. The Govard Desktop app is a Wails-based GUI that wraps the same engine the CLI uses, so the environment stays consistent whether you started it from Bash or from a window.

Launch it with:

govard desktop

Inside, teammates switch between profiles — say, a local profile for daily work and a review profile that boots a heavier stack for QA — without editing YAML by hand. The app surfaces live sync status: which remotes are reachable, what the last govard remote sync moved, and whether the local environment has drifted from the locked baseline. For a designer who only needs the site up to check a layout, or a PM who wants to click through the latest feature branch, that visibility removes the "it works on my machine" gap without teaching them the command line.

Because the Desktop app and the CLI share one config, one lockfile, and the same project registry, a change made in either is visible to the other. There is no second source of truth to fall out of date, and no quiet fork between what the engineers run and what everyone else sees.

Locking env versions across the team

Consistency breaks down the moment two people run different versions of PHP, a different search service, or a different set of pinned extensions. Govard's lock commands turn "works on my machine" into "works on every machine."

govard lock
govard lock strict
govard snapshot

govard lock records the exact environment versions into the project's lock file and commits it to the repository. Everyone who runs govard env up afterward resolves to the same baseline. govard lock strict goes further and refuses to start an environment that does not match the lock exactly — useful for CI and for release branches where drift is not an option. govard snapshot captures the current state so you can return to it later, which is handy before a risky dependency bump or a framework upgrade.

The full behavior, including how locks interact with profiles, is covered in the lock workflow docs. Commit the lock file alongside your code and the whole team upgrades together, on purpose, instead of one person at a time.

CI & audits

A locked environment is only as good as the checks that run against it. Govard fits naturally into continuous integration, where the same commands you run locally become automated gates.

govard verify
govard audit

govard verify confirms the environment matches its lock and that required services are healthy — a fast, deterministic step to put early in a pipeline. govard audit runs the deeper pass: static analysis, dependency checks, and the framework-specific health probes Govard knows how to run. Both are documented in the audit workflow. For application-level confidence, govard test runs the project's own suite (phpunit, phpstan, and friends) inside the same containerized stack.

For GitHub-based projects, a GitHub Action can install Govard, run govard env up, then govard verify and govard audit on every pull request. Because the action uses the same lockfile as local development, a green check means the change passes in an environment identical to the one your teammates use — not a thinner, CI-only approximation. The CLI command reference lists every flag these commands accept, so you can tighten timeouts, scopes, and strictness to match your repository.

Where to go next

This post closes the Govard series, but the project keeps moving. The best places to continue are the source and the changelog:

Whether you are onboarding your first teammate or wiring Govard into CI, the workflow is the same one this series has built up: boot with govard env up, stay in sync with remotes and the Desktop app, lock the baseline, and verify before you merge. Thanks for following along — and welcome to a calmer local-development setup.

govardteamworkflow