Changelog

Built in public. New features and fixes, most recent first.

Marketing site + legal + GDPR tooling

Public landing at /, pricing, features, legal (terms / privacy / DPA / cookies). One-click account delete and data export from Settings → Account.

launch

Transactional email via Resend

7 branded email templates: welcome, payment receipt, payment failed, quota 80% warning, quota exceeded, trial ending (5d and 1d). React Email composed into one shared layout.

email

Stripe billing + quota enforcement

Free / Starter €29 / Pro €99 plans with 14-day trial. Hosted Checkout, Stripe Tax, customer portal, idempotent signature-verified webhook. Double-locked quota: TS + Postgres RPC both reject over-limit writes.

billing

Figma removed, in-house image editor incoming

Figma integration retired — all figma-sync code, plugin folder and the figma_sync_queue table are gone. Server-side Skia renderer is the forward direction.

cleanup

Supabase Vault for per-workspace integration secrets

Integrations page now stores creds in Vault via SECURITY DEFINER RPCs. Cross-tenant read + write blocked at the database layer; verified by e2e tests.

security

Signup, login, password reset

Full auth flow with email verification via Supabase, PKCE code exchange at /auth/confirm, proxy-layer rate limits on login.

auth

Workspace model + RLS

Every tenant-scoped table now carries workspace_id. RLS policies enforce `is_workspace_member` at the database layer. Signup trigger auto-creates a personal workspace.

security