The majority of our WordPress development projects fall in one of the three categories:
- WordPress SaaS/Multisite Development
- Large WordPress Website Development
- Extensible WordPress plugin/framework Development
WordPress SaaS/Multisite Development
Our WordPress SaaS and Multisite development projects require the largest number of server and development environment customizations and initial time for setup.
Our code is on GitHub or another VCS provided by our client. We do provide the server architecture on Amazon or Digital Ocean and include the full stack, including:
- email setup
We do integrate Zabbix as a monitoring platform in order to keep an eye on the server utilization and potential peaks in memory consumption.
We use custom local development environment or VVV (Vagrant-based) in order to operate and develop locally.
We set up a staging server that replicates the server stack provided by our Ansible development scripts so that we could verify the latest changes before deploying to production. Additionally, we can integrate an additional test server if we need to integrate 3rd party APIs that don’t behave properly locally (or just require an existing domain name).
The deployment happens via Capistrano which allows us to prevent large commits from overriding the website partially over time. Also, Capistrano allows for a very quick rollback so reverting to the previous version is instantaneously.
We can use the production database copy for staging testing, or a clone of it as needed. Also, for Multisite we strip down the large database copy (for size reasons) so that the local environment is faster and easier to work with. The media is deployed on S3 or another 3rd party server as read-only so that everyone can use sample media.
Large WordPress Website Development
Our large WordPress websites are built with a Production and Staging servers, similarly to the SaaS working model. We do provide a main GitHub repository for the project or a root repository with submodules for any additional plugins or add-ons that need to be synced in the main environment.
Design-wise we have a /static folder with all of the static resources that we could refer to (and need a sign off on) before starting the frontend work. This prevents us from applying additional features later in the process, and avoid regressions and unexpected bugs.
Our staging server is password protected which prevents any search engine bots from crawling it, or users potentially accessing the test version of the portal.
We also add monitoring services for uptime and file updates on the file system. Backup is included either via our automated tools, or from the hosting provider that we use.
Extensible WordPress Plugin/Framework Development
When we work on extensible solutions – modular plugins or frameworks – we do provide a core version with the essential features on GitHub. Add-ons and extensions are provided separately, each in a separate repository or in a collective one (if needed) with all extensions.
We use a master GitHub branch for development and feature branches for any major changes during the development process and post-launch. Also, we tag the releases so that we could ship different versions when needed, or merge specific branches and updates to older releases as well.
Our modular solutions include a lot of WordPress hooks – actions and filters – so that the main components are easily detachable or modifiable. This allows for editing dropdown values, adding extra metabox options, or interfering with the standard flow from external extensions.
Some of our frameworks include a library-based modular infrastructure that allows for drop-ins – code snippets placed in the /modules folder that are activated by default, which prevents them from being disabled by mistake or overridden after an update.
Our work process includes a percentage of project management and QA work for each of our projects. Our dedicated PM makes sure that the resources that we need are available, the team is working as per the requirements and we follow the time frame as expected. Our QA is iterating through the project requirements and the project milestones and reports side effects or additional features that need to be fine tuned.
If you are looking for a professional WordPress solution for your business, let’s discuss it.