Gemini Acentred Messaging System
Revision 1 - Created on 2020-12-28
This is an attempt at a specification to build a messaging board system allowing people to answer each other through their gemlog.
Registering to a board
When someone wants to register as a writer on a board, they send to the board the url of their gemlog, and the tag that will be associated to this board. How these informations are sent to the board is not part of the specification. It may be through a manual or automated system depending on the board politics.
Posting to a board
In order for a post to appear on the board, the author post on their own gemlog a new article, containing the tag enclosed in square brackets in the title. The date must not be in the past or future. The first link in the article is considered to be the message the author is responding to. When creating a new thread, link to the board homepage instead. At the end of the article, there should be a link to the board thread, allowing to find future responses.
The board
The board needs to periodically crawl registered gemlogs to search for new articles, using the gemfeed format, and filtering on articles with the registered tag. It should check the first link to see if the message is a new thread or a response.
The board should present a threaded view of messages, and host a page for each thread.
It may list only messages links, or choose to show an exctract for each message, or only the first one, at the board administrator convenience.
The board home page should list active and new threads.
It is not expected from the board to cache nor host full messages, they should live on their respective authors gemlogs.
Open questions
- Convention for thread page naming? How can the message author easily link to future responses? Maybe simply put the message URI in the query.
- Handling of errors, like first link to unknown page
- Periodicity of crawling. Push system to ask the board for crawling our gemlog?
- Does first link needs to come before any other content, or to reside on first line, or something else?