Reflections on Building Forum Software

sebg1 pts0 comments

Reflections on building forum software

Toggle light/dark mode

Sign up

How has two Thursdays have passed already. Everything's a blur. Thanks, subscribers, for supporting this newsletter's ongoing shenanigans.<br>This week, I went and threw bsBB into the world, which is the software powering our shiny new official forums. It's intended to be a free space, much like our very fun discord, to talk about things we find interesting in this community. It's official in that It's not going away any time soon so go and make use of it by sharing something you like, either about this newsletter, or just data stuff in general.<br>Yes, we are a data community at heart because that's what I write about and what y'all signed up for, but as I've mentioned on multiple occasions, we're humans first, data practitioners second. That means that as humans we have tons of just stuff we find interesting and cool and want to share.<br>So let me make this clear. Anyone who wants to talk about something they're excited about or just in general brings them joy or fascination, I'm more than happy to find and make a space for that kind of sharing on the forum.<br>Otherwise, just have fun with it. I deliberately built it as a homage to the forums I used and managed in my younger days.<br>Reflections on building the whole forum thing<br>bsBB isn't the first time I've coded stuff with a lot of heavy lifting done by AI tools, but it's the first one where I was deliberately working on a pet project that I was going to put out as a public artifact for people to use. So, in some sense, it was "serious business". In another sense, it was still hairbrained weekend project spawned from pure nostalgia for the Web 1.0 days as the literal Web around us crumbles from the flood of AI slop.<br>There's plenty of people out there extolling the benefits, and detriments on AI-coding out there. As far as I'm concerned, the people who write code for a living can hash those answers out far better than I can.<br>The interesting part today is the fact that I don't code for a living. In fact, while I can write okay-ish code and go way deep into the weeds of implementation on certain things, I never liked going that deep into data structures and algorithms that is the whole foundation of Computer Science. My interests and strengths has always pulled me much along a wider sweep of domains.<br>So I always preferred to approach code about one or two levels of abstractions higher, where there's system diagrams and APIs and behavior contracts and problems of coordination, trust, and information. It's why I have the most fun at work working with an engineer to figure out how stuff I want can actually be created. It's also exactly why I struggled my entire life to understand frontend web development past HTML 4 when CSS was just barely becoming a thing. I couldn't keep the sheer volume of css attributes and behaviors and browser-specific nonsense in my head long enough to make sense of it.<br>And then come these LLM tools that promise, to very varying degrees of success, to write the low level annoying stuff that requires tons of memory and experience to put together. All I have to provide were the very things that I enjoy, the information, planning, design, and vision that lies one step above.<br>Or at least, that's the promise.<br>So the things that I do enjoy is that I really can spend my energy doing what I like best, figuring out how a system works in my head, how ideas and functional units play off each other to create a functioning piece of software. Since I spend more of my professional life poking at the edges of where software fails due to user interactions, I believe I'm reasonably good at anticipating places that problems can pop up. These of course make good LLM fodder, since they work best under highly constrained, clearly specified constraints delivered in tight chunks.<br>But no one can imagine a final product in all its perfection at the very beginning of the design phase of anything. Building something, be it software or furniture, is an iterative process where you find unanticipated obstacles or opportunities along the way. One fascinating thing I'm discovering in this process is that while I'm not learning anything at all in terms of languages and implementation details, I'm learning a lot about the systems that software is part of.<br>Here's what I mean. For bsBB, the original idea in my head is "What if simplified version of phpBB, but use Bluesky as the user". I know from past history that no one wants yet another account signup, and I don't want to be in the business of storing user data that people eventually want to breach. Even though I didn't have to engage with the ATProto specifications to figure out the exact details to allow users to authenticate, I still learned about the implications of using that as the sole authentication method. For one thing it requires bsBB have a publicly accessible domain as part of the auth process, which causes a ton of local development testing...

software make data stuff building forum

Related Articles