# next-starter > Kickstart your Next.js project A modern, performant starter kit for Next.js applications. ## Quick Start ```bash bunx degit AudoraLabs/next-starter my-app cd my-app bun install bun dev ``` ## Resources - Summary: https://nextblog-starter.vercel.app//llms.txt - Sitemap: https://nextblog-starter.vercel.app//sitemap.xml - Repository: https://github.com/AudoraLabs/next-starter ## Tech Stack - Next.js 16 with App Router - React 19 - TypeScript (strict mode) - Tailwind CSS 4 - Bun (package manager) - ESLint 9 (flat config) - Prettier - React Compiler ## Features - SEO-ready with robots.ts, sitemap.ts, and Open Graph metadata - Title templates and metadataBase configured - Path alias @/* mapped to ./src/* - Dark mode support via CSS custom properties - Geist font family pre-configured - Pre-commit hooks with Husky and lint-staged ## Folder Structure ``` src/ ├── app/ │ ├── layout.tsx # Root layout with metadata │ ├── page.tsx # Home page │ ├── manifest.ts # PWA manifest │ ├── robots.ts # robots.txt generation │ ├── sitemap.ts # Sitemap generation │ ├── llms.txt/ # AI-friendly summary (this file) │ └── llms-full.txt/ # AI-friendly full documentation ├── components/ │ ├── icons.tsx # Icon components │ ├── theme-provider.tsx # Theme context provider │ └── theme-toggle.tsx # Dark/light mode toggle ├── config/ │ └── site.ts # Site configuration exports ├── data/ │ ├── site.ts # Site data (name, URL, description) │ └── llms.ts # LLMs.txt content configuration ├── lib/ │ └── seo.ts # SEO utilities and JSON-LD generators ├── styles/ │ └── globals.css # Global styles and Tailwind imports └── utils/ └── cn.ts # Class name utility ``` ## Development Commands | Command | Description | |---------|-------------| | `bun dev` | Start development server | | `bun run build` | Build for production | | `bun start` | Start production server | | `bun lint` | Lint code | | `bun format` | Format code | ## SEO Configuration This starter includes production-ready SEO defaults: ### Metadata (src/lib/seo.ts) - getMetadata(): Default site metadata with Open Graph and Twitter cards - getPageMetadata(): Page-specific metadata generator - getViewport(): Viewport configuration with theme colors ### Structured Data (JSON-LD) - getWebSiteJsonLd(): WebSite schema - getOrganizationJsonLd(): Organization schema - getBreadcrumbJsonLd(): Breadcrumb navigation schema ### Configuration (src/data/site.ts) Customize these values for your project: - name: Site name - url: Base URL for canonical links - ogImage: Default Open Graph image - tagline: Short tagline - description: Full description - twitterHandle: Twitter/X handle ### Files - robots.ts: Generates robots.txt with sitemap reference - sitemap.ts: Dynamic sitemap generation - manifest.ts: PWA web app manifest ## Conventions ### Path Aliases Use @/* to import from src/*: - import { cn } from "@/utils/cn" - import { SITE_CONFIG } from "@/config/site" ### Theme Dark mode uses CSS custom properties. Toggle with ThemeProvider and ThemeToggle components. ### Components No component library included by default. Add shadcn/ui or Radix as needed. ### Styling Tailwind CSS 4 with PostCSS. Global styles in src/styles/globals.css. ## Environment Variables | Variable | Description | |----------|-------------| | `NEXT_PUBLIC_SITE_URL` | Base URL for sitemap, robots.txt, and Open Graph | ## Key Files ### src/data/site.ts Contains site configuration that powers SEO metadata: - name, url, ogImage - tagline, description, shortDescription - twitterHandle, keywords ### src/lib/seo.ts SEO utility functions: - getMetadata() - Root layout metadata - getPageMetadata() - Per-page metadata - getViewport() - Viewport with theme colors - JSON-LD generators for structured data ### src/app/layout.tsx Root layout with: - Metadata exports - Theme provider - Geist font configuration ### src/components/theme-toggle.tsx Dark/light mode toggle component using next-themes. ## License MIT