You probably don't need a single-page app
Yes you actually do. At the very least you should build your web app with technology that makes it fairly trivial to move over to an SPA.<p>MVC is a mistake. Read that again. MVC is a mistake. It&#x27;s not a good paradigm to write web applications in.<p>SPA&#x27;s are not complicated. They do not take longer to build. They defacto are often way more responsive than any server side monolith that gets built. Because developers who buy into an archaic and broken &quot;MVC&quot; systems typically do so because its &quot;easier&quot; for them, but it&#x27;s easier because they&#x27;re not willing to think about whats being written in the first place, and that&#x27;s a recipe for a bad app no matter how you write it.<p>Inevitably you will end up hacking your &quot;simple&quot; MVC app to meet perfectly reasonable, ubiquitous client requirements regarding user experience. Because the paradigm isn&#x27;t fit for base level requirements.<p>A few years ago my entire job was completely based around consulting for these types web applications. Inevitably you get these developers that think they&#x27;re wise by going &quot;we&#x27;re just going to do it with MVC&quot; -- and after a few months of use it becomes completely obvious that the dev team can&#x27;t meet any kind of modern requirements for the web application. The existing web app is slow (but it&#x27;s &quot;fast&quot; to the developers), buggy, and the worst part for the business is it takes forever to write features for. Eventually these companies get so frustrated they look to the outside.<p>To recap, when you build a &quot;traditional&quot; MVC app this typically means a few different things:<p>1) It&#x27;s written in a toolchain that&#x27;s fairly niche to &quot;back end&quot; developers; severely limiting the pool of talent that company can hire to maintain the web application moving forward. In a fair number of cases the company will have a front end team and a back end team. And sometimes all that back end team does is update views so the JS developer can do their thing. So expensive for something so small.<p>2) You will end up writing a mass of JS anyways, but the JS will mostly revolve around dealing with the fact that the server side templating language controls the original output of the web application. At worst, this means that a lot of devs like to sprinkle bits of HTML inside the JS. So now your templating is strewn across multiple languages and locations. The JS is typically bad because these are &quot;real&quot; developers who don&#x27;t like JS.<p>3) Because of 2, there will also be a mess of server side code purely written to massage data into the server side templating language and an analogous set of code just for the JS side of things.<p>4) Because of 2 and 3, the app because buggy and oddly slow (though again, the devs that wrote it will only look at the original output timing and not the actual life time performance of the application).<p>5) Because of all of the above, the company has now spent an enormous amount of resources for a fairly shitty app that no one likes to use nor maintain.<p>My primary focus for these companies was to build a baseline SPA. And then over the next couple of months guide them through creating new features.<p>And this wasn&#x27;t a one off thing. I had an entire job based around fixing the sins of the company&#x27;s internal developers who are costing the company money while not delivering, costing the company money making the application way more complicated than it needed to be, and costing the company money by forcing the company to hire a specific subset of developers familiar with their MVC toolchain.<p>Stop circle jerking about MVC apps. They were ugly in the first place and continuing to claim that&#x27;s how we should build web apps is an erroneous position purely fueled by stubbornness on the part of developers.<p>Here&#x27;s my benchmark for an SPA: You can either build your entire site using static generation, or you need to structure your web app as an SPA (or prepare to do so in the original implementation). That is the threshold in the current landscape. If you can&#x27;t get away with doing a statically generated site then you&#x27;re not going to have fun writing your site with backend MVC framework. At the very least the company&#x27;s finances definitely won&#x27;t.