A few weeks ago, PP15.ONE was slow. Really slow.
The main page took almost 13 seconds to load. The map screen took even longer. Google PageSpeed gave the main page a score of 53.
After a focused performance pass, the same page now scores 92. Page load is under one second. The map loads in one second too.
That is 14x faster, on the same infrastructure. No upgrade. Just better code.
Here is what actually moved the needle.
The biggest win was the map. The old version pulled tiles from one source over one connection. On mobile this meant tiles arrived one at a time. The new version uses a different tile provider spread across four parallel connections. That alone dropped the map load from 13 seconds to 1.
The second change was switching how the map renders. The old version drew every marker as its own element, which adds up fast with hundreds on screen. The new version paints them all in one pass. Smoother, faster, less work for the browser.
A small CSS trick helped too: nudging the map onto the GPU. Panning went from a stuttering repaint to a smooth glide.
The next biggest win was caching. Most files the platform ships never change between visits. But the browser was re-checking them every time. A small config change told the browser to trust those files and skip the check. Repeat visits now load almost everything from local cache.
Cold starts were the next problem. Even on a paid plan, a server can go cold after a deploy. The first user after that pays a 3 to 5 second tax. Two simple pings — one from the server to itself, one from the browser to the server — keep the connection warm. The first user now sees the same speed as the hundredth.
The smaller fixes pulled the SEO score from 82 to 91. A clean robots file. A meta description tag that was completely missing. Accessibility fixes for icon buttons and image dimensions.
The headline number is 14x faster page load. But the most useful one is Total Blocking Time going from 330 milliseconds to zero. That is the gap between the page looking ready and the page responding to taps. Zero means the page feels alive immediately.
The biggest lesson: performance work is shockingly high-leverage when you actually do it.
None of these changes took weeks. The map rewrite was one afternoon. The cache fix was ten minutes. The keep-alive pings took twenty.
Performance work feels expensive because it is invisible until you do it. Nothing in the code complains about a missing config file. No test fails because tiles load slowly. The slowness is just there. It taxes every user. Until someone looks.
Live: https://pp15.one
What would you change? Any feedback welcome.
Top comments (0)