Message from main engineering: Our tech stack - what do we use and what do we rely on?
In the third post from our blog series on the relaunch of our corporate site, we would like to give you a first look behind the scenes. In the last post, Sebastian described the path to the design and explained how we were able to further develop and test our ideas with a static prototype.
As Julia described at the beginning, we made a conscious decision to start completely from scratch. The next step was therefore to set up a new TYPO3 instance. So let's take a look at what components our new ship consists of ...
The engine: TYPO3 11.5 and PHP 8.0
The first impression after we finished the initial setup: TYPO3 11 is ... damn fast. Since, for example, the complete request processing in the frontend has been modularized in the meantime (the entire process consists mostly of PSR-15 components), the backend and frontend load much faster compared to the previously operated version 8. Working with the system is much more fun and feels much more fluid. The performance measurements - more on that later - confirm this impression.
In combination with PHP 8.0, which we are using and which again gives a significant boost in terms of speed, TYPO3 11 can fully show its strengths and already delivers good to very good loading times out-of-the-box. It should be noted that we have not yet (as of April 2022) implemented any major measures in terms of performance optimization. So there may even be "room for improvement".
Some of you may have asked yourself: "Why PHP 8.0, when there is already 8.1? Well, the reason is simple: When we started in the fall of 2021, there was no stable release of PHP 8.1 readily available. There are currently no real blockers, all components used should also be compatible with PHP 8.1.
Sentry, our sensor phalanx
Right at the start of the project, we decided that we wanted to do as much "right" as possible with our corporate site. By this, we mean, for example, that we want to notice any errors that occur as quickly as possible - ideally even before a user notices the problem. We also wanted to monitor the performance of the site and additionally observe the development of the Core Web Vitals.
Both are provided by Sentry, an analysis platform for errors and performance of web applications. There is more to say about Sentry (maybe later ;-)). Only this much: it fulfills many essential functions for us.
- Occurring errors are enriched with as much background information as possible (used browser/OS combination, what exactly the user did and what exactly happened).
- For errors in the backend, log messages from TYPO3 and the complete stack trace are added. For JavaScript errors, the same goes for both the error message and the stack trace. If source maps are available, Sentry can also deal with minified code in a useful way.
- The real killer feature: Sentry can group or summarize recurring problems. This allows you to focus on the important stuff and not get the same errors reported all the time. Still, each individual case remains accessible. However, the function makes it possible to find accumulations, e.g. issues that only occur on Firefox running on Windows 8.1 in the "Career" section.
- Errors can be classified and routed by severity. Less important ones simply run into Sentry and can be dealt with. Urgent errors (exceptions on start and typical entry pages) can alert directly through Slack messages if desired.
- A Jira integration enables ticket creation "at the click of a button" - directly with useful info and context to the issue in Sentry. This results in significantly better tickets that finally contain all the info needed for analysis right from the start 😉 Saves mantra-like inquiries in tickets and relieves everyone involved.
- Through integration in front- and backend, Sentry can measure render times and display render graphs. Since we can run the tool on our own systems, this is privacy-compliant and data-saving because it is anonymous.
Solr - index and full text search engine
OK well, admittedly, now I ran out of Star Trek metaphors. Nevertheless, Solr as an essential component of our ship ... pardon, software stack can't be missing, of course. Fortunately, in time for the launch of our site, the team around Olivier Dobberkau has advanced the work on the Solr integration "EXT:solr" so far that it also runs in the current LTS of TYPO3 and under PHP 8 and we can at least use indexing and search. The add-ons (EXT:solrfal and EXT:solrconsole) are already available in a few days old pre-release versions, a test is still pending here.
First and foremost, we offer a full-text search of the entire content of the site using Solr. What is new is that this also includes a search in the posts in our blog. In addition, projects and customers from our “References” section can be searched.
We'll explain exactly how we did it in an upcoming blog post. Until then: stay tuned and feel free to check out our previous projects.
Please feel free to share this article.
Comments
No comments yet.