v2.0.0 Release
StarterApp 2.0 ships with a production design system, multi-tenant organizations, internationalization infrastructure, and upgraded authentication.
StarterApp 2.0 ships with a production design system, multi-tenant organizations, and complete internationalization support. The design system uses semantic tokens for consistent UI across both apps. Organizations provide role-based access control with team invitations. Internationalization handles automatic locale detection with SEO-first routing. All three scale from side project to enterprise.
Design System


Inconsistent UI slows down feature development. Every component needs design decisions, every page needs color choices, and maintaining dark mode becomes a chore. StarterApp 2.0 ships with a production-grade design system built on semantic tokens. All colors are defined in one location and applied consistently across the entire application.
The system includes:
- Semantic token system with all colors defined in one location
- Built on shadcn/ui and Radix for battle-tested component primitives
- Automatic dark mode with proper contrast ratios
- Zero hardcoded colors in application code
- Complete component library covering forms, navigation, data display, and feedback
- WCAG 2.1 AA compliant color contrast for accessibility
Both the marketing site and dashboard were rebuilt using the new system, following Linear and Notion's clean, minimal aesthetic with thoughtful spacing, subtle backgrounds, and high contrast text.
Multi-Tenant Organizations

Every user gets a personal workspace automatically. No setup required. Users can create additional organizations, invite team members, and manage permissions through role-based access control. The system includes admin and member roles out of the box, with permission checks on every sensitive operation.
Features include:
- Automatic personal workspace creation for every new user
- Role-based access control with admin and member roles
- Team invitation system with email workflow and expiration handling
- Organization switcher in dashboard for users with multiple teams
- Billing integration with UseAutumn for organization-scoped subscriptions
The database schema includes organizations, members, and invitations tables. All operations respect organization boundaries and user permissions. For projects without team collaboration, organization mode can be disabled with a single environment variable. The system stays in the codebase but stays out of the UI.
Internationalization Support
Adding internationalization after launch means rewriting routing, reworking SEO, and rebuilding page structures. StarterApp 2.0 includes complete i18n infrastructure from the start. The system detects user locale automatically by checking browser headers, stored preferences in cookies, and explicit URL selections. When translations are missing, the system falls back to the default locale.
The infrastructure includes:
- Automatic locale detection from Accept-Language headers and cookies
- SEO-first routing with hreflang tags and localized metadata
- Clean URL structure with locale prefixes (/en/, /es/)
- Server and client translation patterns for React Server Components
- Ships with English and Spanish, ready for additional locales
Two new packages handle the implementation. The @starterapp/i18n-core package manages locale resolution and fallback chains. The @starterapp/i18n-next package integrates with Next.js middleware, routing, and components.
Authentication Upgrade
Better Auth upgraded from 0.7.x to 1.3.9 with the official Convex adapter. The upgrade brings session caching, improved security, and support for email/password authentication alongside OAuth.
Key improvements:
- Official Convex adapter with optimized queries
- Email/password authentication with bcrypt hashing and rate limiting
- OAuth support for Google and GitHub with extensibility for other providers
- Secure cookie management with proper httpOnly and secure flags
Any authentication method supported by Better Auth works with the system. Magic links, passkeys, and two-factor authentication can be added through Better Auth's plugin system. The upgrade also improves end-to-end testing. Authenticated state in E2E tests now works reliably without flickering sessions or timing issues.
Simplified Project Setup
StarterApp 2.0 requires fewer environment variables. Convex is the only required service. OAuth providers and billing integration are optional. Version 1.0 required Google OAuth and UseAutumn configuration before the app would run. Version 2.0 starts with email/password authentication. Optional integrations can be added later.
Code Quality Improvements
Version 2.0 removes 925 lines of legacy code while adding new features. Hardcoded colors migrated to semantic tokens. Duplicate components consolidated into shared patterns. Unused utilities removed. The result is a cleaner codebase that's easier for both humans and AI agents to understand and extend.
Security Hardening
Server code accidentally imported into client bundles can leak sensitive data. StarterApp 2.0 adds "server-only" imports to every server file with sensitive operations. If server code gets imported on the client, the build fails immediately. This catches data leak vulnerabilities at build time before they reach production. Environment variables, database queries, and auth tokens stay on the server.
Upgrading from 1.0
Version 2.0 includes breaking changes across authentication, organizations, and design tokens. There's no automated migration path. For existing 1.0 projects, the recommended approach is to start fresh with 2.0 and migrate application code. The core patterns remain the same. The infrastructure is rebuilt for scale.
Get Started
StarterApp 2.0 is available now with complete source code, lifetime updates, and full documentation. View pricing.