On 27 October we moved kayts.ai to a new foundation. The pages look the same and say the same things, but underneath they are built and delivered in a different way. We measured the old site against the new one before writing a word about it. Here is what got better, and the two things that didn't.
What changed underneath
- Pages arrive ready to read. Each page is put together on Cloudflare's servers, close to you, and reaches your browser as finished text, so there is something to read before the scripts have loaded.
- Moving between pages doesn't reload the site. When you click from the home page to Models, only the part that changes comes over the network. The top bar and your theme stay where they are.
- Shared parts for the site and the apps. The model list, the plans and the texts in English, Polish and Armenian now live in one shared package that the site and the apps we are building draw from.
- A fresh key for every page. Each page carries its own one-time key that says which scripts may run on it. A script injected from outside doesn't have it and is refused.
How we measured
We drove Chrome through its DevTools Protocol, seven times for each site, every time with an empty cache. The old site still runs on its own address, so both were measured the same evening, from the same computer, with the same pages. To see what a phone sees, we slowed the connection and the processor the way Lighthouse's mobile test does: 150 ms to reach the server and back, 1.6 Mbps down, a processor four times slower. We report the middle result of the seven, with the range.
The first page shows sooner
On the slowed phone connection, the first text and colour of the home page appear about 40% sooner: after about one second instead of 1.7. That is the moment you see the page start, rather than a blank screen. The whole page finished loading sooner too, in 2.9 seconds instead of 3.4, and with much less difference between one try and the next.
Our measurement through the Chrome DevTools Protocol (backend/scripts/measure-site.mjs), 28 October 2026.
Show the data as a table
| Value | |
|---|---|
| Old site | 1668 ms |
| New site | 996 ms |
Clicking to another page is lighter
Moving from the home page to Models used to load a whole new page: 18 files, 24 KB. Now it fetches 5 files and 13 KB, and the rest of the site stays on screen. On a normal fast connection the new page is there in about 60 ms, twice as fast as before.
Our measurement through the Chrome DevTools Protocol (backend/scripts/measure-site.mjs), 28 October 2026.
Show the data as a table
| Value | |
|---|---|
| Old site (whole page reloads) | 123 ms |
| New site (only the page changes) | 63 ms |
Our measurement through the Chrome DevTools Protocol (backend/scripts/measure-site.mjs), 28 October 2026.
Show the data as a table
| Value | |
|---|---|
| Old site | 24 KB |
| New site | 13.1 KB |
What didn't get better
Two numbers went the other way, and we want to say so. The first visit downloads more: about 610 KB instead of 340 KB, because the code that lets pages change without reloading comes along once, at the start. And on the slowed phone connection a click to another page took a little longer, about 0.7 seconds instead of 0.5, because the slower processor has more work to do to swap the page in place. The largest image or block of text on the home page appears at about the same time as before, at around two seconds on the phone connection.
Those two are the next things we want to shrink: sending less code on the first visit, and starting to fetch the next page before you click.







