- Replace demo user data with actual Better Auth session data - Update session endpoint to use auth.api.getSession() for real user info - Fix UserProfile component to display actual user profile in header - Improve logout functionality with proper state cleanup - Add event listeners for OAuth state changes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Agentic Coding Boilerplate
A complete agentic coding boilerplate with authentication, PostgreSQL database, AI chat functionality, and modern UI components - perfect for building AI-powered applications and autonomous agents.
🚀 Features
- 🔐 Authentication: Better Auth with Google OAuth integration
- 🗃️ Database: Drizzle ORM with PostgreSQL
- 🤖 AI Integration: Vercel AI SDK with OpenAI support
- 🎨 UI Components: shadcn/ui with Tailwind CSS
- ⚡ Modern Stack: Next.js 15, React 19, TypeScript
- 📱 Responsive: Mobile-first design approach
☕ Buy Me a Coffee
If you find this project helpful and would like to support my work, consider buying me a coffee! Your support helps me maintain and improve this boilerplate.
📋 Prerequisites
Before you begin, ensure you have the following installed on your machine:
- Node.js: Version 18.0 or higher (Download here)
- Git: For cloning the repository (Download here)
- PostgreSQL: Either locally installed or access to a hosted service like Vercel Postgres
🛠️ Quick Setup
1. Clone or Download the Repository
Option A: Clone with Git
git clone https://gitea.rosmoscato.xyz/ros/nextjs-boilerplate
Option B: Download ZIP Download the repository as a ZIP file and extract it to your desired location.
2. Install Dependencies
npm install
3. Environment Setup
Copy the example environment file:
cp env.example .env
Fill in your environment variables in the .env file:
# Database
POSTGRES_URL="postgresql://username:password@localhost:5432/your_database_name"
# Authentication - Better Auth
BETTER_AUTH_SECRET="your-random-32-character-secret-key-here"
# Google OAuth (Get from Google Cloud Console)
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# AI Integration (Optional - for chat functionality)
OPENAI_API_KEY="sk-your-openai-api-key-here"
OPENAI_MODEL="gpt-5-mini"
# App URL (for production deployments)
NEXT_PUBLIC_APP_URL="http://localhost:3000"
4. Database Setup
Generate and run database migrations:
npm run db:generate
npm run db:migrate
5. Start the Development Server
npm run dev
Your application will be available at http://localhost:3000
⚙️ Service Configuration
PostgreSQL Database on Vercel
- Go to Vercel Dashboard
- Navigate to the Storage tab
- Click Create → Postgres
- Choose your database name and region
- Copy the
POSTGRES_URLfrom the.env.localtab - Add it to your
.envfile
Google OAuth Credentials
- Go to Google Cloud Console
- Create a new project or select an existing one
- Navigate to Credentials → Create Credentials → OAuth 2.0 Client ID
- Set application type to Web application
- Add authorized redirect URIs:
http://localhost:3000/api/auth/callback/google(development)https://yourdomain.com/api/auth/callback/google(production)
- Copy the Client ID and Client Secret to your
.envfile
OpenAI API Key
- Go to OpenAI Platform
- Navigate to API Keys in the sidebar
- Click Create new secret key
- Give it a name and copy the key
- Add it to your
.envfile asOPENAI_API_KEY
🗂️ Project Structure
src/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ │ ├── auth/ # Authentication endpoints
│ │ └── chat/ # AI chat endpoint
│ ├── chat/ # AI chat page
│ ├── dashboard/ # User dashboard
│ └── page.tsx # Home page
├── components/ # React components
│ ├── auth/ # Authentication components
│ └── ui/ # shadcn/ui components
└── lib/ # Utilities and configurations
├── auth.ts # Better Auth configuration
├── auth-client.ts # Client-side auth utilities
├── db.ts # Database connection
├── schema.ts # Database schema
└── utils.ts # General utilities
🔧 Available Scripts
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run db:generate # Generate database migrations
npm run db:migrate # Run database migrations
npm run db:push # Push schema changes to database
npm run db:studio # Open Drizzle Studio (database GUI)
npm run db:dev # Push schema for development
npm run db:reset # Reset database (drop all tables)
📖 Pages Overview
- Home (
/): Landing page with setup instructions and features overview - Dashboard (
/dashboard): Protected user dashboard with profile information - Chat (
/chat): AI-powered chat interface using OpenAI (requires authentication)
🚀 Deployment
Deploy to Vercel (Recommended)
-
Install the Vercel CLI globally:
npm install -g vercel -
Deploy your application:
vercel --prod -
Follow the prompts to configure your deployment
-
Add your environment variables when prompted or via the Vercel dashboard
Production Environment Variables
Ensure these are set in your production environment:
POSTGRES_URL- Production PostgreSQL connection stringBETTER_AUTH_SECRET- Secure random 32+ character stringGOOGLE_CLIENT_ID- Google OAuth Client IDGOOGLE_CLIENT_SECRET- Google OAuth Client SecretOPENAI_API_KEY- OpenAI API key (optional)OPENAI_MODEL- OpenAI model name (optional, defaults to gpt-5-mini)NEXT_PUBLIC_APP_URL- Your production domain
Happy coding! 🚀