Changelog
Track new features, improvements, and fixes across releases.
Feature
- Split the single auth page into separate /auth/sign-up and /auth/sign-in pages. The marketing opt-in checkbox now appears only on sign up, and both pages share one form component.
Improvement
- Adopted better-auth sign up / sign in / sign out terminology across routes, components, i18n keys, and docs. The old /auth/login route and the logout naming have been removed.
Fix
- Fixed the marketing opt-in being discarded when an existing user submitted it. Consent is now recorded through a dedicated grant-only endpoint that never revokes an earlier opt-in.
- Repaired partially machine-translated authentication strings in the German, Spanish, French, Japanese, Korean, and Chinese locales.
Feature
- Switched authentication to passwordless email OTP. The first code sent to a new address creates the account, and the password login, registration, and reset pages have been removed.
- Added bearer sessions and CORS support so an iOS or Android app can sign in against the same backend, along with a GET /api/subscription endpoint for reading entitlements.
- Added a mobile apps guide to the docs covering server configuration, app-side setup, and the full endpoint reference.
Improvement
- Tightened authentication rate limiting with separate per-IP limits and a Postgres-backed per-email OTP throttle, and made the proxy list configurable via BETTER_AUTH_TRUSTED_PROXIES.
- Moved better-auth onto the shared Prisma client and made the connection pool size configurable, removing a second pool per server instance.
- Indexed Session.userId and added the auth_throttle table for shared OTP send limits (run pnpm db:push after upgrading).
Fix
- Fixed sign-out failing for mobile clients that omit the Content-Type header on empty request bodies.
Feature
- Added a public roadmap page at /roadmap with three columns covering recently shipped, in progress, and coming soon items.
Feature
- Added a public changelog page at /changelog with deep-linkable entries per release.
- Added a mobile navigation menu for the marketing site.
- Added an analytics composable for manual event tracking.
Improvement
- Pinned the Nixpacks package and tuned build memory for more reliable production deployments.
Feature
- Added a reusable password input component with show/hide toggle.
- Added a database-backed blog source as an alternative to Nuxt Content (toggle via NUXT_PUBLIC_BLOG_SOURCE).
Improvement
- Reworked the authentication flow for clearer error messages and smoother redirects.
Improvement
- Made the Resend API key optional so the app can boot without transactional email configured.
- Switched Nuxt Content components to translation keys for fully i18n-aware copy.
Fix
- Fixed cancel and reactivate subscription when an active Stripe schedule is present.
Improvement
- Improved the Settings page layout and account management flows.
- Improved Nuxt Content SEO meta handling for docs and blog pages.
- Reworked the subscriptions implementation for more predictable state transitions.
- Prevented auto-signup and OTP delivery to unregistered email addresses.
Fix
- Fixed the global error handler and added Cursor rules covering error-handling patterns.
Feature
- Added Stripe trial period support with a configurable trial length in payment.config.ts.
Improvement
- Migrated database columns to snake_case for consistency with Postgres conventions.
- Restructured the subscription middleware and removed Prisma imports from client-side code.
- Optimized the build for Nixpacks deployments.
Fix
- Fixed logo sizing regressions on the marketing site.
Fix
- Fixed Open Graph image URL generation.
- Fixed avatar URL resolution for users without a custom image.
Feature
- Added support for non-square logos with theme-aware light/dark variants.
Improvement
- Updated email templates to use placeholders consistently across providers.
Fix
- Fixed the site URL fallback used by robots.txt.
- Fixed broken navigation to the Settings page from the user menu.
Feature
- Added dynamic sitemap.xml and robots.txt generation.
Improvement
- Improved performance and accessibility across the app, including alt text on all images.
- Simplified the subscription middleware and refreshed the related docs.
- Improved the one-time payment flow and license-key generation in the Stripe webhook.
Fix
- Fixed sitemap generation on Vercel deployments.
Feature
- Initial release: Nuxt 4, Tailwind v4, shadcn-vue, better-auth (email/password, OTP, OAuth), Prisma + PostgreSQL, Stripe subscriptions and one-time purchases, OpenAI/Anthropic/Grok integrations, Nuxt Content blog and docs, Resend email, S3-compatible storage, i18n (en/de/es/fr), and dashboard, settings, pricing, and support pages.

