Most teams pay per seat for chat. Then they pay again for a standup bot. Then again for an AI add-on. I wanted one thing I could run myself that did all three, so I built Forma Chat: open-source (Apache-2.0) team chat that runs on your own server, as one Go binary with a SQLite file. 📺 Watch the 74
-second video · 💻 Code on GitHub Public and private channels, DMs and group DMs, threads, reactions, edits with history, pins, mentions, drafts that follow you across devices Full-text search (SQLite FTS5), filtered by what you can read before any result, snippet or count exists Turn any message into a task; My work ranks your own tasks and shows why each one is near the top Daily standups that draft themselves Optional AI agents with your own key, or your own Claude Code connected over MCP It's an early release. Files, huddles and mobile apps aren't there yet, and the repo keeps a feature status page that says exactly what works. Every task change is recorded as an event: created, started, finished, blocked, commented. At the time you choose, Forma builds each person's draft from their own events that day: Done: what they finished, started or worked on Next: their top open tasks by priority and due date Blockers: blocked tasks, with the reason they wrote No model is involved, so it's free, fast and explainable.
The privacy rules mattered more to me than the drafting: A draft is visible only to its author until they submit it. Work in personal tasks or private channels the team channel can't see shows up only as a private suggestion ("Only you can see this"). It is never put in the summary automatically. One summary posts per day.
People who didn't submit are listed as "No update yet", never guessed at. No keystrokes, no screenshots, no activity scores, no ranking of people. An admin creates an agent, gives it the workspace's own Anthropic API key (or any OpenAI-compatible key) and adds it to channels. Mention it and it answers live in a thread, streaming, with a Stop button.
It can search messages and create or list tasks, always with the asking person's permissions. The rule I spent the most time on: an answer may only use what the channel it's answering in can already see. If you ask in #general, it won't quote a private channel you happen to be in. Or skip the API key and connect the Claude you already use.
Create an external agent, add it to channels, make a token, then: claude mcp add --transport http forma \ https://chat.example.com/api/v1/mcp \ --header "Authorization: Bearer fma_..." Claude Code can then list its channels, read and post messages, search, and list or create tasks, only where that agent was added. Go modular monolith + SQLite in WAL mode, with embedded migrations. The React/TypeScript client is built by Vite and embedded in the binary, so deploying is copying one file. One read policy.
A single Authorize function decides whether a person can read a conversation. Search, threads, realtime and agents all go through it, or through its SQL set form, and a test checks the two always agree. Denied and missing look the same (404). Messages are never silently lost.
A message is stored before it is acknowledged. A transactional outbox feeds realtime, and WebSocket events are only wake-ups. Clients catch up from a per-conversation change counter, so a reconnect replays what was missed and retries never duplicate. Agent keys are sealed with AES-256-GCM, bound to the agent, and never shown again.
Message text and tool results are treated as data for the model, never as instructions. You need Go 1.26+ and Node.js 22+: git clone https://github.com/pandeyvishwas51-oss/forma-chat && cd forma-chat make setup build ./bin/forma serve The server prints a one-time link to create the owner account. For a populated demo workspace, run node scripts/demo.mjs. I'd love feedback, especially on the standup privacy model and the agent audience rule.
Issues and PRs are welcome: https://github.com/pandeyvishwas51-oss/forma-chat
Key Takeaways #
- •Files, huddles and mobile apps aren't there yet, and the repo keeps a feature status page that says exactly what works.
- •This story was reported by Dev.to , covering developments in thedev space.
- •AI advancements continue to reshape industries — read the full article on Dev.to for complete coverage.
📖 Continue reading the full article: