micro / micro/mu

Discussions: needs a subject and a group, and we have neither yet

Open
#1,478 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
434
Forks
21
Avg merge
18m
Merged PRs (30d)
326

Description

Logging this so it is not forgotten. Not to build now — the two things it rests on do not exist.

Why a discussion is not a chat

Chat is synchronous and lossy: it scrolls away, and anybody who was not there reconstructs it by scrolling. A community is by definition a group of people who are not all present at the same time, so it needs the durable half — something that accumulates, where arriving late costs nothing. That is what a discussion is, and it is why WhatsApp groups get unusable past about six people.

Voice and video are the other end of the same axis and are tracked separately.

Why the inbox is not it either

The inbox has taken on roughly this shape — it lists conversations, and notes and tasks now land there too — but it is not a discussion forum, and the reason is participants. An inbox conversation is between you and one other party. A discussion has an audience.

Making the inbox do both would mean renaming it, and that does not hold: the inbox is yours, singular-possessive like the rest of the product. A discussion is not.

The two things missing

A subject. Discussions are normally around something. On the internet that something is usually a thing somebody shared — a link, an article, a document. A room with no subject is a chat, which we already have.

A group. Multiple participants with an audience boundary. service/chat has the membership primitive already (Open, Member, Mine, Listable), so a group is that record promoted out of chat and reused. That is the prerequisite, and it should come first.

What we already tried, and what it taught us

"Discuss with AI" on news articles. Rooms attached to items, opened from the article. It did not go anywhere. The subject was there and the people were not — a discussion needs both, and an item room with one person in it is a chat with a model.

Control buttons everywhere. Save, discuss, share on every card. It did not translate; the buttons were noise on pages that were doing something else. Worth remembering before reaching for that pattern again.

Note the contrast with aslam.org, where anything can be saved as a note or used as context for a chat. That works because it is one person's own material — the action has an obvious owner and an obvious destination. Neither is true of a discussion button on a shared page.

Order

  1. Groups (a service, membership promoted out of chat)
  2. Then discussions, attached to a shared thing
  3. Community, if it turns out to be a real layer above groups, which is not decided

Substrate, when it comes

internal/thread is threads and messages. A discussion is the same object as an inbox conversation with a different audience — the difference between a DM, a group thread and a public discussion is who can read it, which is the property chat.Private/Member/Listable already models. So this is not a new type; it is an audience on one we have.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the membership primitives in service/chat—Open, Member, Mine, and Listable—and the thread and message model in internal/thread. The issue explicitly says not to build this yet: groups are a prerequisite, and the discussion design and completion criteria remain undecided.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.