Turbo: The speed of a SPA without having to write any JavaScript
turbo.hotwire.dev
turbo.hotwire.dev
Maybe that's an unfair genralisation from a small percent of poorly written SPAs, but that small percent have really had me hankering for multiple page websites with judicious use of JS.
things like loading a whole mapping library, when it's used on one page that maybe 10% of users will ever even load that page. or things like moment.js when all you want to do is get the last day of the month, but need to load that whole library.
then there's the whole, I'm just writing a restaurant website with 3 pages, but let's engineer it with a whole frontend framework and 4 dozen 600kb libraries.
There are a lot of real apps out there, usually in enterprise, or b2b, that the amount of that first page load is actually saved over the course of a users day, possibly an hour, because that app is their job essentially.
IMHO in most of the large corporate environments where I've worked, managers are constantly bucking for a promotion. It always seems like the design and IA are left out in order to keep budgets low with a focus on delivery.
Traditional multipage apps don't get that same "bad rap" in my mind because, while the upper-bound on performance is likely lower than SPAs, the lower-bound is likely higher than SPAs.
Never mind- Turbo Drive is the part of Turbo that enhances page-level navigation. It watches for link clicks and form submissions, performs them in the background, and udpates the page without doing a full reload. It’s the evolution of a library previously known as Turbolinks.
Some examples of web applications: Trello, Slack, Notion, Google Spreadsheets, Airtable.
RIP <xi:include>: https://www.w3.org/TR/xinclude-11/#basic-example
JSF really is meant for quickly building internal applications that don't have to withstand "web scale" loads. It's focused on churning out data driven applications quickly. Add something like Bootsfaces or Primefaces and you can produce these things in very little time. Thats not to say you couldn't use JSF to make a "Web Scale" project, but you would have to dive into your server pretty far to carefully watch state management and session creation. Not impossible, but just probably not its primary purpose.
For external facing applications that need to withstand a "web scale" load, Eclipse Krazo (aka MVC spec 1.2) and JSP are what you're looking for. These things are lightning fast and give you a lot of control over session creation by default. Render times are usually under a few ms. This is probably the fastest and least resource intensive stack available (no benchmark provided, take it for what you paid for the comment).