Live demo — shared accounts, sample data, reset regularly. Don't enter anything real.Get the source

Changelog

What's new, newest first.

marketingseo

Marketing and polish

  • MDX blog with SEO metadata, JSON-LD, and syntax-highlighted code blocks.
  • Waitlist mode — a feature flag that swaps self-serve signup for an email-capture waitlist, with admin invites.
  • Dynamic OG images — branded social-share images generated per page and per blog post.
  • Legal pages and a cookie consent banner that only appears when analytics is actually configured.
  • This changelog, plus newsletter capture in the footer.
uploadsnotificationsadmin

Uploads, notifications, and admin superpowers

  • File uploads — presigned S3/MinIO uploads for avatars, org logos, and private org documents.
  • Notifications — an in-app bell with an optional per-user email preference.
  • Admin superpowers — ban, unban, and impersonate users, each fully audit-logged.
  • Feature flags — DB-backed, toggleable at /admin/flags with no deploy required.
billingsecurity

Billing polish and hardening

  • Customer portal + invoices — self-serve plan changes and downloadable invoices via Stripe's portal.
  • Discount codes, trials, and automatic tax — all optional, off by default.
  • Webhook robustness — idempotency ledger so a redelivered Stripe event can't double-process.
  • Rate limiting on auth and public forms, security headers, optional Turnstile bot protection.
  • Audit log — append-only record of sensitive actions, browsable at /admin/audit.
organizationstesting

Teams, testing, and CI

  • Organizations — better-auth's org plugin, with a switcher, invitations, and role-scoped settings.
  • Session & account management — active-session list, revoke-elsewhere, account deletion.
  • Vitest unit + integration suite, and a Playwright e2e suite covering signup through billing.
  • GitHub Actions CI running all of the above on every push.