Our tech stack
Studio 24 builds websites that are accessible, user-centered, respects data privacy, sustainable, and maintainable.
- Accessible - websites are designed to work for everyone, regardless of ability or access
- User-centered - we create websites that meet real user needs
- Data privacy - personal data should be secure and people given choice over how their data is used
- Sustainable - we should minimise our carbon impact and build in more sustainable ways
- Maintainable - websites have a long shelf life, we need to build them to be easy to maintain
We achieve this by sticking to standards-based technologies and the open web platform (HTML, CSS, JavaScript, Web APIs).
We have an HTML-first approach and focus on building websites and web apps using server-rendered technology (using PHP) instead of JavaScript-driven single page apps (SPAs).
We believe this is more robust, accessible and more efficient to work with. Server-rendered web pages is how the web is designed to work. Using the request-response cycle is reliable and easier to maintain.
We use Amplify as the starting point for our front-end development work. We don't use front-end frameworks, since they are often more complex, bloated and can come with accessibility issues. Maintainability means reducing front-end complexity.
We use the PHP for delivering HTML and complex functionality. PHP is a proven and well supported technology and has an excellent ecosystem of tools to help us build sites.
Where possible we use caching to increase performance (e.g. HTTP caching to cache entire web pages if the content is the same for everyone).
We focus on building robust HTML-based websites and layer on JavaScript using progressive enhancement for client-side interactivity.
The general rule is users must be able to read content without JavaScript.
We develop on current supported versions of PHP. We use Laravel to help us build web applications. We also use Symfony (for tools and more custom apps). We use Composer to manage PHP packages.
Where possible we use the Twig templating system so we have consistency across projects (though not if it makes our work harder).
We normally use MariaDB or PostgreSQL for database storage.
CMSs we currently work with are WordPress and Craft CMS. We support some Drupal websites, but we don't currently develop new sites in Drupal due to the platform's complexity.
Current supported versions for new projects
As of the time of writing:
- PHP 8.2 or 8.3
- MariaDB 10.11 or PostgreSQL 15 (MySQL 8 is also OK)
- Laravel 9
- Symfony 7
- Node 20 (LTS version used for NPM scripts)
Our policy on supported versions of packages
It's our policy to either use Long-Term Support (LTS) or currently supported versions of software. You can check this on https://endoflife.date/
This means we need to keep PHP and JavaScript packages up-to-date, GitHub can provide automated alerts for this. This is especially important for our public sector clients who run regular security penetration tests.
Technical support packages should cover minor updates for software. Major versions may require upgrade work, which we charge clients for (e.g. Laravel 9 to 10).