Stop Writing Server-Based Web Apps

Stop Writing Server-Based Web Apps

Stop writing server-based web apps and switch to the JAMstack architecture!

Matthew Tanner

Title makes the article a poor read, too click bait based. JAMstack is still server based since you will always deal with server APIs outside if a brochure site in which case it’s simply not a web app at that point. Instead what you are trying to explain is “local server based web apps that are directly tied to server side functionality”. JAMstack is great for APIs but it’s still tied to a server.

David Neal

Thanks for the comment, @disqus_JbknuKVRpM. Yes, there’s always going to be servers involved. One way to look at it is how much compute could be saved by rendering the “page” once and only delivering the minimum amount of dynamic data required using an API or GraphQL, verses rendering an entire page on every request?

Grandmaster

You mean AJAX?

c.press

The Web Request Walk of Shame - Hits the nail on the head.

Popoola Gafar Babatunde

I’m still trying to figure out what problems the Jamstack is trying to solve. I consider it’s adoption to be nothing but a typical case of FOMO.

Ross Presser

You may or may not have a point here, but what you definitely don’t have is (human language) writing talent.

dantalizing

There does not have to be a server involved for many types of apps.

imeuropa

mate you always use a server in web apps to do anything. you need to host the app dont you?

Oskars Pakers

Static site generating seems to be nothing else than indexing. Claimed that it is more efficient, but that is only for traffic intensive sites.
If there are lots of content that is cjanging but not all are requested it might be more efficient to render on demand on the server.
But that is true that most of the times it is not the case.

Gilbert Diaz

Great David. I have avoided JAM for a while, probably time. I see the CDN benefit.

Do you draw those images?

Matthew E. Keller

Classic web apps also serve up 90% standard html with dynamic content rendered in place. Moving your joining of layout to dynamic content to the browser just makes the developer write all the business logic in javascript instead of java. I enjoy javascript but let’s face it, java is way more structured and easy to maintain. This is why frameworks like Angular become immediately overcomplicated for anything but the simplest web app. The only real Achilles heal of the classic we app is the full page refresh. This is why the hybrid of the classic web app and the single page app are the real sweet spot and that is why we really like WebRocketX.

facumo

So you’re basically proposing that serving a file doesn’t require CPU cycles?

Igor Nesterov

Do you understand that each server less application based on server application?

Igor Nesterov

I agree with you. I think Java Script not is the best language for writing business logic.

Robin S

It’s the first time I’m hearing about JAMstack. I visited their site and read their claim multiple times “if it’s in the web you can use JAMstack” but I’m not sure how to create my single page applications based on cms content to static html files. Should I pre-render every single damn possible html view/scenario with every possible logic (filtering results, search logic…).
Not sure how a forum or a chat can be pre-renderd?

Lewis Cowles

Maybe… Static is also very simple to deploy; but look, where are you generating it from?

At best a database in which case you’re just betting the farm on caching.

At worst you’re writing off e-commerce and saying its extra special or sacrificing visibility.

There are no special blockers for server rendered content. Ad block won’t touch without not rendering.

For me it speaks more to read-write balancing, recognizing most of the Internet isn’t that compelling.

I’d iterate and re-frame that as nothing is free and people overestimate performance and how compelling things they like are.

I’m glad you like JAM stack. But it’s not for everyone.

Edited spellings because mobiles suck

Goat

The idea is to generate the most possible static content to deliver to the client. Tools like GatsbyJS help you build static content from various sources, like from a CMS… Imagine serving your users a HTML file with all the text of a blog post vs serving them just HTML of your page layout plus JavaScript, then waiting for that JS to load then requesting the content of the post then injecting that fetched content into the parsed HTML, nothing can’t beat the speed of parsing just text.

Then you have an “hybrid” approach, where you generate all the possible static content and with a tool like React you rehydrate the parsed HTML with dynamic content once the user downloaded it.

Andreas Offenhaeuser

So the idea is to make apps more server based by running more stuff on the server not less…
I thought the title and the intro was going to sell PWA

B.Max

The article lacks the consideration of websites/webapps where dynamism is a must (e.g. e-commerce) and the fact that not everything can be suitably done in a JAMstack way.