A modern Next.js starter template with TypeScript, Tailwind CSS, and more
- ⚡️ Next.js 15 with App Router
- 🎨 Tailwind CSS with Typography plugin
- 🔒 Better Auth for authentication
- 🗄️ Drizzle ORM with NeonDB integration
- 📝 MDX support for content
- 🎭 Framer Motion for animations
- 🔔 Sonner for toast notifications
- 🎵 use-sound for sound effects
- 🎨 Akar Icons for beautiful icons
- 🔍 SEO optimized(with metadata and schema.org)
- 🎯 TypeScript for type safety
- 🧹 ESLint + Prettier for code quality
- 🐶 Husky for git pre commit
- 🚀 View transitions for smooth page navigation
├── app/ # Next.js app directory
├── components/ # React components
│ ├── atoms/ # Basic UI components
│ └── ...
├── hooks/ # Custom React hooks
├── styles/ # Global styles
├── utils/ # Utility functions
├── public/ # Static assets
├── assets/ # Project assets
└── ...
not found pagepage to handle 404 routesconfig.tscontainer site information to be used for seo and schema.org dataseo.tsutil to generate SEO metadata and schema.orgmanifest.jsonfor site infoclassnamesutil for easily managing classescomponents/atoms/Button.tsxa button component with variantshooks/useClickOutsidehook to check if user clicked outside the elementhooks/useModalhook to create modals, which can close with eschooks/useDynamicHeightauth pages- Auth page for login
- next-view-transitions - for page smooth transitions
- Tailwind CSS - for styling(with typography plugin)
- Framer Motion - for animations
- Akar Icons - library for rounded icons
- Sonner - for toast messages
- use-sound - for using sounds
- Class Variance Authority - for type-safely managing class names
- Clone the repository:
git clone https://github.com/nirnejak/nextjs-typescript-saas.git
cd nextjs-typescript-saas- Install dependencies:
bun install- Copy the environment variables:
cp .env.example .env-
Update the environment variables in
.envwith your configuration. -
Setup pre-commit hooks:
bun run prepare- Start the development server:
bun run devInstall Dependencies
bun installSetup Pre-commit
bun run prepareStart Development Server
bun run devLint all the files
bun run lintFormat all files with Prettier
bun run formatCheck TypeScript issues
bun run type-checkGenerate Database Migrations
bun run db:generateRun Database Migrations
bun run db:migratePush Database Migrations
bun run db:pushStart Database Admin
bun run db:studioBuild for Production
bun run buildStart Production Server
bun startUpdate the config.ts file with your site's information:
const config = {
baseUrl: "https://your-site.com",
appName: "Your App Name",
appDescription: "Your app description",
creator: "Your Name",
authorName: "Your Name",
authorUrl: "Your URL or Email",
keywords: ["your", "keywords"],
twitterSite: "@your-site",
twitterCreator: "@your-username",
}Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Jitendra Nirnejak