Goals for the Neuhub Forum View
One of my goals with the new theme is to give forums a more robust forum experience, while still maintaining the benefits of the social media style currently in use.
Social media style, which Hubzilla, Facebook, Twitter, and Mastodon use, are great at showing you what is happening now, while older posts disappear into obscurity as they scroll off the page.
Whereas forums structure content in a way where it is easier to find and refer to older posts, and each topic has its own page which can be indexed by search engines. My goal is to provide both experiences.
The Dream / Brain DumpSo, what I envision is this:
Ways to View Posts
- Social Media View - Shows recent updates to a conversation, collapses old replies. (current Hubzilla default)
- Forum Topics View - Shows a list of conversations showing the title and summary. You must click on a link to view a forum post. Paginated or infinite scroll. (Traditional forum view)
- Forum Post View - Shows an individual forum post, with nothing collapsed. Paginated or infinite scroll for longer discussions. (Traditional forum view)
- Category/Tag View - Shows posts with a particular tag, in social media format. (current Hubzilla default)
- Search Results - Shows posts for a particular search term, in social media format. (current Hubzilla default)
My goal is for users to be able to choose how they consume the content, being able to navigate in both the social media view and the traditional forum view, as well as consuming it remotely on their own hub. This could be implemented fairly easily.
Advanced FeaturesThere are some advanced features that I would like to implement, but these would take a lot more work. Consider this a wish list of stuff I want to add later.
- WYSIWYG. Make it easier for end-users to post without having to know bbcode.
- Forum hierarchy, so you can organize multiple forums under a section or heading.
- Force user to specify a Title for Forum Posts. The title should not be optional for forum posts. It screws up the traditional forum views, although as a contingency, we can just display the first 30 characters of their post as the title if they fail to specify one. But in situations where we control the form they fill out, the title should be mandatory.
- Posting without having to connect to a forum. Connect, in this context, would work more like "subscribe" and allow people who connect to receive updates. But you should not be forced to receive updates for a forum you only post once to, for example. You still have to be logged in to post, but you don't have to connect to the channel to post or comment. Or perhaps you have to be connected to post a new topic, but you can reply without being connected. It probably would be good to give forum admins a choice. Ideally, users still get updates to the thread they commented on, but if they don't, that is okay too.
- Forum Titles, Ranks & Gamification. Traditional forums typically have some indicator showing how active someone is on the forum, and often give people a particular title or rank. Maybe some squares under their username, with more squares indicating a higher post count. Ranks are important on busy forums because they identify Administrators and Moderators and important users. This would not be too hard to implement, since none of this information would be federated. You would old see it if you visited the forum's hub.
- Better Transfers between Hubs. For security reasons, you are sometimes redirected back to your own hub to do certain things. For example, when you connect to a forum, it sends you back to your hub. Or when posting on someone else's wall, you can only edit your post on your own hub. But it gets confusing to users when users are not transferred back to where they came from, or some features are only unavailable on their own hub. For example, deleting a connection can only be done on your own hub, not on the channel's hub. An easy way to fix this is provide links back to their own hub to complete certain tasks and then give people an option of where to go after they complete a task. Let's say they connect to a forum. After they connect, give them a link or button that allows them to immediately return to the forum if they choose. Since it does not auto-redirect, they can also hang out on their own hub instead. Just streamlining the navigation a bit so there are less clicks and people know where to go next.
- Related Articles, Wikis, Bookmarks, Posts, Links, etc. - Have some way to connect related resources. For example, if someone is asking about some topic, and there is an existing article, or wiki or webpage about it, make it so that there is a link in the sidebar to that resource. It would be a polite way of saying "Hey, this was already answered over here" with the benefit of the links being more prominent. This feature would typically be reserved to admins and moderators. Forum operators could possibly open this up to users, but it would be up to the admin to set the permissions they want.
Where possible, I would use existing addons to add these features, but in many cases I would need to write my own addons or mods.
Hard ModeThis is stuff that I want to do, but would probably be difficult to implement because of the federated nature of Hubzilla. But I still think it could be done.
- Move forum posts to a different forum. This one would be tricky since other hubs would be expecting the conversation to be at the original channel. You may or may not want to repost, since that would send out new notifications. One possible way to do it is to leave the original channel data in the database, but then have additional fields that mark it as moved. When displayed locally, it shows the correct forum and mentions that it was moved from another forum. Other hubs might not show the correct forum, but when viewed locally, it would. The tricky part would be how to handle notifications.
- Upgrade a comment to it's own topic. This actually would be easier to achieve than the previous one. Instead of showing the comment in the original thread, you mentioned that it was upgraded to its own topic and link to the new topic. And you simply take the comment and repost it as a new topic. The tricky part is if someone on a remote hub replies to that comment, where does it go? The new thread or the old thread? If you put it in the new thread, how does that affect notifications? And you might have to create a way to move comments to another thread too.
- Ability to direct message remotely authenticated users, if their platform supports it. As an administrator or moderator of a forum, you sometimes have to communicate privately with people posting on your forums, especially if they are violating forum rules.
- Additional Moderation Controls. Traditional forum software often had robust moderation features. So, in addition to the above, add more advanced forum moderation features.
- Robust spam controls. The challenge of allowing remote users to post is that you don't have direct control over their user accounts. While that is a feature of federation, it can be the bane of forum moderators. For example, if a hub does not vet its accounts or a spammer figures out how to automate account creation and posting with bots, you can easily get flooded with spam very quickly. You can block the user, but since you don't know the spammer's IP address, you can't blacklist or restrict their IP address. That makes it harder for forum admins to notice that the same IP signed up for 100 accounts on another hub, and they are all spambots. We may have to become more creative in combatting spam, because we cannot assume that a remote hub is secure.
So, this is my dream. This would obviously take a long time for me to create. So be patient. And, to be clear, I am not promising to create all of this. This is mostly just a brain dump of what I want to create. But, on the bright side, since these are features I want on my own Hubzilla forums, they are likely to eventually get done, even if it takes years.
This post is mostly for myself to remind myself of some of the features I would like to build. I decided to share it with you so you can see part of my vision too.