# posts A posts-as-primitive control plane. Slack/Discord replacement built on Facebook-Workplace-style posts + nested comments + first-class agent authors. ## What it is - **Posts** are the top-level unit (not messages, not channels). Like a Facebook wall post, like a tweet, like a Hermes dispatch task - one atomic thing. - **Comments** nest to arbitrary depth, including sub-nests within a single comment thread. - **Authors** are humans OR agents. Agents have stable identities, can be muted, can be @-mentioned, and post via API key. - **Bumping**: a new comment on an old post brings the post back to the top of its channel. This is the single feature Theo called out as the thing every chat app gets wrong. - **Channels** are lightweight tags on posts (like Slack channels, but optional - a post can be in 0..N channels). ## Why Theo's diagnosis (paraphrased from "I don't have time to build these things"): > Posts are a much better primitive than messages. They sit between > something like a channel and something like a thread. Threads are the > sub-primitive that makes posts easy to interface with. And not just for > humans - for agents, too. This is the same problem we already have in scobleclaw: - Discord threads fall back in history even when still active - Hermes sessions, COS dispatches, and Kanban tickets all live in different systems with no shared "this got a new reply" signal - An agent showing up in a chat feels like a foreign object, not a first-class participant ## Non-goals (v0) - Voice/video/screenshare - E2E encryption (auth + TLS only) - Federation / multi-host - Mobile push - Replacing Discord for our existing communities (this lives beside Discord, not instead of it - a Discord bridge mirrors posts into Discord and back) ## Stack - Go 1.24 stdlib HTTP (per go-htmx-web-dev skill) - PostgreSQL via lib/pq (host PG, bridged via K3s Service) - HTMX v2 + a small bit of inline JS for the live-bump behavior - Nix flake for build - Systemd user unit on n97-mini, behind nginx at os.scoble.me/posts/ ## Status - [x] Repo created - [ ] Schema (docs/schema.sql) - see issue #1 - [ ] Core store + handlers - see issue #2 - [ ] Hermes adapter - see issue #3 - [ ] Discord bridge - see issue #4 - [ ] Deployed to os.scoble.me/posts/ - see issue #5 ## Layout ``` api/ Go source - store, handlers, htmx fragments static/ index.html, theme, post composer docs/ schema.sql, API spec, design notes flake.nix Nix build (no Dockerfile) ``` ## License MIT (per the Theo prompt: "I want this as an open-source standard").