pesi.pl – a new version of the website

The website of the company I work for: from Laravel to WordPress with the block editor, so that marketing can publish posts on their own. Lighter, shorter on a phone and with animated 3D cubes.

  • WordPress
  • block theme
  • PHP
  • Three.js
  • CSS scroll-snap
  • no jQuery

Claude Code wrote the code – I planned the whole thing, decided on the layout and components and checked every view. The "before" results were measured on a copy of the old site from the Internet Archive.

The new pesi.pl website – first screen
  • 70 → 99home page performance in Lighthouse on mobile
  • 2 MB → 37 kBof JavaScript on the home page on mobile
  • 18 → 12phone screens to scroll through on the home page
  • 100accessibility, best practices and SEO in Lighthouse on all measured pages

What I built

pesi.pl is the website of the company I work for. The old version ran on Laravel, and every change – including every blog post – was pasted in by a developer, not by marketing. I rewrote it in WordPress with a block theme, so that marketing can publish on their own and follow changes on the site more easily. Claude Code wrote the code. I thought the whole thing through so that I wouldn't repeat the mistakes from the Laravel version, decided on the layout and components and checked every view. I also moved the case studies and all the blog posts so that they kept their previous look.

What mattered most to me was that the site is light and doesn't go on forever on a phone – the footer has the contact details, so the way there should be short.

Before and after

Drag the slider – the old site is on the left, the new one on the right.

The new pesi.pl website – first screen
The old pesi.pl website – first screen
Before · the Laravel siteAfter · the WordPress site
MeasurementBeforeAfter
Lighthouse performance7099
JavaScript2,055 kB37 kB
CSS58 kB16 kB
Page size2.6 MB362 kB
Requests13147
Total Blocking Time178 ms0 ms
Page height (px)14,55310,058

Home page on mobile, medians from 3 Lighthouse runs. Before – a copy of the old site from the Internet Archive (17 July 2026), sizes without the archive's scripts, times and scores approximate. Measured before analytics was added – with Google Tag Manager, the home page scores 99 (with consents) and 100 (without) in Lighthouse in Chrome.

Solutions in detail

Things from the code that show best how I work.

  • Marketing publishes on their own

    Before, every change and every post was pasted in by someone from the front-end or back-end team. Now posts are made in the block editor, and an article can show who its author is.

  • Carousels instead of long lists

    On phones and tablets, grids with many elements are carousels built with CSS scroll-snap. You can see part of the next slide, and the page is shorter – the footer with the contact details is closer.

  • 3D cubes that don't slow the page down

    A normal image loads first, and the Three.js scene only after the page has loaded – only on wider screens and not when reduced motion is on.

  • Scripts only when they're needed

    reCAPTCHA loads the first time someone uses the form, the YouTube player after a click on the thumbnail, and the menu animations on hover.

← All projects

Got a project in mind?

Or looking for someone to join your team? Write a few sentences – I'll reply within 72 hours.

I'll use your name, email and message only to reply to you. Details in the privacy policy.