I wanted to write this because this question comes up quite a lot when it comes to development. Essentially, there's always this idea of "building on top of what you already have". However, if you've worked with agencies before, you'll know that the most likely response is: "we need to rebuild".
Rather than playing devil's advocate, I'll explain the reasons behind "we need to rebuild" and why it appears more common than not. But before we can even talk about that, we need to discuss development debt.
Every project is different in terms of development debt. Development debt can range from just a couple of files that are outdated to an entire code base where 90% of the code is deprecated, or even worse, abandoned. Generally, as a rule of thumb, when we look at code bases, most code bases are roughly 20% to 50% outdated. The lower on the scale, the more likely it is that we can actually do a migration and it will be performant.
The problem with projects like this is that performance is the main thing you are fighting for, and you cannot possibly get a website with good core web vitals if its code base isn't split correctly. The reason for doing this is simply performance, and performance alone. Why is this important? Well, the average attention span has significantly, no, I'm not going to cite any scientific source, but everybody knows it has. We've changed from being able to handle 5 seconds of waiting to 500ms. It's really that significant.
This brings us to the main point of this blog post. When it comes to modern websites, it's a totally different ballgame because you have to segment the website and find efficient loading strategies for each respective part of the website. Now, if a website has already been set up and built, this means that it's far more trouble to do this retroactively. It's not that it's impossible, but it's a lot more work and a lot more time. The other side of this is that it more than likely means you'll have to rewrite the data fetching, querying, and information parts. So you're effectively starting from scratch anyway, except with a massive amount of overhead if you're doing this with an old code base.
The good news is that we've been building websites for a long time, and we have the foundational template, called turbo start
, to build much larger websites. So we're effectively cutting the main setup down to roughly about three or four days compared to the two or three weeks it would take from scratch.