Instantly scaffold a professional Next.js project
Built-in TailwindCSS Β· shadcn/ui Β· Themes Β· ESLint Β· TypeScript
- Overview
- Features
- Requirements
- Quick Start
- Usage
- Configuration
- Project Structure
- Contributing
- License
- Author
- Roadmap
create-next-vault is a powerful CLI tool that scaffolds a fully configured Next.js project with modern tooling and best practices pre-wired. Skip the tedious setup and start building your application immediately with a production-ready foundation.
Perfect for developers who want to:
- π Get started with Next.js quickly
- π¨ Use TailwindCSS with zero configuration
- π§± Leverage shadcn/ui components
- π Implement dark/light theme support
- π« Add smooth animations with Framer Motion
- π§Ή Maintain code quality with ESLint and Prettier
- β‘ Next.js 14+ with TypeScript β Latest Next.js with App Router and TypeScript preconfigured
- π¨ TailwindCSS β Utility-first CSS framework ready to use
- π§± shadcn/ui β Beautiful, accessible UI components built with Radix UI
- π Theme Support β Dark/light theme switching via
next-themes - π« Framer Motion (optional) β Smooth animations and transitions
- π§Ή ESLint + Prettier β Code formatting and linting configured
- πͺ Git Auto-Init β Optional Git repository initialization with initial commit
- β App Router β Uses Next.js 13+ App Router by default
- β TypeScript β Full TypeScript support out of the box
- β Modern Tooling β Latest versions of all dependencies
- β Best Practices β Follows Next.js and React best practices
- β Accessibility β shadcn/ui components are built with accessibility in mind
Before using create-next-vault, ensure you have the following installed:
- Node.js β₯ 18 (LTS version recommended)
- npm, pnpm, or yarn package manager
- Git (optional, for version control)
Create a new Next.js project in seconds:
npx create-next-vault my-next-app
cd my-next-app
npm run devThat's it! Your development server will be running at http://localhost:3000.
When you run create-next-vault, you'll be prompted with several options:
- Project Name β Name of your project (default:
my-next-app) - Add shadcn/ui components? β Install and configure shadcn/ui (default:
yes) - Add dark/light theme support? β Set up
next-themesfor theme switching (default:yes) - Add framer-motion animations? β Install Framer Motion for animations (default:
no) - Initialize git repository? β Create a Git repo and make an initial commit (default:
yes)
$ npx create-next-vault my-awesome-app
π Project name: my-awesome-app
π§± Add shadcn/ui components? Yes
π Add dark/light theme support? Yes
π« Add framer-motion animations? No
πͺ Initialize git repository? Yes
π Creating Next.js project...
β
Next.js project created.
π¨ Installing Tailwind CSS...
β
TailwindCSS installed.
π§© Installing extra dependencies...
β
Extra dependencies installed.
π§± Setting up shadcn/ui...
β
shadcn/ui initialized.
πͺ Initializing git...
β
Git repository initialized.
β
Project "my-awesome-app" created successfully!
Next steps:
cd my-awesome-app
npm run dev
β¨ Happy hacking with Next Vault!TailwindCSS is automatically configured with the following content paths:
./app/**/*.{js,ts,jsx,tsx,mdx}./pages/**/*.{js,ts,jsx,tsx,mdx}./components/**/*.{js,ts,jsx,tsx,mdx}
If you enabled theme support, the Providers component is automatically added to your root layout. You can use it in your components:
"use client";
import { useTheme } from "next-themes";
export function ThemeToggle() {
const { theme, setTheme } = useTheme();
return (
<button onClick={() => setTheme(theme === "dark" ? "light" : "dark")}>
Toggle theme
</button>
);
}After initialization, you can add shadcn/ui components:
npx shadcn@latest add button
npx shadcn@latest add card
npx shadcn@latest add dialogVisit the shadcn/ui documentation for more components.
After scaffolding, your project will have the following structure:
my-next-app/
βββ app/
β βββ layout.tsx # Root layout with Providers (if theme enabled)
β βββ page.tsx # Home page
β βββ globals.css # Global styles with Tailwind
β βββ providers.tsx # Theme provider (if theme enabled)
βββ components/ # Your React components
βββ public/ # Static assets
βββ tailwind.config.js # Tailwind configuration
βββ tsconfig.json # TypeScript configuration
βββ next.config.js # Next.js configuration
βββ package.json # Dependencies
Contributions are welcome and greatly appreciated! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit your changes
git commit -m "Add some amazing feature" - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style
- Add tests for new features (if applicable)
- Update documentation as needed
- Ensure all tests pass
- Be respectful and constructive in discussions
If you find a bug or have a suggestion, please open an issue on GitHub.
This project is licensed under the MIT License - see the LICENSE file for details.
Omkar Bagul
- π GitHub: @youknowom
- πΌ LinkedIn: Omkar Bagul
- π§ Email: youknowom@users.noreply.github.com
If you find this project useful, consider supporting its development on GitHub Sponsors.
Your support helps fund:
- β¨ New features and improvements
- π Bug fixes and maintenance
- π Documentation updates
- π§ͺ Testing and CI/CD
- π
--fastflag for instant, non-interactive setup - π¦ Option to use
pnpmorbunfor faster installs - π¨ Pre-configured theme presets
- π± Mobile-first component templates
- π Plugin system for extensibility
- π Internationalization (i18n) support
- π§ͺ Testing setup (Jest, Vitest, or Playwright)
- π Authentication templates
- πΎ Database integration examples
- π Deployment configurations
- π Analytics integration
- π― Performance optimizations
- Next.js for the amazing framework
- TailwindCSS for the utility-first CSS
- shadcn/ui for the beautiful components
- next-themes for theme support
- Framer Motion for animations
Made with β€οΈ by Omkar Bagul
β Star this repo if you find it helpful!