- 26 Nov, 2025 *

Always pondering the blogs.
It all started when Mr Prismatic Wasteland posted a picture on Discord of a TTRPG blog edge graph someone had made years ago on /tg/. When the folks started wishing for an updated version, I thought: I already follow a lot of blogs via RSS—maybe I could use that data to create something similar.
A few weeks later, I’m crawling back out of the rabbit hole with an interactive map of the TTRPG blogverse, and I’d like to show you what I found.
Explore the graph: Open the interactive graph—zoom, filter by year, poke nodes, and see who links to whom.
What Is This?
It’s an…
- 26 Nov, 2025 *

Always pondering the blogs.
It all started when Mr Prismatic Wasteland posted a picture on Discord of a TTRPG blog edge graph someone had made years ago on /tg/. When the folks started wishing for an updated version, I thought: I already follow a lot of blogs via RSS—maybe I could use that data to create something similar.
A few weeks later, I’m crawling back out of the rabbit hole with an interactive map of the TTRPG blogverse, and I’d like to show you what I found.
Explore the graph: Open the interactive graph—zoom, filter by year, poke nodes, and see who links to whom.
What Is This?
It’s an interactive graph of all the TTRPG-related blogs I could find. Each node is a blog. Each edge between two nodes means at least one post on one of those blogs links to the other—sometimes outgoing, sometimes incoming, sometimes both.
Both nodes and edges are weighted. The more a blog gets linked to, the bigger its node becomes. Likewise, the more two blogs link to each other, the stronger the edge between them appears. To keep things sensible, only one link to a specific blog is counted per post—if you link to a blog 10 times in one post, it still only counts once. The nodes are clustered into communities using an algorithm that finds groups which are more tightly connected to each other than to the rest of the graph.
It’s interactive, so you can zoom in and select individual nodes. The data is historical, so you can display different views of the graph for each year going back to 2003, or look at an “all time” view, which is the default.
There are also various stats like top-linked blogs and posts, as well as graph-theory-nerd values like the betweenness of a specific node or its k-core. There’s a glossary in the graph menu if you need it.
What Can You Learn From It?
My favorite discovery was realizing that, if you scroll through the years, you can clearly see different communities springing up. They rise and fall, but many of them are still more or less present today.

Showing the graph through the years, from 2003 to 2025 and in all-time view.
You can also see quite a lot of cross-talk between some of these communities.
Another observation: community events like Blog Bandwagons, RPGaDAY, GloGtober, etc. have a big impact on cross-linking and discovery. These events are important and fun, and they help us find and foster our neighbors.
How Does It Work?
It all runs on the backbone of my RSS reader. That’s where I add all the blogs and where I pull the data from. I was already following the majority of them, but as Dwiz pointed out, if I only included blogs I’m personally interested in, it would just be a graph of my own reading preferences, and I agree.
So I spent a long time hunting down more blogs to add. Shout-out to the biggest sources: the OPML files by Yochai, Ramanan, Alex Schroeder, and Sly Flourish. The rest I either already had (from following some blog hive channels on various Discord servers) or hunted down through sitemaps and blogrolls.
Anyone familiar with RSS might know that feeds usually only include a small set of the latest posts. This is problematic and skews the data heavily towards 2024/25. However, I was very happy to find out that I could paginate backwards on the RSS feeds for both Blogger and WordPress. For Bearblog I was able to use a crawler that someone had already written and, with minimal edits, generate feeds from that.
With this data I could begin mapping the blogs. I wrote a Python script that talks to my RSS reader, watches which blogs link to which, turns that into a big friendship map of blogs with stats and communities, and then spits out JSON/CSV files that the browser can use.
The frontend takes this precomputed data and draws a styled “space map” of blogs. On top of that, it layers search, filters, stats, tooltips, the glossary, and sharing options so folks can actually explore and understand the Blogverse instead of just looking at a static blob of dots.
Why the Data Will Always Be Incomplete
There are some caveats to this method and some things I simply can’t change, all of which mean the data will never be fully complete. Here are the main ones.
RSS usually only exposes the last 10 to 25 published posts when you add a feed to a reader. Most blogs were added this year when I transferred from a different reader around Christmas 2024.
Luckily, I was able to backfill almost all posts for Blogger, WordPress, and Bearblog. These three platforms make up the vast majority of blogs in the graph, so the overall dataset is still pretty large.
For the following platforms, I don’t have full post history unless you started your blog in the latter half of 2024 or just don’t post much:
- Substack, blot.im, Ghost, Squarespace, and whatever self-hosted solution you have that doesn’t expose all posts via RSS.
Truncated Content
RSS is structured into different XML blocks that hold different metadata. For each post, there’s a <description> block—this is the part my Python script looks at to find links.
While most feeds provide the full post content here, some only include a paragraph or summary. This means a post that might contain lots of link to other blogs can’t be detected and therefore won’t be included in the data.
Dead or Missing Blogs
Blogging has been going strong since the mid-2000s, but a lot of blogs simply aren’t accessible anymore. They’ve been deleted, their URLs don’t resolve, or something else broke along the way. There’s nothing I can do about those.
There’s always a good chance I missed a blog. If you think you’re missing and would like to be included, please reach out to me on Bluesky or Mastodon.
What Doesn’t Count as a Link
To avoid confusion: any links generated at runtime via JavaScript won’t show up in RSS. Sitemaps, blogrolls, or special pages on your blog also won’t show up in the RSS feed and won’t count. The graph purely looks at links inside individual posts.
Additional Stats
Here are some answers to interesting questions I got over the course of developing this. They come from running queries directly in my reader’s database and are not shown on the graph itself. All numbers are taken as of the publish date of this post.
- Graph size: The main graph is built from around 1,437 nodes (blogs) and 21,826 edges (links). There are 96 isolated blogs that don’t appear on the graph because they neither link to nor get linked by any other node.
- Posts analysed: In total, the dataset covers 381,932 posts.

