I started a small discussion with the developer experience team here at Netlify, and and transcribed it for those interested and thinking about building larger-scale services.

## The question

How would you architect a blogging platform with the Jamstack? A platform where users can:

-   Log in/Log out
-   Create blog posts
-   Publish them on their own URLs to share (like blogplatform.com/cassidoo/mypost)

Many people think that this is where server-side rendering rules, and the Jamstack falls short.

But behold, Phil Hawksworth had some good things to say!

## Phil’s response

2 parts to this question:

### 1\. Can Jamstack serve user-generated and user-centric content for many users?

Yep. [app.netlify.com](https://app.netlify.com/) does this with a statically served app shell, and an API for more than 2 millions users and teams. It’s both dynamic, and personalized.

But… blog posts are better not served as JSON which is rendered client-side like the content in the [app.netlify.com](https://app.netlify.com/) example. So, question 2…

### 2\. Can Jamstack deliver rendered content for user-generated and user-centric content?

Not at scale until the advent of [On-demand Builders (ODB)](https://docs.netlify.com/configure-builds/on-demand-builders/) and its friends.

> On-demand Builders are a type of serverless function that speed up build times for large sites by breaking content into two categories: critical content, which is automatically compiled at build time, and deferred content, which is built upon user request. On-demand builders enables you to incrementally build your site and is designed to work with any framework.

Now, it is pretty attractive as an architecture really. It’s like a slight evolution of the [Virtual Lolly](https://github.com/philhawksworth/virtual-lolly) example I have, where we add auth and rendering via ODB.

![Diagram of blog platform site](/v3/img/blog/odbplatformarch.png)

With the number of core pages being generated in the build kept to a few hundred (like, the main boilerplate and UI pages, and perhaps the most popular few hundred blog post pages), it could easily be re-deployed with a time period of a few hours so a “fresh” view of the most popular posts and related articles could be pre-generated regularly enough to be fit for purpose.

All of the above architecture is viable right now, with the exception of a listing of latest posts per user on a URL like `/{USER}/POSTS`, which would need ODB to support expiring a URL so that it updates when a new post is added. But that view could come from a [serverless function](https://docs.netlify.com/functions/overview/) or [edge handler](https://www.netlify.com/products/#netlify-edge-functions). The blog post pages themselves via ODB are fine. (until we add ability to modify published posts, at which point the same logic as above applies).

## Thanks, Phil! Now what?

Whew! I love learning, don’t you?

If you’d like to learn more about applications of On-demand Builders, the architecture they implement, serverless, and moooore, here’s some good spots to get started:

-   [Faster builds for large sites on Netlify with On-demand Builders: Now in early access](https://www.netlify.com/blog/2021/04/14/faster-builds-for-large-sites-on-netlify-with-on-demand-builders-now-in-early-access/)
-   [Distributed Persistent Rendering RFC](https://github.com/jamstack/jamstack.org/discussions/549)
-   [Using Deferred Static Generation (DSG) with Gatsby](https://v4.gatsbyjs.com/docs/how-to/rendering-options/using-deferred-static-generation/)
-   [Up and Running with Serverless Functions: Free course](https://www.youtube.com/watch?v=PCDhpRms4Ek&list=PLzlG0L9jlhENl1o2vLw6vFKvHBb9D5A0u)
-   [Static First: Pre-Generated JAMstack Sites with Serverless Rendering as a Fallback](https://css-tricks.com/static-first-pre-generated-jamstack-sites-with-serverless-rendering-as-a-fallback/)

### Share

-   [X (fka Twitter)](https://twitter.com/intent/tweet?text=Architecting a blogging platform on the Jamstack with On-demand Builders&url=https://www.netlify.com/blog/2021/11/12/architecting-a-blogging-platform-on-the-jamstack-with-on-demand-builders//)
-   [LinkedIn](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.netlify.com%2Fblog%2F2021%2F11%2F12%2Farchitecting-a-blogging-platform-on-the-jamstack-with-on-demand-builders%2F%2F)
-   [Facebook](https://www.facebook.com/sharer.php?u=https://www.netlify.com/blog/2021/11/12/architecting-a-blogging-platform-on-the-jamstack-with-on-demand-builders//)
-   [Bluesky](https://bsky.app/intent/compose?text=Architecting a blogging platform on the Jamstack with On-demand Builders+https://www.netlify.com/blog/2021/11/12/architecting-a-blogging-platform-on-the-jamstack-with-on-demand-builders//)

* * *

### Tags

-   [Jamstack](/blog/tags/jamstack/)
-   [Terminology](/blog/tags/terminology/)
-   [On-demand Builders](/blog/tags/On-demand-Builders/)
-   [Build](/blog/tags/Build/)
-   [Incremental Static Generation](/blog/tags/Incremental-Static-Generation/)

## Keep reading

![](/images/blog-fallback-thumbnail.svg)

News & Announcements April 22, 2021

[

### Next.js on Netlify: Now with support for On-demand Builders and Distributed Persistent Rendering

](/blog/2021/04/22/next.js-on-netlify-now-with-support-for-on-demand-builders-and-distributed-persistent-rendering/)

-   ![Profile picture of Netlify team](/_astro/2ded7a52db41c7613be0baa648ac9bf9c1e8a985-300x300_DNhVu.svg)
    
    Netlify team
    

![](/images/blog-fallback-thumbnail.svg)

News & Announcements April 14, 2021

[

### Faster builds for large sites on Netlify with On-demand Builders: Now in early access

](/blog/2021/04/14/faster-builds-for-large-sites-on-netlify-with-on-demand-builders-now-in-early-access/)

-   ![Profile picture of Asavari Tayal](/_astro/810c07096de0f6cab6dbe3e2436083dcc6f6d401-80x80_1GOIxQ.webp)
    
    Asavari Tayal
    

## Recent posts

News & Announcements June 25, 2026

[

### Netlify Functions, designed for Agent Experience

](/blog/netlify-functions-designed-for-agent-experience)

-   ![Profile picture of Eduardo Bouças](/_astro/52958f21e8450baf6d8e60302341a984e220c0cd-512x512_13VDlu.webp)
    
    Eduardo Bouças
    

News & Announcements June 24, 2026

[

### How we measure Netlify’s Agent Experience

](/blog/how-we-measure-netlify-agent-experience)

-   ![Profile picture of Sean Roberts](/_astro/bbf2243f8171dbddd80ab2103622106cef84d125-512x512_Z1d2LKE.webp)
    
    Sean Roberts
    

Guides & Tutorials May 15, 2026

[

### How to build a real-time AI chatbot in minutes with Netlify Agent Runners (no backend)

](/blog/how-to-build-a-real-time-ai-chatbot-in-minutes-with-netlify-agent-runners-no-backend)

-   ![Profile picture of Nahrin Jalal](/_astro/f0e7c8f227a03fe58340c99ef5439d5a896c0733-272x272_Z23kDpD.webp)
    
    Nahrin Jalal
    

![](/_astro/3f255b372fa958df35802666ee33b4609b2d71bd-1200x1586_1VtE2D.webp)

### How do the best dev and marketing teams work together?

[Access the report](https://www.netlify.com/reports/2024-leadership-trend-report/access/)