Client technology stack
Our client technology stack is our preferred set of tools for doing client work.
Concentrating on less tools means there is less for our staff to learn, and makes development and support easier and quicker.
We prefer tools that will be maintained long term. Typically this means that they have a large community around them.
We want them to be popular and well known with our clients so that it is easy for them to use them.
Technology moves on and this list is updated from time to time.
Our current choice of tools is:
- WordPress for content management
- CiviCRM for CRM
- Vue for frontend development
- Docker for infrastructure management
- AWS SES for email delivery
- Stripe for card payments
- GoCardless for direct debit
We have gone to more details on associated tools and best practices for each of these tools below.
CiviCRM
TODO
SearchKit
TODO
Blacklisted extensions
We prefer not to use Dataprocessor, because it overlaps with SearchKit.
WordPress
WordPress is a globally popular content management system (CMS) that has been around for years and is under active development. It is not likely to go away any time soon.
The core functionality is very simple. While more technically sophisticated CMS exist, we think that nearly all non profit content management needs can be met by this simple model, and if you think that they can't, 'you are doing it wrong'.
There is an active community of CiviCRM users developing CiviCRM related functionality for WordPress and although there are gaps compared to Drupal, we think it makes sense to contribute to filling these gaps rather than use Drupal, which is overly complex and losing market share, especially in recent years.
There is a separate page on WordPress configuration.
Blacklisted plugins
We prefer not to use Advanced Custom Fields as this functionality is better provided by the Gutenberg editor, and advanced custom fields does not integrate nicely with CiviCRM (whereas the Gutenberg editor does).
WP Mail SMTP is no longer used. Instead we send mail directly via Sendmail (see client-wide/#46.
Standard plugins
| Plugin | Short description | Where to use it |
|---|---|---|
| WordFence | Suite of security tools, including 2FA. | All sites |
| Welcome Email Editor | Edit the standard notification emails sent by WordPress. | All sites |
| User Role Editor | Ability to manage users and roles | All sites |
| User switching | Switch users | All sites |
| Yoast Duplicate Post | Duplicate a post | - |
| Custom login | Customisation of login screen. Unreleased plugin created by Kurund (needs to be customised per client). | All sites |
If you are creating a form, it depends on the requirements of the site. If the form integrates with CiviCRM we would use CiviCRM Form Builder. Otherwise pick either (@TODO choose one rather than recommend either):
CiviCRM integration plugins
| Plugin | Short description | Where to use it |
|---|---|---|
| CiviCRM Admin Utilities | Better integration between WordPress and CiviCRM | All sites with CiviCRM |
| CiviCRM Member Sync | Syncs CiviCRM membership status to WordPress roles | Sites where access is controlled by membership status |
There are two relatively new plugins that provide Gutenberg integration. We should evaluate these and contribute our improvements where required:
Docker
TODO
Add some notes on how to keeping up to date with the tech we use, e.g. subscribing to blogs like the WordPress developer blog.