Docs/Presets/Next.js 15

Next.js 15

App Router conventions and best practices for Next.js 15 projects.

Enabled Rules

RuleSeverityDescription
quality/no-use-client-in-pagesblockPrevents "use client" in page and layout files
quality/import-aliasesblockEnforces @/ path aliases over deep relative imports
quality/file-structurewarnComponents and hooks in correct directories
quality/no-deprecated-apiblockCatches deprecated Next.js API usage (e.g. legacy getServerSideProps)
security/env-exposureblockPrevents server env variables from leaking to client bundles

Usage

import { defineConfig } from '@solanticai/vguard';

export default defineConfig({
  presets: ['nextjs-15'],
});

What it enforces

  • No "use client" in pages/layouts — Page and layout files should be Server Components by default. Move client logic to child components.
  • Import aliases required — Use @/components/Button instead of ../../../components/Button.
  • File structure conventions — Components live in components/, hooks in hooks/, utilities in lib/ or utils/.
  • No deprecated APIs — Flags usage of Pages Router patterns like getServerSideProps, getStaticProps in App Router projects.
  • Env safety — Blocks process.env.SECRET_* from appearing in client components. Only NEXT_PUBLIC_* variables are allowed client-side.

Combining with other presets

export default defineConfig({
  presets: ['nextjs-15', 'typescript-strict', 'tailwind'],
});