These tables show how many total posts were published per year and how many new blogs appeared each year. Keep in mind that the data for recent years is slightly skewed because I don’t have a full archive of posts from Substack and similar platforms.
Some more stats that speak for themselves:


And finally, here is the median lifespan of a blog in this dataset (time from first publication to last) in days:

Known Issues and Future Plans
No promises if or when I’ll get to any of this, but here are some things I’m toying with:
- More non-English blogs. There are some already, but I know there are many more out there that aren’t in the dataset yet.
- Performance and load times. I’d like to improve performance and decrease load times. I have some ideas, but they’ll take more effort to implement. For now, I chose to ship a stable version rather than over-engineer it.
- More stats and visualizations. There are lots of additional stats that would be fun to surface and more ways to visualize them.
As for known issues:
- Imperfect title detection. The blog post title detection for the “Top Links” view isn’t perfect yet.
- Itch.io blogs are excluded. If your blog is on itch.io, it’s currently excluded from the dataset. I’m sorry—it was messing up the calculations, and I haven’t gotten around to fixing it yet.
I plan to update the graph whenever I get a significant chunk of new data—either by adding blogs or unlocking more archive data from a platform. Otherwise, I’ll probably refresh it about once a season, though I’m not completely sure yet.
Closing Thoughts
I had a great time digging up old blogs, especially the earlier ones. It felt like a time capsule from before the internet was dominated by social media apps. You find some very special-interest blogs that are just interesting on their own. Artists posted on their Blogger pages in a time before Instagram. A lot of that stuff is still out there.
All this made me appreciate blogs even more. It’s a great habit, a great hobby. Even if it’s not about TTRPGs, it’s great to read about people’s passions and learn something new. You can argue on Bluesky or on Discord and that’s fine, but it’s also terribly fleeting. Sometimes you log on and find yourself in the middle of a discourse where you have no idea what’s going on.
Blog posts tend to stick around. They can be linked to and revisited, so you don’t have to repeat your arguments over and over. Blogs are great. Do more blogging, people.
I hope this graph is informative for you, maybe even helpful. Don’t get discouraged if you find yourself on the outskirts of the graph. This is not a popularity contest but a community. Foster good behavior and link to your neighbors. Seen some good posts this week? Do a little link roundup like LootLootLore or Xaoseed. Talking about your next design idea? Link to what has influenced you; better yet, link to posts that do it differently than you to give people more context.
Just link more. It’s how you discover and rediscover things on the internet. Make it a habit.
Lastly, I want to thank the good folks on Discord who showed great interest in this little project as I reported on my progress. You actually helped me stay motivated: Prismatic Wasteland, Dwiz, Ramanan, xaosseed, Nael Fox-Priebe, Patchwork Paladin, Warren D, Gus L, Chris McDowall, Benign Brown Beast, Wandering Diejack, Zak H, Sly Flourish, Serket, Nova, dadstep, Rowan, Farmer Gadda, Kati, Isaac, and anyone I forgot.
We are all in the gutter, but some of us are looking at the stars (blogs).