The ideal tech structure for business-critical websites
Business-critical websites are more involved than brochureware sites, so you shouldn’t approach build in the same way
Suppose an innovation business builds a website using WordPress as its Content Management System (CMS). It’s a typical brochureware site with forms pushing data to aCustomer Relationship Management (CRM) system.
After launch, the marketing team decides to add a subscription service and integrate it into the CMS. The service gains traction, and the team decides to charge for it, adding a payment function. Subsequently, they organise events and integrate a booking system into the CMS.
A few months later, the team notice a significant decrease in website responsiveness, even though a Google speed test indicates that page load times are within acceptable limits.
In this example, the team has unintentionally created a fight for resources between functionality and reduced response times. Furthermore, they may also have added security vulnerabilities if they used plug-ins to handle critical services.
The ‘everything in the CMS’ approach is generally fine for websites with few requirements. But a business-critical website like the above example will run into problems unless they separate services via an enterprise structure.
Remove conflict in your CMS - The business case for separation of services
In an enterprise tech structure, intensive data services like user log-in, subscriptions, and payments are handled by frameworks external to the CMS. The benefits are:
- There’s no conflict in the CMS or decline in performance, since all services have dedicated external resources.
- Customer data is separate from the CMS, reducing your cyber-attack surface.
- You can add, remove and scale services as needed without redeveloping the website.
The ideal enterprise structure looks like the diagram below. Read on to learn about the CMS, Digital Asset Management, Business Logic, and Customer Data Platform.
The CMS should only manage content
WordPress – or any generic CMS – should only be used to manage content and not to run your entire enterprise website.
…and that’s it.
In our view, it typically doesn’t matter which CMS you choose provided you only use it to manage front-facing experiences like a website, microsite, or app.
You should never use the CMS of a business-critical website to do any of the following:
As a digital asset library: Storing images, videos, and PDFs in your CMS is inefficient, and you risk losing access to them if your website experiences technical difficulties.
Run intensive data functions: Bookings, registrations, logins, payments, etc., are intensive operations requiring your website to interact with your CRM, which is not designed for fast data transfer and will slow your website down.
Store customer data: Saving customer data within your CMS creates a large attack surface. If someone hacks your website, they have access to everything.
It’s so important that we’ll repeat it…
Never store customer data in your CMS. It’s a massive security problem.
Your CMS is your front door and everyone’s banging on it trying to get in. If your CMS only contains content and someone smashes through the door, all they’ll find is content. Everything else is super secure in dedicated services.
Create a separate digital asset library
We suggest you don’t store digital assets in your CMS. Instead, we recommend using a dedicated Digital Asset Management service such as Amazon Web Service (AWS) for the following reasons.
You’re ready for generative AI search: If you want to create information-driven experiences using AI, you need a digital asset management system to trigger the necessary data processing automation. Theoretically, you can do this within the CMS, but it will severely impact website performance.
Implement good brand management practices: Give all team members access to the same assets. Keep files up-to-date and version-controlled, and update assets on all front-facing platforms simultaneously.
Make assets searchable: You can automate asset tagging, creating a more efficient search than your CMS or internal file structure.
Automate alt tags and image optimisation: Never worry about a colleague uploading a large file to your website or forgetting to add alt tags with image optimisation and AI-generated tags.
Activate AI image manipulation: We’ve found AI to be most helpful when integrated into workflows. We can incorporate AI into your digital asset management system so you can automatically fill image backgrounds. This tool has proven particularly useful for event teams where photos don’t typically fit the available space.
Cost savings and green data storage: Hosting assets via your CMS will incur higher storage costs than services like AWS. If you choose the right data centre, such as AWS in Ireland or the UK, your website will also use less carbon, which can be documented in your company's carbon reduction plan.
Separate business logic from the CMS
Business logic is anything that deals with functionality and data, such as login, subscription management, or transactions.
If you’re using a platform like WordPress and plugins, these functions can be moved onto a service independent of your CMS - we use Symfony.
The advantages of separating your business logic include:
Speed: Frameworks like Symfony process significantly more requests per second than WordPress.
Security: Each service has its own authentication and firewall.
Scalability: Services can be scaled independently from the CMS and each other without affecting performance.
Add a customer data platform between the CMS & CRM
The customer data platform improves the responsiveness of your website by creating a buffer between the CMS, CRM, and other third-party marketing integrations - we use Apache Unomi.
With an all in the CMS approach, your website can only ever be as fast as your CRM. In our experience, it can take over 10 seconds to log into a website that’s pulling data from a CRM, which is a terrible user experience.
The customer data platform caches crucial customer data rather than pulling all data from the CRM at once. It can handle multiple requests without slowing a website down and works in the background to pass data between the website and CRM.
This approach provides two crucial benefits to innovative corporations:
1. Real-time personalisation is only possible with a customer data platform: You need fast data transfer to personalise web content live based on user interaction.
2. Build a progressively detailed customer profile. Apache Unimo tracks users over time and will associate events performed by users with a profile. With this data, you can understand visitors better and optimise customer journeys accordingly. If a user registers for anything, Apache will merge data into a singular profile.
Where feasible, it’s better to understand your end game from the beginning and put an appropriate structure in place, rather than replace your site after six months when it’s underperforming.