RFC forum [draft]

on team pico's blog

proposal for single-tenant forum
#rfc

Forums used to dominate the web, but now there are instant chat apps like discord, social link sharing apps like reddit, and knowledge sharing apps like stackoverflow. They all have their strengths, but I think forums can still be relevant in 2022 and beyond.

We want to create a self-hosted forum service that leverages SSH for all authenticated operations. So creating threads, replying to threads, etc., would all happen via SSH.

We would have a simple read-only website to actually read the forum.

Features

Technical ideas

categories

Moderators should be able to create high-level categories for threads. Maybe this is accomplished via tagging.

threads

Creating a thread within that post could be accomplished via SSH subcommand:

1echo 'This is an example post, written in markdown.' | ssh forums.sh thread general

thread is the subcommand and general would be the category to post the thread under.

reply

1echo 'I am replying to this post' | ssh forums.sh reply abc123

abc123 in this case is an ID for the thread which will be shown on the thread itself on the website.

posts

Users would be able to edit posts by editing the markdown file they used to create the post.

moderation

Some ideas

Lock user:

1ssh forums.sh lock user username

Lock thread:

1ssh forums.sh lock thread abc123

Delete thread:

1ssh forums.sh delete thread abc123

Delete post:

1ssh forums.sh delete post abc123

editing

This one is a little trickier.

We could take a few different approaches here. We could suggest that the user create "posts" in a local folder and then sync them to us like they would with prose. This would allow for better editing abilities.

reply-to-some-thread.md

1---
2reply-to: abc123
3---
4
5I am replying to this post
1scp reply-to-some-thread.md forums.sh:/

This would make it easier for the user to edit their posts. If they want to just echo their response quickly without creating a file, we could return a unique id for that post which they could then download, edit, and then reupload.

1echo 'I am replying to this post' | ssh forums.sh reply abc123
2
3ID: 11111

Then they could:

1scp forums.sh:/11111 .
2vim 11111
1---
2reply-to: abc123
3---
4
5I am replying to this post, but also make an edit.
1scp 11111 forums.sh:/

For the MVP I think the traditional approach of creating a file, adding metadata, and the contents of the post.

Join our irc #pico.sh on libera or email us at mailto:~erock/pico.sh@lists.sr.ht.

Be sure to subscribe to our rss feed to get the latest updates at team pico.