SiteBox JAM hosting
SiteBox JAM Hosting a platform that comes with a complete universe or client and server side resources to provide a predicateble environment for building JAM stack websites powered by modern tools like React.js, or Gatsby.js. Unlike traditional websites, SiteBox provides you a way to build web applications, which are a hybrid of regular websites and mobile applications to deliver exceptional user experience on any device. From a technical point of view SiteBox consist of the following components:
- Infrastructure to keep WordPress back-end and Gatsby.js front-end in sync,
- Microservices, known as SiteBox Satellites, to handle two-directional communication between back-end and front-end without exposing a WordPress instance to visitors,
- Framework, known as SiteBox Framework, to expose the most popular of business use-cases ready to use by development teams,
- API, known as SiteBox API, to manage websites.
When we designed the SiteBox foundation as well as all side services, we were focused on accomplushing the following goals:
- Adjust websites to modern devices, so on to desktops, they work seamleslly on tablets, or smart phones. On top of a industry standard, responsive web design, it covers the problem more in details and stress out a strong optimization to deliver exceptional user experience on any device,
- Reduce time of loading to minimum, so the webiste loads quicker than in the classing approach, reaching sub 100ms results for inner transitions considered as end-to-end process, not only data transfer between a server and a browser,
- Imitate native app behavior, so a website behaves more like a regular smartphone application rather than a regular website,
- Improve security by denying access to non-critical services limiting ability to find any vurnelabilities on your websites,
- Improve scalability and cross-region availability by taking a centralized data source out of equation,
- Align with native solutions of WordPress and Gatsby to extend their functionalities rather than reinventing the wheel by replacing default features of systems in a funky way.
In the final product, we are in position to provide a complete set of services required for JAM stack websites rather than some part of it, expecting the agency or client by itself to transform it into a consumable solution, it comes with a long list of benefits listed below.
Enhanced Security
As mentioned in general description of decoupled approach, SiteBox uses WordPress as a data provider. It is not exposed to visitors and it is accessible only by authenticated individuals. The authentication itself is performed on an edge, so unauthenticed requests do not even reach WordPress – as a result crawlers that scan the web looking for vurnelable WordPress installations will not even aware of the back-end existence.
Communication channels
Data is transferred between back-end and front-end in a single-way and well-defined communication channel. The data cannot be consumed in any other way, by any other application as it is transferred within a dedicated VPC.
Data of a front-end application is delivered to the visitors mostly as static files. The only exception is microservices API, which is known also as SiteBox Satellites. Each of them is developed to handle a specific action, so in the end they reduce a surface area for attacks. The idea is explained more in detail in the dedicated section
Plug-ins
WordPress instance, out of the box, comes with a set of battle tested plug-ins designed and developed for SiteBox JAM Hosting use only. All of them follow the best industry practises. WordPress is definitely considered as a safe CMS, but in the end it is as save as its plug-ins which seem to be a weakest link. Considering the fact, SiteBox Framework and its allowed list of plug-ins cover the most popular use-cases, there's no need to enable any other plugins, it significantly reduces a risk of an attack. Despite the fact, we recommend to use a default WordPress set-up, your developer teams will be capable of applying any changes, which include a custom list of plugins.
WAF
Both front-end and back-end applications are protected by a web application firewall. It is in fact a long list of known attacks updated day to day. Suspicious requests are captured at the edge level, so they are not executed on an actual website, microservice or a dashboard.
Microservices
Sometimes connection between front-end and back-end application is a must-have. All dynamic actions, such as forms handling, or search experience functionality need to connect with a server-like service to process some actions outside the front-end experience. SiteBox JAM Hosting introduces SiteBox Satellites to handle them, without exposing a WordPress instance to unauthenticated visitors.
On top of a single-way communication channel betwen WordPress and Gatsby instance. Front-end application, whenever it needs to hydrate with a dynamic data, calls one of target-oriented Satellites. The request sent to a microservice is processed, sanitised and validated and then passed to a WordPress instance. If it returns a response, it is processed by a microservice and returned back to the front-end application.
Back-end experience stays fully protected, as all communcation is performed through an encrypted channels stays within a VPC which just a strictly approved services within the SiteBox Infrastructure can use.
Performance
pre-rendering
pre-fetching
no server calls during
Editing experience
Gutenberg has to work.
Release based editing
As mentioned previously, backend and frontend applications are separate to each other. Content in the WordPress instance can be updated as it would be any other classic WordPress implementation. The difference is, changes are not reflected on a front-end website application automatically. It is considered as a release based editing experience.
This is caused by the fact, the front-end application needs to pre-render content from the back-end to reflect changes for all visitors. To initiate the process, editor is expected to trigger a deplyoment which updates front-end experience with the latest changes up-to-date with the data provider.
The process returns a dedicated Gatsby.js and React.js powered application with an injected WordPress data. From now on, it will be considered as a release – a point-in-time snapshot of a WordPress content up-to-date with a state when a deployment was triggered.
SiteBox Infrastructure lets you decide, which release (so a point-in-time snapshot of a WordPress data injected into a front-end application) is attached to the external domain.
Releases are a convinient approach meant to address different issues:
- Release can be rolled-back in no time to the previous one, once requested by the client,
- Release can be previewed before they are officially exposed on the visitors-facing website,
- Release can be used to test new functionalities separately to the visitors-facing website.