Simpel Web Architecture
Full Steam Ahead
IT is often seen as slow and hesitant. The reason can be strict security requirements and therefore long evaluation phases. It was important to us from the outset not to be tied to outdated tools and methods. This is the only way we are still able to meet today’s requirement of rapid iterations during software development.
Features Over Dilligence Work
In these times of requirements changing faster and faster, it is a core competency to focus on required features and work that creates value. Repitive work leads to frustration that can be avoided.
This basic challenge can be solved through the concept of monorepositories. Similar software projects are often created and maintained separately leading to unnecessary recurring tasks. By using a monorepository these code archives fuse into each other and many tasks have to be done only once. We decided at the beginning to work in that way and therefor use Lerna to maintain our monorepository. For this reason, we decided to go down that road and use Lerna to maintain our monorepository.
The WordPress ecosystem can be powerful because the feature list of the CMS can be extended through plugins to anybody’s liking. But this advantage can also cause challenges when it comes to version updates of the WordPress core, themes and plugins.
For that reason, we only use a small number of plugins. These plugins can likewise not impair the websites availability and functionality at any time since the static website and the data source are logically separated. The most important plugins are:
- Advanced Custom Fields PRO – custom fields
- WPGraphQL – offer content through GraphQL
- WPGrapQL for Advanced Custom Fields – also includes custom fields in GraphQL queries
By reusing components across our costumers’ websites, it only makes sense to also use the heavily ACF-customized WordPress backend in a way that reduces redundancies. This is possible by using a WordPress multisite, which brings a variety of advantages:
- Centralized installation and updates of plugins
- Centralized theme updates – meaning new fields and content types
- No additional CMS hosting costs for our customers due to the use of subdomains for each customer access
- Backups are automated and happen at a central place
Meanwhile, our (sidyes, robkrause) version control is done in GitHub. We heavily use the CI possibilities of GitHub Actions. Requirements for merging and deployment are a successful build, snapshot tests, linting rules, visual regression tests and of course a code review. Besides, the WordPress theme gets deployed automatically. As for the Gatsby monorepository this step happens through Netlify. Dependency updates are prepared through the Renovate bot and partially merged automatically.
Hosting can cause enormous costs. Companies like Netlify took this challenge. Many basic features are included “out-of-the-box”: setting up the runtime environment, configuration of SSL-encryption, and the deployment configuration are not required. We heavily modified the deployment in order to build only projects that are affected by code changes. This certainly means a vendor lock in – a fact that we gladly accepted because we are huge fans of the ever-growing Netlify ecosystem. Some more features that we use and like a lot:
- GUI that allows for easy adjustments, e.g. DNS settings and environment variables
- Netlify Forms – form handling
- Netlify Plugins, e.g. Post Build Asset Processing
- Deploy Preview
Our WordPress Multisite and its database are hosted by a German provider.
Full Throttle All The Time
We are very happy with our architecture, but also condition ourselves to keep evaluating and using new possibilities in the rising field of Jamstack moving forward. Feel free to contact and discuss our technology decision with us via mail or on Twitter. Of course, you can also benefit from these advantages of modern websites and webapp development. Get in contact with us at any time.