Categories, publishing, and a public docs API
Every doc can now have a category and be published to a public feed. The two built-in categories — feedback and release — work the same as any category you make up. Underneath, it's all one primitive: a doc with a type, an optional slug, and a publish state.
This unlocks a lot. The most obvious use is what we just shipped: simpleproduct.dev/blog is built entirely on the new public API — no special blog infrastructure, no separate database, just docs with category: "blog". You can do the same on your own site for a blog, knowledge base, public roadmap, case studies, RFCs, anything.
What's new
Categorize any doc
Open a doc, hit the … menu, choose a category. Free-form: type blog, changelog, case-studies, whatever fits. Categories normalize on save (Blog → blog) so Blog and blog are never two separate buckets.
Publish from the doc editor
The Publish button (in the toolbar) opens a popover where you set a slug, an excerpt, and toggle the publish state. Published docs are immediately reachable via the public API.
Public docs API
Three new endpoints, no auth required:
GET /api/v1/docs/public?type=<category>&workspace=<slug>— list published docs in a categoryGET /api/v1/docs/public/<slug>?type=<category>&workspace=<slug>— single published doc by slugGET /api/v1/docs/rss?type=<category>&workspace=<slug>— RSS feed for a category
Existing /api/v1/releases/public and /api/v1/releases/rss keep working unchanged.
Authenticated docs API now does everything
POST /api/v1/docs and PATCH /api/v1/docs/:id accept type, slug, excerpt, and publish (boolean shorthand for status). Pass null to any optional field to clear it.
MCP tools (@simple-product/mcp@0.1.14)
create_doc and update_doc accept type, slug, excerpt, and publish. Your coding agent can publish a doc into any category in one tool call. Update by running npx @simple-product/mcp@latest --install and restarting your MCP client.
Comments via MCP
create_comment is now a first-class tool. get_card / get_doc / get_feedback include the existing comment thread inline. Agents can read and post comments on behalf of the user.
How to use it
- Pick a category name. Anything URL-safe —
blog,changelog,guides, etc. - Set it on a doc via the
…menu, fill in a slug + excerpt, click Publish. - Read it back from
/api/v1/docs/public?type=<your-category>&workspace=<your-workspace-slug>. - Render however you want — your stack, your design.
If you want a head-start, the simpleproduct.dev/blog code is intentionally minimal and uses the same public endpoints any customer would. Same pattern works for any category.