# Using Discourse to Build a Blog, Reddit, X or Facebook-Style Scrolling Platform

**URL:** https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945
**Category:** Community Building
**Created:** [8 בספטמבר,‏ 2026,‏ 11:47pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945 "2026-09-08T23:47:31Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [9 בספטמבר,‏ 2026,‏ 5:13pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/26 "2026-09-09T17:13:18Z")

</div>

> [@merefield](#):
>
> So I’m somewhat perplexed by your response, most of your requirements are front-end engineering with some backend tweaks and TLP fulfils the bulk of these

That’s just a list of what I expected the feel of site to be, the reddit-ish theme/Discourse had most of that built in

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [9 בספטמבר,‏ 2026,‏ 5:14pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/27 "2026-09-09T17:14:27Z")

</div>

> [@Damian\_Boon](#):
>
> That’s just a list of what I expected the feel of site to be, the reddit-ish theme/Discourse had most of that built in

Topic List Previews was the very first implementation of this.

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [9 בספטמבר,‏ 2026,‏ 5:15pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/28 "2026-09-09T17:15:03Z")

</div>

> [@merefield](#):
>
> I know of at least one, but it’s closed source.

Which helps no-one, this post is about trying to see what I can achieve with some help from other members and hopefully it will help others if possible 😉

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [9 בספטמבר,‏ 2026,‏ 5:16pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/29 "2026-09-09T17:16:20Z")

</div>

I’ve tried to help but you’ve only pushed back.

Best of luck.

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [9 בספטמבר,‏ 2026,‏ 5:19pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/30 "2026-09-09T17:19:07Z")

</div>

Sorry I am not pushing back, i’ve answered your questions, you sent me a link to Starzen which isn’t what i am trying to achieve? Then i answered that I have seen them posts that you linked and they are talking about building something, I am trying to build something. Sorry you feel i am pushing back but that is not the case. I am unsure where your trying to go with this tbh

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [9 בספטמבר,‏ 2026,‏ 6:01pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/31 "2026-09-09T18:01:46Z")

</div>

I just thank the OP for their inspiration (who kindly shared to my ask about the used plugin in their navbar a few weeks ago).

My intention is not to replicate the social media interface but rather to offer something more comfortable for our users, and I’m working on it. I’ll gladly share findings, the final result, and the repo when the time comes 🙂

By the way, I’m sharing something that is always good to remember and that some users might forget when responding or interacting: [Core Rules of Netiquette](https://coursedesign.colostate.edu/obj/corerulesnet.html)

---

<div class="post-metadata">

### Author: ![kddkd](https://avatars.discourse-cdn.com/v4/letter/k/df705f/32.png) [@kddkd](https://meta.discourse.org/u/kddkd)
#### Post date: [10 בספטמבר,‏ 2026,‏ 6:02pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/32 "2026-09-10T18:02:09Z")

</div>

> [@satonotdead](#):
>
> We hope to provide our users with a more comfortable experience.

Indeed, so I also fully support the OP and everyone’s new attempts!

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [11 בספטמבר,‏ 2026,‏ 12:01am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/33 "2026-09-11T00:01:33Z")

</div>

> [@Damian\_Boon](#):
>
> I know this isn’t your cup of tea and goes against what Discourse was intended for.

I’ve been thinking on this and it’s a bit more nuanced than that. Yes, everything is focused around discussion but reading is a very important factor. We acknowledge that there is a huge audience of readers/consumers and I love the idea of making that experience frictionless. I’ve been a proponent of an easily personalisable feed for a long time.

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [11 בספטמבר,‏ 2026,‏ 1:41am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/34 "2026-09-11T01:41:22Z")

</div>

Initial design is complete for the “build your feed”

 ![Screenshot 2026-09-11 at 02.36.09](https://global.discourse-cdn.com/meta/original/4X/2/e/a/2ea727369aa6b6c5fde17c6ebeeffda8ef679595.png)

Next is to insert new tables into the DB, something like

| Field | Purpose |
| --- | --- |
| `user_id` | The member |
| `category_id` | Category being measured |
| `impressions` | Meaningful appearances |
| `opens` | Topics opened |
| `likes` | Topics liked |
| `replies` | Replies made |
| `dwell_seconds` | Accumulated reading time |
| `affinity_score` | Calculated preference |
| `updated_at` | Last recalculated |

For the first version, only the **interests table** is required. The behaviour table will be added later once i figure out which route to take.

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [11 בספטמבר,‏ 2026,‏ 2:08am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/35 "2026-09-11T02:08:54Z")

</div>

Today I see something related in the Nodeloc forum: [NodeLoc](https://www.nodeloc.com/nodes)

I am not familiar with this approach, but I look forward to seeing where it is going!

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [11 בספטמבר,‏ 2026,‏ 2:15am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/36 "2026-09-11T02:15:03Z")

</div>

Thats truly impressive, i thought about the /r route a lot but decided it against it due to the category limitations. Wonder how thats been implemented

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [15 בספטמבר,‏ 2026,‏ 1:05am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/37 "2026-09-15T01:05:05Z")

</div>

The initial feed selection is added and working, no styling done yet as above until final phase.

The selection pops up on a users first visit to feed and cannot be closed until user has selected 3 categories of interest, a select all is also added.

An edit interests tab is also added

 ![Screenshot 2026-09-15 at 02.02.35](https://global.discourse-cdn.com/meta/original/4X/f/5/3/f5321617f1da915ff7bcb181580f8e6adaaf93f6.jpeg)

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [15 בספטמבר,‏ 2026,‏ 1:17am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/38 "2026-09-15T01:17:43Z")

</div>

The initial personalisation feed is done and working, no cpu spikes yet, feels fast and works as intended.

It now:

- Scores topics using **55% interests, 25% freshness, 10% popularity and 10% randomness**.
- Prefers a discovery topic every sixth position when available.
- Avoids three consecutive topics from one category when alternatives exist.
- Keeps pagination independent of deleted, consumed items.
- Reloads and reorders the feed after interests change.
- Includes the working pop-up and **Select all**.

and then when you change your feed

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [15 בספטמבר,‏ 2026,‏ 1:56am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/39 "2026-09-15T01:56:20Z")

</div>

I thought i’d finish off the styling before i carry on.

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [15 בספטמבר,‏ 2026,‏ 2:08am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/40 "2026-09-15T02:08:40Z")

</div>

Next to do is

Optimise what we’ve built before adding behaviour tracking:

- Limit cached feed sessions per user so repeated refreshes don’t accumulate six hours of cached lists.

- Improve category mixing to reduce CPU work on large queues.

- Measure feed loading time and cache usage.

After that comes **behaviour tracking** : recording genuine impressions, topic opens and reading time. Prefetching must not count as reading.

Initially we’d collect those signals without changing the order. Once tracking is reliable, we can gradually introduce **15% behaviour weighting** as users see 30–50 posts.

---

<div class="post-metadata">

### Author: ![Bas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bas/32/294929_2.png) [@Bas](https://meta.discourse.org/u/Bas)
#### Post date: [15 בספטמבר,‏ 2026,‏ 11:15am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/41 "2026-09-15T11:15:12Z")

</div>

Love the initiative!

> [@HAWK](#):
>
> Yes, everything is focused around discussion but reading is a very important factor.

You might even say that “reading is fundamental”, which was a foundational blog post when I started out as a community manager:

> **[Because Reading is Fundamental](https://blog.codinghorror.com/because-reading-is-fundamental-2/)**
>
> Most discussions show a bit of information next to each user:
> 
> What message does this send?
> 
> \* The only number you can control printed next to your name is post count.
> \* Everyone who reads this will see your current post count.
> \* The more you...

* * *

@Damian_Boon how would this system work if there _aren’t_ any images attached to a topic?  
The Demo uses AI generated header images, which I hope isn’t going to be the default? The occasional one is fine, but fake image after image becomes grating fairly quickly 🙂

* * *

There’s also a bit of a bug on Safari Desktop, where related topic links don’t open:

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [15 בספטמבר,‏ 2026,‏ 12:36pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/42 "2026-09-15T12:36:54Z")

</div>

> [@Bas](#):
>
> how would this system work if there _aren’t_ any images attached to a topic?

Exactly the same, its only the topics viewport it uses. So you would see the what you see now with just the image missing. I would highly advise against using a lot of the functions on a site that is not media heavy though.

 ![Screenshot 2026-09-15 133944](https://global.discourse-cdn.com/meta/original/4X/8/c/5/8c58ef4f31f2d7cb2ab8d3d6e44cc9278df47d70.jpeg)

> [@Bas](#):
>
> The Demo uses AI generated header images, which I hope isn’t going to be the default

This is a demo site where all the content is ai generated for this test case.

> [@Bas](#):
>
> There’s also a bit of a bug on Safari Desktop, where related topic links don’t open

Thanks for that, I will look into that later as its using a cache from the homepage.

---

<div class="post-metadata">

### Author: ![Damian\_Boon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damian_boon/32/574032_2.png) [@Damian\_Boon](https://meta.discourse.org/u/Damian_Boon)
#### Post date: [15 בספטמבר,‏ 2026,‏ 12:56pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/43 "2026-09-15T12:56:49Z")

</div>

With what i have created so far, i need to test server load, I have an openrouter account and want to test 10 bots posting at the same time. What is the best route to go with testing say

bots:

- username: wtf\_gaming  
category: Gaming  
personality: gaming-news  
posts\_per\_hour: 30  
replies\_per\_hour: 15

- username: wtf\_tech  
category: Tech  
personality: tech-news  
posts\_per\_hour: 30  
replies\_per\_hour: 15

then have 10 logged in bots refreshing the /feed page every 30 seconds for instance.

Or make a small standalone Python service that talks to Discourse + OpenRouter, rather than putting AI requests directly inside the Discourse Rails process.

What would be the best way to test

---

<div class="post-metadata">

### Author: ![sniper756](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sniper756/32/545002_2.png) [@sniper756](https://meta.discourse.org/u/sniper756)
#### Post date: [16 בספטמבר,‏ 2026,‏ 11:23am UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/44 "2026-09-16T11:23:52Z")

</div>

It looks great! Will it ultimately be released as a new theme?

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [16 בספטמבר,‏ 2026,‏ 12:57pm UTC](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945/45 "2026-09-16T12:57:17Z")

</div>

A Theme Component with the category selector feed should be great!

[Previous page](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945.md?page=1)

[Next page](https://meta.discourse.org/t/using-discourse-to-build-a-blog-reddit-x-or-facebook-style-scrolling-platform/411945.md?page=3)
