You will login to WP Engine as: newsletter@woodslawyers.com, unless you have your own account. The login credentials are stored in LastPass.
If you don’t have access to the newsletter email account and are not using your own account, send a message to Marketing -> General in Teams to get the login verification code from someone who does.
Once logged in, go to the GitPush page of any environment:
There is a Woods & Woods organization on Github which Chris and Justin are members of. As of 11/26/2025, only the WordPress repo is under that organization. Other custom apps and tests are in Chris' account. Standalone custom apps deployed to Netlify need to be in a personal account in order to qualify for their free tier. Ideally all code repos would be under the organization, but we also want to control costs, so this is how we've decided to work for now.
https://github.com/Woods-Woods
https://github.com/Woods-Woods/public
https://github.com/chris-woodslawyers/woods-offline
Forms monitor: https://github.com/chris-woodslawyers/woods-dashboard
Asana viewer: https://github.com/chris-woodslawyers/asana-backup-viewer
Create an SSH key according to the instructions at: https://wpengine.com/support/git/
Here is the command I used:
ssh-keygen -t ed25519 -C "chris.smearing@woodslawyers.com" -f c:\Users\chris.smearing\.ssh\wpegitkey
Don’t worry about using Git bash, the commands work the same in Powershell on Windows. At least they should at the time of writing this.
My config file is located at c:\Users\chris.smearing\.ssh\config and has these contents:
Host git.wpengine.com
User git
Hostname git.wpengine.com
PreferredAuthentications publickey
IdentityFile c:\Users\chris.smearing\.ssh\wpegitkey
IdentitiesOnly yes
Host github.com
User chris-woodslawyers
Hostname github.com
PreferredAuthentications publickey
IdentityFile c:\Users\chris.smearing\.ssh\github
IdentitiesOnly yes
Host *.ssh.wpengine.net
IdentityFile c:\Users\chris.smearing\.ssh\wpengine_ed25519
IdentitiesOnly yes
Copy this config file and modify for your directory, key, and filenames. You can see in this example, I also added a key to Github using similar techniques.
Once set, you can test your connection to WP Engine with the following command:
ssh git@git.wpengine.com info
If you’ve set up your key in all 3 environments, you should see something like this returned:
hello production-csmearing
R W woodslawye3dev
R W woodslawyerstg
R W woodslawye2stg
I also have a key for using command line tools to interact with our WordPress installation with the WP CLI tool (https://wp-cli.org/). This tool is installed by default in Local.
Create the key with the following command:
ssh-keygen -t ed25519 -C "chris.smearing@woodslawyers.com" -f c:\Users\chris.smearing\.ssh\wpengine_ed25519
Substitute your email and path as required. Add to the WP Engine user account profile at: https://my.wpengine.com/profile/ssh_keys
https://filezilla-project.org/
Import this XML file to get immediate access to the sites:
F:\Marketing Department\Website\Developer\FileZilla.xml
https://code.visualstudio.com/
The production environment should only be updated from the main branch. The main branch should only be updated from the staging or development branches after successful testing in one of those environments.
Staging and development are two separate environments, but we can treat them equally as staging environments. As such, there are staging and development branches that should be used as the source when testing new features or bug fixes.
New features
When developing a new feature, the name should be of the format: feature/<description>, where description is concise and consists of 2 to 3 words separated by hyphens. For example:
feature/sticky-nav : when developing the fixed top nav bar
Bug fixing
When fixing something broken, the name should be of the format: bug/<description>, where description is concise and consists of 2 to 3 words separated by hyphens. For example:
bug/datepicker-formatting : when fixing an issue with the output of the datepicker component.
It is recommended to merge feature or bug fix branches into either staging or development for extended testing. The server and plugin set is slightly different than local, so it is best to get as close to the production environment as possible.
After a feature or bug fix is verified and deployed to production, it is OK to delete the feature or bug fix branch. This keeps your tree tidy for GUI users.
Asana Backup Viewer and Forms Monitor Dashboard are both hosted on Netlify.