Ok ok, so this isn't an emergency at all

Adding a little BB to the bs

data-culture May 19, 2026

As with many things involved in this blog, it all started with a pretty silly idea just thrown out into the ether:

We have a forum now: forum.counting-stuff.com

And the code is available to use here at bsBB.

Like with the data writer webring sometimes I get a bit nostalgic for back when we were still on web 1.0 and writing and connecting to each other was fun and exciting. If you happened to grow up on the internet when I did, you'd probably recognize phpBB, which at its absolute heyday was THE forum software that most serious, and many unserious, web sites ran. To this day it still has plenty of users and installs because the software still works, it's just not "modern".

PhpBB is also famous for leading to a lot of security breaches over the years because security practices of the time were rather lax (SQL injection was common!). It also had a plugin architecture that could introduce all sorts of new vulnerabilities. PhpBB also had its own really weird little markup language, bbcode, that all us kids wound up learning bits and pieces of to make links and use small emoji-like characters. Honestly if we forced this on anyone in 2026 they'd think you were a fossil or just insane.

But that did get me thinking... what if old-ish style forum system, with threads and posts... but we get rid of the auth/ID layer that was always a security issue (and no one wants another random account), and what if instead of bbcode we just used Markdown? Then we stripped down the features to the basic stuff you'd expet in a forum. That's mostly CRUD operations, right?

How hard could things be?

Approximately "a few days" seems to be the answer.

I'm serious. It works. Have fun with it. I'm actively fixing bugs and issues as I find them, but the core posting/replying/quoting functionality has been solid. It's on a completely separate machine from the main newsletter, so if you people manage to break it, I can always nuke the remains from orbit.

For those who want to see the code, as well as the literal DOZENS of pushes at midnight as I write this post trying to get the damn OAuth to work, have fun with the repo link. I hate OAuth, if multiple models spend over an hour debugging the thing by trial and error, it explains why I never managed to roll an OAuth flow once in my entire life.

Also, while I'm sorta passing it off as a joke throwback, I put some serious thought and planning into the design of the app. The UI is a bit slapdash because I don't have an artistic design bone in my body, but over 50% of the effort put into the repo was to make things useful and relatively maintainable. I put work into making it so that someone else can take the code and run it safely. It runs easily on a cheap $5/mo bottom tier VPS, but does require a domain to allow Bluesky authentication.

A couple of long nights doing a lot of spec docs, bullying claude, and manual testing and assorted nonsense were involved. But at the end we now have a "generally not too ridiculous" BB system based off these ideas:

  • Bluesky account as identity -> use your Bluesky account to log in, no emails stored. Account info is pulled from your ATProto's PDS. It doesn't store much locally.
  • [Still testing] Get your forum notifications (on a settable cooldown) via Bluesky DMs -> because no one wants email
  • Markdown as post markup -> because we're civilized now
  • Post editing (with history!)
  • There's basic support for moderation including bans, queues, and rate limits because I know how the open internet is
  • Open source because this is all silly nonsense
  • A couple of passes from multiple models on basic security hardening, so it's not completely broken
  • It's "sorta-production-ready" in the sense that I did my best to bully things into a state where someone can take the repo and install it to run on their own domain. Given the crunched timeframe (about 4 days?) I slapped it together, it's got some rough corners.
  • There's a lot of simple "modern web" features like emoji, and open graph metadata for link sharing cards that didn't exist way back in 2000.

At the same time, I didn't bother to implement a ton of things that modern forums seem to have:

  • none of the modern reddit/HN-like social proof voting stuff
  • image/file uploads
  • direct messages between users
  • rich media embedding
  • I probably forgot a lot of weird little features that were common back then, like galleries

Either way, hopefully in the first couple of days when people play with it, they can get some use and enjoyment out of it. I'll keep the server around until people seem to lose interest in it. I'm more than happy maintain the server if people want to do use it for something.

But it's already getting close to 2am. I've been debugging and writing for the past 5 hours. So I'm going to press the launch button and see what happens as I stumble into bed.

Good night, and enjoy a taste of web 1.0!


Standing offer: If you created something and would like me to review or share it w/ the data community — just email me by replying to the newsletter emails.

Guest posts: If you’re interested in writing something, a data-related post to either show off work, share an experience, or want help coming up with a topic, please contact me. You don’t need any special credentials or credibility to do so.

"Data People Writing Stuff" webring: Welcomes anyone with a personal site/blog/newsletter/book/etc that is relevant to the data community.


About this newsletter

I’m Randy Au, Quantitative UX researcher, former data analyst, and general-purpose data and tech nerd. Counting Stuff is a weekly newsletter about the less-than-sexy aspects of data science, UX research and tech. With some excursions into other fun topics.

All photos/drawings used are taken/created by Randy unless otherwise credited.

Supporting the newsletter

All Tuesday posts to Counting Stuff are always free. The newsletter is self hosted. Support from subscribers is what makes everything possible. If you love the content, consider doing any of the following ways to support the newsletter:

  • Consider a paid subscription – the self-hosted server/email infra is 100% funded via subscriptions, get access to the subscriber's area in the top nav of the site too
  • Send a one time tip (feel free to change the amount)
  • Share posts you like with other people!
  • Join the Approaching Significance Discord — where data folk hang out and can talk a bit about data, and a bit about everything else. Randy moderates the discord. We keep a chill vibe.
  • Get merch! If shirts and stickers are more your style — There’s a survivorship bias shirt!+

Tags