← All updates

Draft / publish split — and AI moves out of the core

The biggest pivot since launch. /api/v1/render now takes a templateId you saved earlier, /preview is the free authoring surface, and AI is no longer part of the core worker.

apibreakingbilling

The biggest pivot since launch. makesPDF is now positioned as the fastest PDF rendering API — no longer an AI product. The AI is yours to bring.

Breaking: /api/v1/render contract changed

  • Old: POST /api/v1/render { type, data } — called Claude/OpenAI to auto-generate a template, then rendered it. Billed.
  • New: POST /api/v1/render { templateId, data } — renders a template you previously saved via POST /api/v1/templates. Billed (1 credit / 10 pages on success; zero on any 4xx/5xx).

There is no migration shim — pre-launch, no external customers to migrate.

New: template persistence API

  • POST /api/v1/templates — save a DSL template (free; catalog-validated; 512KB DSL cap).
  • GET /api/v1/templates — list your templates.
  • GET /api/v1/templates/:id — fetch DSL.
  • PUT /api/v1/templates/:id — update DSL or name.
  • DELETE /api/v1/templates/:id — delete.

All endpoints user-scoped; 404 for unknown or non-owned ids (indistinguishable by design).

/api/v1/preview is now the free draft surface

Iterate on DSL with /preview (free, length-preserving filler in data, "PREVIEW — NOT FOR USE" watermark baked in), save with /templates, then render real PDFs with /render.

AI removed from the core worker

CLAUDE_API_KEY is no longer required for deployment. It stays optional for dev tooling only (scan-template.ts, batch-scan.ts, the bakeoff runner). No Anthropic/OpenAI SDK is loaded at request time.

Promo: /api/v1/md free under a page cap

KV-gated. The Markdown-to-PDF route skips the credit deduct when pages ≤ cap and emits an X-Credits-Free-Under header.