Version Reference
This page provides a comprehensive list of recommended versions for all tools and libraries used in the Next.js TS Tailwind Supabase Starter template.
Core Framework and Libraries
Technology | Recommended Version | Notes |
---|---|---|
Next.js | 14.2.x | Introduces the stable App Router, improved server components, and Turbopack improvements |
React | 18.3.x | Includes concurrent rendering, automatic batching, and Suspense improvements |
TypeScript | 5.4.x | Includes decorators, type-only imports, and the satisfies operator |
TailwindCSS | 3.3.x | JIT compilation by default, arbitrary values, and better dark mode support |
Development Tools
Tool | Recommended Version | Notes |
---|---|---|
ESLint | 8.x | Best compatible with modern TypeScript and React |
Prettier | 3.x | Improved performance and better handling of TypeScript |
Jest | 29.x | Better TypeScript support and improved performance |
React Testing Library | 14.x | Compatible with React 18 |
Playwright | 1.40+ | Reliable end-to-end testing across browsers |
Backend and Data Management
Technology | Recommended Version | Notes |
---|---|---|
Supabase | 2.x | Stable APIs for auth, database, and storage |
@supabase/supabase-js | 2.x | Client library with TypeScript support |
PostgreSQL | 15.x | Used by Supabase under the hood |
Form Management and Validation
Library | Recommended Version | Notes |
---|---|---|
Zod | 3.x | TypeScript-first schema validation |
React Hook Form | 7.x | Performant form management for React |
UI Components and Styling
Library | Recommended Version | Notes |
---|---|---|
shadcn/ui | Latest as of Oct 2024 | Reusable components built on Radix UI |
Radix UI | 1.x | Accessible component primitives |
Lucide React | 0.263.x | SVG icon components |
Data Fetching and State Management
Library | Recommended Version | Notes |
---|---|---|
TanStack Query (React Query) | 5.x | Data fetching and caching |
Zustand | 4.x | Lightweight state management |
Utility Libraries
Library | Recommended Version | Notes |
---|---|---|
date-fns | 2.x | Modern JavaScript date utility library |
clsx | 2.x | Utility for constructing className strings |
lodash | 4.x | Utility library for common operations |
Authentication Features in Supabase
Supabase 2.x offers the following authentication methods:
- Email/password authentication
- Magic link authentication
- OAuth providers (Google, GitHub, etc.)
- Phone authentication
- Anonymous sessions
- Row Level Security (RLS) policies
Realtime Features in Supabase
Supabase 2.x Realtime includes:
- Broadcast - Simple pub/sub messaging
- Presence - Track online users and their states
- Postgres Changes - Subscribe to database changes
Special Considerations
-
Next.js App Router: The App Router in Next.js 14 uses a different folder structure than the Pages Router. All routes should be placed in the app/ directory.
-
React Server Components: Next.js 14 uses React Server Components by default. Client components should be marked with "use client" directive.
-
TypeScript Configuration: Configure TypeScript for strict mode to take advantage of all type-checking features.
-
Supabase Authentication: Configure proper session handling and refresh mechanisms.
-
Edge Functions: Supabase provides Edge Functions for serverless logic if needed.
-
Shadcn/UI: These are not installed as a dependency but copied into your project. Follow their documentation for installation.
Environment Variables
For Next.js 14 and Supabase 2.x, the following environment variables are recommended:
# Next.js
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# Optional for email services
EMAIL_SERVER_HOST=smtp.example.com
EMAIL_SERVER_PORT=587
EMAIL_SERVER_USER=example_username
EMAIL_SERVER_PASSWORD=example_password
Version Compatibility Matrix
Next.js | React | TypeScript | TailwindCSS | Supabase Client |
---|---|---|---|---|
14.0.x | 18.2.x | 5.2.x-5.3.x | 3.3.x | 2.x |
13.x | 18.2.x | 5.1.x-5.2.x | 3.3.x | 2.x |
12.x | 18.1.x | 4.9.x-5.0.x | 3.0.x-3.2.x | 2.x |
Upgrading Dependencies
When upgrading dependencies, take these steps:
- Check the changelog of each package for breaking changes
- Run tests after each major upgrade
- Update TypeScript types if necessary
- Test authentication flows after upgrading Supabase
- Follow the Next.js migration guide when upgrading major versions