Say what tsbb is: a platform with front doors, not only a forum - #19
Merged
Conversation
The front page, the About page, the docs index and llms.txt each described the board in their own words, and between them they undersold it: an API, a CLI, an MCP server, an installable app, a terminal client, runtime plugins and self-updating installs were either buried in the README or nowhere. The claims now live in apps/server/src/platform.ts and every surface renders the same list. Each entry carries a status: `live` means it is in this repository today, `planned` renders as a badge with no link. Peer to peer is the only planned one, and it is marked as such on the front page, on About, in the docs index and in llms.txt, because a roadmap item written as a feature is the one lie a marketing page tells by accident. New documentation for the front doors that had none: docs/AGENTS.md (what the board publishes for machines, and why agent-ok and human-ok are the same board), docs/PWA.md, docs/UPDATES.md and docs/SKINS.md. They are served at /docs like every other guide and go into llms-full.txt and the sitemap. test/platform.test.ts holds the copy to the code: every live claim must link at something answering 200, a planned one must have no link and must render as planned everywhere, llms.txt must say the same thing as the page, and the grid must carry no inline style attribute. Also here, because they were in the way: - `board.showPlatform` (Appearance, on by default) hides the panel for a board whose readers are not looking to run one. Members never see it. - llms.txt link labels come from each document's own <h1> rather than the first clause of its blurb, which for a blurb with no colon printed the whole sentence as the link text. - The docs page footer line used a style="…" attribute, which the board's own CSP refuses, so it had been rendering unspaced. It is a class now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QuUkTrofSjQ15j79mRuy4f
ralyodio
marked this pull request as ready for review
September 12, 2026 11:23
Merged
ralyodio
added a commit
that referenced
this pull request
Sep 12, 2026
Bump every workspace package.json from 0.5.1 to 0.6.0. Carries #19 (platform positioning). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QuUkTrofSjQ15j79mRuy4f
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tsbb.dev said "A TypeScript bulletin board" and stopped there. The API, the CLI, the MCP server, the installable app, the terminal client, runtime plugins and self-updating installs were either buried in the README or nowhere on the site at all.
What changed
The claims are data now.
apps/server/src/platform.tsholds one list of front doors, each with a status.livemeans it is in this repository today;plannedrenders as a badge with no link. Four surfaces render that list instead of writing their own:/about, with a new "What is it built on?" section/docs, at the top of the index/llms.txt, as a "What this board can do" sectionPeer to peer is the only planned entry. There is no node-to-node code in the repository, so it is marked planned everywhere it appears and links nowhere. The README says the same thing in as many words.
New guides for the front doors that had none:
docs/AGENTS.md,docs/PWA.md,docs/UPDATES.md,docs/SKINS.md. Served at/docslike the rest, so they are inllms-full.txtand the sitemap too.README leads with the front-door table rather than the feature list.
Backed by code
Every claim was checked against this repository before it was written:
apps/server/src/routes/api.ts,openapi.ts--jsonapps/cli/src/remote.tsapps/server/src/routes/mcp.ts,apps/mcpapps/server/src/routes/pwa.ts(manifest, worker, icons,/offline)apps/server/src/routes/discovery.tspackages/plugin-api,packages/plugin-host,plugins/apps/server/src/updates.ts,packages/core/src/updates.tstsbb-tuipackages/ui/src/styles,apps/tuiroutes/discover.ts,packages/core/src/feed-sources.tsNot backed by code, and not claimed as a feature: peer to peer / distributed boards. Nothing in the repository connects one board to another, federates, or syncs between nodes.
Also here
board.showPlatform(Appearance, on by default) turns the front-page panel off for a board whose readers are not looking to run one of their own. Members never see it either way.llms.txtlink labels come from each document's<h1>rather than the first clause of its blurb, which printed the whole sentence when a blurb had no colon.style="…"attribute, which this board's CSP refuses, so it had been rendering unspaced. It is a class now.Tests
pnpm test: 199 pass, 0 fail (193 before, 6 new).pnpm typecheck: clean. The formatter was not run, per the repo's state at HEAD.test/platform.test.tsis the guard on the copy: every live claim must link at something answering 200, a planned one must have no link and must render as planned on/,/aboutand/docs,llms.txtmust say the same thing the page does, and the grid must carry no inline style attribute.🤖 Generated with Claude Code
https://claude.ai/code/session_01QuUkTrofSjQ15j79mRuy4f