Changelog
What is built
Publishing pipeline
Database-driven dispatch claiming due rows with SELECT … FOR UPDATE SKIP LOCKED, a transactional outbox written in the same transaction as the claim, two anti-duplicate keys — one stable for the platform, one per attempt for us — five classified failure outcomes, and a reconcile pass on a clock set longer than the queue lock.
Fourteen platform adapters
One transport, one registry, per-network capabilities — character limits, media counts, thread support, aspect ratios — expressed as data.
Public REST API v1
Every route described once in a typed table that also generates the OpenAPI document, so the docs cannot drift from the handlers.
MCP server
Eleven tools mapped onto the same domain services the portal uses, so the two can never drift.
Design system
Forty-one primitives: solid colours only, two shadow steps, 44px touch targets, motion capped at 150ms, dark mode by token swap.
Installable PWA
App-shell precache, stale-while-revalidate reads, an IndexedDB outbox with background sync for offline drafts, web push and a share target.
Multi-tenancy safety
Every query workspace-scoped through repository helpers, with 29 tests against real Postgres asserting the boundary across 62 service calls in packages/core/src/services/__tests__/tenancy-isolation.db.test.ts. A cross-tenant miss is a 404, not a 403.
Billing and metering
Stripe subscriptions monthly and annual, proration, dunning, plus an AI credit meter with 80% and 95% warnings and top-up packs.
Follow along
Start free and you will see each of these land as it ships.
No credit card · Cancel anytime · Every plan includes the API and the MCP server