---
title: "What if you wanted to build your own platform for users to generate content? On-demand Builders may be what you‘re looking for!"
description: "Architecting a blogging platform on the Jamstack with On-demand Builders"
source: "https://www.netlify.com/blog/2021/11/12/architecting-a-blogging-platform-on-the-jamstack-with-on-demand-builders/"
last_updated: "2026-08-05T04:39:12.000Z"
---
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

Opinions & Insights July 28, 2026

[

### Open Weights and the 2nd World

](/blog/open-weights-and-the-2nd-world)

-   ![Profile picture of Mathias Biilmann](/_astro/f193d4707a6391d843d5aaa73338b5a5971ec5cc-960x960_1Yylqm.webp)
    
    Mathias Biilmann
    

Tools & Services July 28, 2026

[

### MCP goes stateless and extensible

](/blog/mcp-goes-stateless-and-extensible)

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

News & Announcements July 28, 2026

[

### New Netlify projects are now private by default

](/blog/new-netlify-projects-are-now-private-by-default)

-   ![Profile picture of Taylor Barnett-Torabi](/_astro/cf4624da8c1286738397b6fecb53bad504df140b-400x400_ZsvK0s.webp)
    
    Taylor Barnett-Torabi
    

![](/_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/)