/ Changelog

What shipped.
When it shipped.

Dated list of production changes. No roadmap, no "coming soon" — only commits that made it to the live service.

2026-04-24 Marketing site v1

21pdf.com marketing site goes live

  • Feature Static Astro site on Cloudflare Pages with full SEO: per-page JSON-LD, sitemap, Open Graph, Twitter Cards.
  • Feature Docs article for POST /v1/convert with the real PDFOptions field set.
  • Feature Single-page API reference covering convert, jobs, billing, and keys.
2026-04-22 Billing v1

Razorpay subscriptions wired end-to-end

  • Feature Four plans seeded from plans.go: Free, Starter ₹499, Pro ₹1,999, Business ₹4,999 + Internal.
  • Feature HMAC-verified webhook at /v1/billing/webhook with event-id dedup.
  • Feature 7-day grace + dunning scanner with nag emails on day 1/3/5.
  • Feature Quota + concurrency middleware in front of /v1/convert. 402 on quota, 429 on concurrency.
  • Feature BILLING_MODE=mock|test|live gating; BILLING_ENABLED feature flag.
  • Security Declined intra-network TLS (P2-17): single-host docker bridge makes it redundant.
2026-04-15 Audit F1–F7

Production audit fixes deployed

  • Security Lockout on repeated failed logins.
  • Security Tamper-evident audit_log for auth, billing, and admin actions.
  • Security MinIO SSE-S3 encryption for stored PDFs.
  • Security Image digests pinned in docker-compose.
  • Feature Retention worker — deletes PDFs older than PDF_RETENTION_DAYS.
  • Feature CI pipeline runs the full Go test suite on every PR.
2026-04-08 Rebrand

21pdf.com public domain

  • Feature Public surface moved to login.21pdf.com.
  • Feature SMTP via 21pdf.com (noreply@21pdf.com).
  • Removed Old qpdf.networkershome.com stays for internal operators only.
2026-04-02 Chromium-only

wkhtmltopdf removed

  • Removed Dropped wkhtmltopdf rendering path — unmaintained upstream, weak CSS-grid support.
  • Feature Every conversion now goes through headless Chromium with the worker-pool engine.
  • Fix Switched base image from Alpine to Debian (Alpine chromium 131 broken for our use).
2026-03-20 Role system

3-tier RBAC + integration keys

  • Feature Roles: user, admin, superadmin; propagated through JWT + API-key auth.
  • Feature /v1/admin/* subrouter for superadmin operations.
  • Feature Integration keys for internal projects (tenant-scoped, quota -1).