BeGroups: A native Usenet newsreader (think Reddit, but as open standard)

Hallo Haiku fans!
Today I want to share my latest project which I’ve been working on for the last few months.
It’s a native Usenet newsreader,based on Item combined with code from Haikus built-in Mail application.
I’ve reworked and modernized the code to make use of modern Haiku features such as the Layout Kit,Locale Kit and of course system colors.
It’s not finished yet,in fact I think there will be a good number of bugs you may encounter,and lots of missing features,too.
But with the recent addition of a bundled article viewer (as said,based on Haikus Mail app),it does now at least have all basic functionality to be somewhat useful,so I think it’s the right time to show it here.
Screenshot of BeGroups
What is the Usenet?
If you’re younger than 30 or so,there’s a good chance that you’ve never heard of the Usenet before.
That’s unfortunate,because the Usenet is a really intersting decentralized forum network based on an open standard.
Think of it like Reddit,but there’s no single company that owns all of it,no advertising,and you can access it using a variety of native client applications on different operating systems,rather than a massively bloated and slow web interface.

How can I join the Usenet?
Access to the Usenet isn’t bound to a specific company,instead you can freely choose one of many independent but connected servers to access the whole network,like you can choose one E-mail provider and still write to users of all other servers.
Some free text-only servers:

Besides that,there are numerous paid servers which offer access to binary downloads and faster speeds,but that’s not so interesting for BeGroups primary use-case as a forum-like experience,not a downloader.

What’s interesting on the Usenet?
That depends on your interests,there are groups about almost everything,from technology to politics and more.
While a big part is English,there are also groups in other languages.
If you care about Haiku and/or BeOS,here are some groups you can have a look at:

  • alt.os.haiku
  • alt.os.beos
  • comp.sys.be.help
  • comp.sys.be.misc

None of the Haiku/BeOS related groups are actively used currently,but we can change that,it only needs people who post some content.

Where can I get BeGroups?
The BeGroups project can be found on Codeberg.

There are currently no ready to use HPKGs as the project is still in early alpha stage and I don’t feel like calling the current situation a fixed version that I can release as-is.
Trying it out is easy if you use a recent Nightly,however,as the Makefile contains all instructions for creating a package in a single step.

git clone https://codeberg.org/nikisoft/BeGroups
cd BeGroups
make package

And install the resulting .hpkg file.

Feedback welcome :slight_smile:
Thanks for reading my introduction,it got longer than I initially planned,but there was so much to say.
As always,I’m happy about feedback,be it feature requests,wishes,ideas or bugs.
You can reply directly here or use the issue tracker on Codeberg,I’m flexible with that.
Contributions/Pull requests are also more than welcome :slight_smile:

Edit: Just got feedback that it doesn’t build on Beta5.Seems there are some API changes with the BObjectList,so you have to use a Nightly to try it.

23 Likes

Cool project, will definitely try it on my nightly VM. Usenet used to be a big part of my online life up until the early 2000s (I’m quite a bit over 30 :rofl: ).

Some years ago I started to write an NNTP Client for Haiku as well, but it never got half way to being functional. I’ve got too many projects and some of them got stranded.

1 Like

I know that problem with too many projects and too few time very well.
I thought that it was maybe one or two years ago that I planned working on NewsBe,turns out I wrote about that in January 2022,so 4 years ago.
There was hope to get the Pineapple News source back then,so I waited for that but nothing happened.

Yeah that was the discussion that got me to first look at NewsBe, but decided not to work on it (can’t remember exactly why) and write an NNTP client from scratch.

Good think you continued yours and got it to a working state. :+1:

NewsBe seems pretty broken,couldn’t get it to connect to the server or do anything useful.
I was looking at both NewsBe and Item and had to decide which one to take as a base for my fork when I wanted to work on a native newsreader again in late 2025.
Item had the downside of not having a integrated reader/editor,but otherwise worked pretty well and connected without issues,so I continued there.

1 Like

I just compiled BeGroups on my nightly VM, and configured it with my newly created account on eternal-september.org . But it can’t get the list of newsgroups. The exact error message is: Couldn’t send command to get groups list. (General system error). Is there a log file I can look at or anything else I can do to debug the problem?

The account works, at least for login on eternal-september.org

There’s no log file,but maybe the Terminal prints anything if you start BeGroups from the Terminal.
It doesn’t print much to the Terminal,but I haven’t had this specific error yet,maybe it does in this case.
I just tried a clean build again on a laptop where I never used BeGroups before and it worked as expected here.
Do you get the error already after you enter the server URL on first start,or only after you configured your account?
Eternal-september shows a limited selection of groups without login,it works in BeGroups both with and without authentication here.
What hrev are you using?
64bit or 32bit?

It works now. I had pasted the news server address from from the registration email, including the “http://” part. Removing the protocol specifier fixed the problem. Should have noticed that right away. :slight_smile:

1 Like

I should probably add some validation here :thinking:

By the way, BeGroups compiles and works on my 64-bit beta5 system. Just wanted to let you know :slight_smile:

That’s really interestig.
@Begasus told me on the IRC that it doesn’t work on his Beta5 install.
Here’s the build log: View paste Z52Q
I don’t have a Beta5 system here to test,all my devices run Nightly.

Edit: Seems to be related to this change: https://codeberg.org/haiku/haiku/commit/cbfbbf6d4d0e9c28332e8c1f53bf7134896ac7d3
Not sure why it works on your install.

Interesting. “make package” does indeed fail as well on my beta5 system. Just “make” works and produces a working executable. Maybe related to different include paths.

Running only make in the top directory builds only the main BeGroups binary,not the article reader.
You need to also run make reader or run make in the reader subdirectory,which should fail on Beta5.
make package builds the Reader automatically.

OK, that makes sense. Now the displayed messages look a lot nicer too (on my nightly system, that is) :slight_smile:

I’ll take a look at the compile errors on beta5 tomorrow. Maybe there’s a fix to make it work on beta5 as well.

2 Likes

So nice to see Native app finally becoming a thing here in Haiku!

Exciting!

Native apps are what makes Haiku unique and special,I hope there will be many more in the future.
Quite a few cool new native apps have been shown here recently.
If you’re a developer and know C++ or want to learn it,there are almost 400 old open-sources BeOS applications that you can try to modernize: HaikuArchives repositories · GitHub

6 Likes

I’m a little confused, I logged into the server you said you use, but I don’t see a way to connect to any of the Haiku/BeOS related groups..

You need to enter your username and password in the preferences and restart BeGroups.
Without authentication,eternal-september offers only access to a very limited selection of newsgroups.
That being said,the UI/UX should really be improved to ask for credentials directly on the first start,as only very few people are going to use it without an account.

2 Likes

I did that- created a username and password on https://eternal-september.org/ logged out/in, added my username and password to BeGroups, relaunched BeGroups and still the same small list of groups.. What am I missing?

Go to /boot/home/config/settings/BeGroups and delete the Groups file.
If it’s missing,the group list is newly fetched from the server.
It should delete the file automatically if you change either the Server address or User name setting,but maybe it didn’t do that in your case.