Dev Notes 25: Comment System Progress

By . . Version 0.1.0

Dev Notes (DN) document progress towards other articles. Discussion is preliminary.

These notes document some of the blog-related things that have happened over the last week. Most of this was working on my elaborate comment system rather than actually writing articles. Still, I think this is neat and plan to eventually write a full article about how it was built and designed. In this post I include a little test widget of my newsletter feature.

Comment System

I discussed in DN-22 and DN-23 my vision for an untraditional comment system. It now has a snazzy name: Webbier. The tagline is "Webbier is the comment section designed for webpages you want people to talk about". Traditional comment sections let people have discussion inside the site's walled garden. This can be good for sites that want full control over the narrative. However, for use cases of having discussions that are easily seen, it seems less ideal. Rather than walled gardens, Webbier is about having discussions out on the world wide web.

Webbier aggregates discussion together from anywhere on the internet. Right now it gathers from Reddit, Hacker News, and Bluesky. Then I have plans for broader support, working towards this vision of understanding any generic website.

Technical Design

There are a few components to the design. There is a backend which handles the internet searching, aggregating, ranking of comments. The searching runs regularly depending on the activity of a given post.

The backend is written in golang. As someone who has spent the last 5ish years mostly lost in Python world, this is an interesting choice. Plus, I don't even really know golang. I used it for a few weeks in a concurrency class in college, and haven't touched it since. Yet, this gets at this idea of "If you are going to vibe, you don't have to vibe in Python". AI coding makes actually being super productive with a language less important, and frees you to just choose whatever tool is best for the job. This project is a classic case where Go is supposed to excel (a bunch of networking code with some basic API and database ops). Go is a friendly memory-safe language, that is famous for being readable and quick to learn for developers. So it seemed like a natural choice for this project, and I felt comfortable just reading the code and picking up the details as I went without concern I'd do something terribly wrong. I also talked about this concept a bit in DN-07 where I used AI to port Python code into Rust, despite limited Rust proficiency, as that was simply the best language to tackle a problem. I want to discuss cases where this does and does not work in a future article.

I'm still pretty unclear about my ambitions for Webbier (like if I want to make it accessible to others). Thus I did some interesting optimizations and security design that probably make less sense if I just use it for Dactile, but gives me flexibility if I later expand it.

After doing the comment aggregation, the backend uploads a JSON to Cloudflare R2 which gets served to a javascript embeddable component. This was my first time using Cloudflare, and has been interesting experience.

The current functionality isn't really meant for dev notes right now (I will add private comments via email and activity pub comments for that), so I won't include an example yet. I'm excited to hopefully have this for the next main post though. I also hope to go more into the technical details here in a future article.

Newsletter Test

While I don't really like email newsletters, as discussed in DN-15, DN-18, and DN-22, I was persuaded towards making one. It gives an option for some people who want to keep up with updates. I finished building that out and now have this widget.

Now I don't have an actual good way of rendering articles into emails and it is very untested. So if you stumble upon this dev note, know there's a good chance this won't actually work / you won't actually get any updates until I get this worked out.

Conclusion

There was some site meta stuff. I'm pretty excited about Webbier. It's a cool technical challenge. But it's also a bit of a distraction from writing articles. Hope to have more that soon.