Skip to content

feat: NIP-29 channel subgroups — hierarchical channel organization #3667

Description

@therealmckellar

Problem
Buzz currently has no way to organize channels into hierarchical groups (like Discord categories). All channels are flat, which becomes unmanageable at scale.

Our use case:
We self-host a Buzz relay with 106+ channels across multiple 'categories' (AI agents, commercial funding, work sales, real estate, consulting). Without hierarchy, users must scroll through a flat list of 106 channels with no visual grouping.

What NIP-29 Specifies
The NIP-29 spec defines subgroups via the parent tag on kind:39002 (group metadata) events. A relay that supports subgroups should advertise "subgroups": true in its /info response.

Current Behavior
/info returns "nip29": {"subgroups": false}
Sending a kind:39002 event with a parent tag returns "actor not authorized"
No env var or config flag enables subgroups
All 106 channels appear flat in the desktop app

Proposed Solution
Implement NIP-29 subgroup support so channels can have parent/child relationships:

Relay: Accept and persist parent tags on kind:39002 events
/info: Advertise "subgroups": true when implemented
CLI: buzz channels create --parent to nest channels
Desktop: Render channels in a tree view with collapsible groups

Why This Matters
Discord has ~200M+ users organized around category/channel hierarchy
Slack has channels + sections (similar concept)
Without subgroups, Buzz channels scale poorly beyond ~20-30 channels
Self-hosted communities (like ours) need organization for multi-team/multi-project setups

We are using prefix naming (HERMES • channel-name, MCF • channel-name) as a visual grouping hack, but this is fragile and doesn't provide real hierarchy.

Alternatives Considered
User groups (#2728) — solves member grouping, not channel hierarchy
Channel templates — organize at creation time, not at runtime
External relay with subgroup support — none production-ready as of mid-2026

Related
#2851

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions