A blazing-fast Next.js 16 starter template optimized for hackathons. Ship fast, win big!
- β Full sidebar layout with navigation
- β Stats cards with trends and icons
- β Interactive charts (Bar, Line, Pie, Area)
- β Data tables with sorting, filtering, pagination
- β Example pages (Users, Settings, Analytics)
A unified form input system located at components/AppInputFields/InputField.tsx. Just one import for everything!
- Rich Text Editor: Notion-style editor with slash commands, AI auto-completion support, and markdown shortcuts.
- Smart Inputs:
InputPassword: Built-in strength meter and visibility toggle.InputOTP: Auto-focus and auto-submit functionality.InputDate: Smart presets (Yesterday, Last Week) + manual typing.ModernImageInput: Drag & drop, preview, and built-in cropping.InputPhone: International phone number formatting.
- AI Integration: AI-powered text generation blocks ready to connect to your LLM.
- Multi-Provider Auth: Email/Password, Google OAuth, GitHub OAuth
- OTP Email Verification: 6-digit OTP with 10-minute expiry
- Password Reset: Secure token-based forgot password flow
- Pre-built Pages: Login, Signup, OTP Verification, Forgot Password, Reset Password
- Form Validation: Zod schemas with password complexity rules (8+ chars, uppercase, number, special char)
- Rate Limiting: 60s OTP resend cooldown, 3 forgot-password attempts/hour
- Avatar Upload: S3 integration with server-side upload
- Auto-verification: OAuth users automatically verified
| Component | Description | Usage |
|---|---|---|
StatsCard |
KPI cards with icons and trends | Dashboard metrics |
DataTable |
Tables with @tanstack/react-table | User lists, bookings |
StatusBadge |
Colored status indicators | Order status, user status |
EmptyState |
No-data placeholders with CTAs | Empty lists |
SearchFilter |
Search + filter dropdowns | Data filtering |
Charts |
Bar, Line, Pie, Area charts | Analytics |
Button, Card, Input, Label, Dialog, Form, Textarea, Select, Badge, Avatar, Separator, Dropdown, Skeleton, Sonner, Table, Tabs, Sheet, Progress, Switch, Slider
- Auth.js v5 with Google & GitHub providers
- Session management with NextAuth
- Protected routes ready
- Prisma ORM with PostgreSQL
- User, Account, Session models pre-configured
- Prisma Accelerate ready
- Dark mode with next-themes
- Theme toggle component
- Customizable color schemes
# 1. Install dependencies
pnpm install
# 2. Set up environment
cp .env.example .env
# Edit .env with your credentials
# 3. Generate Prisma client
pnpm prisma generate
# 4. Push database schema
pnpm prisma db push
# 5. Start dev server
pnpm devβββ app/
β βββ (auth)/ # Auth pages (sign-in, sign-up)
β βββ dashboard/ # Dashboard routes
β β βββ layout.tsx # Dashboard sidebar layout
β β βββ page.tsx # Dashboard home
β β βββ users/ # Users management
β β βββ settings/ # Settings page
β β βββ analytics/ # Analytics (add your own)
β βββ api/auth/ # Auth API routes
β βββ layout.tsx # Root layout
β βββ page.tsx # Landing page
β βββ loading.tsx # Global loading
β βββ error.tsx # Error boundary
β βββ not-found.tsx # 404 page
βββ components/
β βββ ui/ # shadcn/ui components
β βββ charts.tsx # Chart components (recharts)
β βββ data-table.tsx # Generic data table
β βββ stats-card.tsx # KPI card component
β βββ status-badge.tsx # Status indicators
β βββ empty-state.tsx # No-data placeholder
β βββ search-filter.tsx # Search with filters
β βββ dashboard-sidebar.tsx # Dashboard navigation
β βββ navbar.tsx # Main navbar
β βββ footer.tsx # Footer
β βββ theme-provider.tsx # Theme context
β βββ theme-toggle.tsx # Dark mode toggle
β βββ providers.tsx # Auth provider
βββ lib/
β βββ auth.ts # Auth.js config
β βββ prisma.ts # Prisma client
β βββ utils.ts # Utilities
βββ prisma/
β βββ schema.prisma # Database schema
βββ .env.example # Environment template
<StatsCard
title="Total Users"
value="2,543"
icon={Users}
trend="+12%"
trendUp={true}
/><BarChart
data={monthlyData}
dataKey="sales"
xAxisKey="month"
barColor="#8884d8"
/>const columns: ColumnDef<User>[] = [
{ accessorKey: "name", header: "Name" },
{ accessorKey: "email", header: "Email" },
];
<DataTable columns={columns} data={users} /><StatusBadge status="confirmed" />
<StatusBadge status="pending" />
<StatusBadge status="cancelled" />import InputField from "@/components/AppInputFields/InputField";
// Text Input
<InputField name="email" label="Email" type="email" />
// Rich Text Editor with AI
<InputField
name="content"
label="Blog Post"
type="editor"
generationPrompt="Write a blog post about..."
/>
// Image Upload with Cropping
<InputField
name="avatar"
label="Profile Picture"
type="modern-image"
/>This template includes everything for common hackathon categories:
| Category | Ready-to-use |
|---|---|
| Sports Booking | Dashboard, user management, booking tables, calendar |
| Travel Planning | User profiles, itinerary builder, charts, multi-user |
| Rental System | Product tables, booking flow, pricing, availability |
| SaaS Apps | Auth, payments ready, admin panel, analytics |
| E-commerce | Product tables, order management, user dashboard |
- Framework: Next.js 16 (App Router + Turbopack)
- Language: TypeScript
- Styling: Tailwind CSS v4
- UI: shadcn/ui (new-york style)
- Auth: Auth.js v5 (NextAuth)
- Database: Prisma ORM + PostgreSQL
- Tables: @tanstack/react-table
- Charts: Recharts
- Forms: react-hook-form + Zod
- Icons: Lucide React
- Theme: next-themes
# Add shadcn components
npx shadcn@latest add [component-name]
# Prisma commands
pnpm prisma generate # Generate client
pnpm prisma db push # Push schema changes
pnpm prisma studio # Open database GUI
pnpm prisma migrate dev # Create migration
# Build for production
pnpm build
pnpm start
# Lint
pnpm lintRequired variables in .env:
# Database
DATABASE_URL="postgresql://user:password@host:port/database"
# NextAuth
AUTH_SECRET="run: openssl rand -base64 32"
NEXTAUTH_URL="http://localhost:2222" # Your app URL (for password reset links)
# Google OAuth
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# GitHub OAuth
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
# SMTP Configuration (for OTP and Password Reset emails)
# Gmail SMTP setup (requires App Password with 2FA enabled)
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="465"
SMTP_USER="myabhyasikaofficial@gmail.com" # Your Gmail address
SMTP_PASSWORD="your-gmail-app-password" # Gmail App Password (NOT regular password)
# AWS S3 (for avatar uploads)
AWS_REGION="us-east-1" # Your S3 bucket region
AWS_ACCESS_KEY_ID="your-aws-access-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
S3_BUCKET_NAME="your-bucket-name" # S3 bucket with public read access- Enable 2-Factor Authentication on your Google Account
- Go to Google Account > Security > App Passwords
- Generate an App Password for "Mail"
- Use this 16-character password as
SMTP_PASSWORD
- Create an S3 bucket with public read access
- Create IAM user with S3 write permissions
- Generate access keys for the IAM user
- Add bucket policy for public read:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}- Start with the dashboard - Customize sidebar links and pages
- Use the data table - Perfect for any list view
- Leverage charts - Instant analytics/reports
- Copy example pages - Users and Settings pages are templates
- Focus on your unique idea - Auth, UI, and DB are done!
# Deploy to Vercel (recommended)
vercel
# Or push to GitHub and connect to Vercel dashboardGood luck with your hackathon! π
Built with β€οΈ for rapid prototyping