Changelog
What shipped, when. Newest first. Dates are from the repository history.
Last updated
-
Marketing and documentation site
- Public site with docs, comparisons, use cases and glossary, served by the same container at /.
- Markdown twins of every docs page and llms-full.txt for agents; Accept: text/markdown honoured.
- A live demo form on the home page posting real test submissions.
-
Dashboard polish
- Display-scale first-run headline, accent postmark brand mark, staggered "It arrived" reveal.
- Inbox id chips, postmark delivery status, delivery timeline, collapsible metadata.
-
Server follow-ups
- Scope implication (manage ⊇ read ⊇ submit).
- Client IP and country from Cloudflare headers.
- Organization system webhooks dispatched from a Postgres trigger, with GET /v1/webhooks/{id}/deliveries.
- Digest routes: one payload per period, unique by (route, period).
- Schema inference for observe forms: POST /v1/forms/{id}/schema/infer.
- Row-level security policies and the postbag_app role in migrations.
-
Production verified end to end
- Signup → GET /v1/me → API key → POST /v1/quickstart → real submission → email delivered in about a second.
-
Dashboard and SDK
- Vite + React dashboard at /app: forms, inbox, destinations, routes, streams ("Bags"), deliveries, events, API keys, settings, command palette, live inbox.
- @postbag/sdk generated from the OpenAPI document.
-
Server
- Submit path with honeypot, origin allowlist, rate limit, Turnstile, _redirect, _test, idempotency.
- Full /v1 API, Better Auth with API keys, organization provisioning on signup.
- Worker with email, Telegram and webhook adapters; /health; /llms.txt; generated /openapi.json; multi-stage Docker image.
-
Core, database, auth
- Pure domain package: validation, mapping, routing decisions, spam heuristics, templates, ids, signing, backoff.
- Drizzle schema with 23 tables and migrations; claim and notify helpers.
- Better Auth with organization-owned API keys.
-
Contract
- Principles, domain model, architecture, agent-native spec, design system, roadmap, ADRs 001 to 005, and the OpenAPI sketch.
Next: row-level security enforced per request, CLI and MCP server as thin clients over the SDK, Slack and Discord destinations, expression mappings and filters, file uploads, billing.
Your first form is three minutes away.
Sign up, get a submit URL, point a form at it. The first submission lands in your inbox and your email. Everything else appears when you need it.