Titan
Next.js 15 fullstack template with better-auth for authentication and drizzle-orm as the orm
Install / Use
/learn @rudrodip/TitanREADME
Titan
Next.js 15 fullstack template with better-auth for authentication and drizzle-orm as the ORM.

[!WARNING] This project uses Next.js 15-canary to support node runtime on middleware. This is not yet supported in stable version.
Tech Stack
- Full-stack framework: Next.js 15-canary
- UI: Tailwind CSS v4
- Component library: Shadcn UI
- Authentication: better-auth
- Database: postgres
- ORM: drizzle-orm
Features
- Authentication
- Social login
- Github
- Discord
- Social login
- Database
- Postgres (Neon)
- ORM: drizzle-orm
- Next.js API, server actions, and middleware
Getting Started
Clone the repository
git clone https://github.com/rudrodip/titan.git
Install dependencies
bun install
Create environment file
cp .env.example .env
Provide environment variables in .env file
BETTER_AUTH_SECRET: Secret key for Better Auth authentication generate one hereBETTER_AUTH_URL: Better Auth URL (e.g.,http://localhost:3000)DATABASE_URL: PostgreSQL connection string provided from Neon (e.g.,postgresql://username:password@neon:5432/titan)
Generate database schema
bun run db:generate
Migrate database
bun run db:migrate
Run the development server
bun dev
Open the browser and navigate to http://localhost:3000
Using a Local Database
Have Docker installed on your system. Before running the db:generate command from Getting Started, run the following command in the project directory to start a local database:
docker-compose up -d
Use the following environment variables in .env file:
DATABASE_URL:postgres://postgres:postgres@localhost:5432/titan
Add the pg and @types/pg dependencies to your project:
bun add pg
bun add -D @types/pg
Then, change the /src/lib/db/index.ts file to use the drizzle-orm/node-postgres and pg package instead of @neondatabase/serverless:
import * as schema from "@/lib/db/schema";
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
const sql = new Pool({
connectionString: process.env.DATABASE_URL,
});
export const db = drizzle(sql, { schema });
Continue steps from Getting Started e.g. generating the database schema, applying migrations, and running the dev server.
Open the browser and navigate to http://localhost:3000
Related Skills
node-connect
332.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
332.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.7kCommit, push, and open a PR
