We make eco-sustainability a fundamental goal, through production processes and technological choices. We adopt optimization techniques that lead us to high-level results.
Island pattern
We use the island pattern to have lightweight components; the site's architecture consists of services that turn on only when needed. In questo modo non sovraccarichiamo il sistema e la struttura rimane agile e snella. Ad esempio, in una pagina prodotto, carichiamo gli articoli correlati a fine pagina solo quando l’utente li visualizza nel browser.
Aggressive caching
The content is often the same for multiple calls, so why don't we cache it? In this way, we reduce time and costs by computing the content just once. Caches can be applied at all levels (database, server, and browser), but before doing it we must pay attention to the data update requirements. A significant challenge tha leads to great benefits.
Lean and optimized code
We write only the necessary code and optimize it progressively. We carefully consider to introduce new libraries and measure the performance impact of every piece of code. From lessons learned, libraries that do too many things should be avoided, you had better choose lean and targeted solutions. Async programming allows us to parallelize tasks and reduce the waiting times during which the server processes information.
Right content in the right size.
Images are one of the most environmentally impactful content, that's why we optimize them in high-compression formats.
If there's a small image on the page that can take up just a few Kilobytes, we automatically process the original, that might weigh several Megabytes. We optimize images for the specific contex, once they are called.
Bundling and minification
Many websites still overwhelm the browser with dozens and dozens of small files, even if it's much more efficient to package all the files into a single call using the bundling technique. It's a bit like going to the post office ten times to pick up as many packages, isn't it faster to wait in line at the counter just once? By doing this, we avoid reaching the concurrent call limit and slowing down the page. We can reduce package weight by minifying the code once we have retrieved it. Minifyng the code means to remove everything that makes the code readable to a human but is completely unnecessary for a machine, such as spaces, line breaks, long variable names, comments, etc.
Since obsolescence times are very short in the digital world, but techniques are constantly changing, we implement a progressive optimization of the architecture, monitoring our projects with dedicated tools, like Googlle Lighthouse, Chrome DevTools, Karma Metrix e Website Carbon. By doing it, we are able to control their levels of consumption and CO2 emissions.