
- Next.js - Home
- Next.js - Overview
- Next.js - Project Setup
- Next.js - Folder Structure
- Next.js - App Router
- Next.js - Page Router
- Next.js Features
- Next.js - Pages
- Next.js - Data Fetching
- Next.js - ISR
- Next.js - Static File Serving
- Next.js - Pre-Rendering
- Next.js - Partial Pre Rendering
- Next.js - Server Side Rendering
- Next.js - Client Side Rendering
- Next.js Routing
- Next.js - Routing
- Next.js - Nested Routing
- Next.js - Dynamic Routing
- Next.js - Parallel Routing
- Next.js - Imperative Routing
- Next.js - Shallow Routing
- Next.js - Intercepting Routes
- Next.js - Redirecting Routes
- Next.js - Navigation and Linking
- Next.js Configuration
- Next.js - TypeScript
- Next.js - Environment Variables
- Next.js - File Conventions
- Next.js - ESLint
- Next.js API & Backend
- Next.js - API Routes
- Next.js - Dynamic API Routes
- Next.js - Route Handlers
- Next.js - API MiddleWares
- Next.js - Response Helpers
- Next.js API Reference
- Next.js - CLI Commands
- Next.js - Functions
- Next.js - Directives
- Next.js - Components
- Next.js - Image Component
- Next.js - Font Component
- Next.js - Head Component
- Next.js - Form Component
- Next.js - Link Component
- Next.js - Script Component
- Next.js Styling & SEO
- Next.js - CSS Support
- Next.js - Global CSS Support
- Next.js - Meta Data
- Next.js Advanced Topics
- Next.js - Error Handling
- Next.js - Server Actions
- Next.js - Fast Refresh
- Next.js - Internationalization
- Next.js - Authentication
- Next.js - Session Management
- Next.js - Authorization
- Next.js - Caching
- Next.js - Data Caching
- Next.js - Router Caching
- Next.js - Full Route Caching
- Next.js - Request Memoization
- Next.js Performance Optimization
- Next.js - Optimizations
- Next.js - Image Optimization
- Next.js - Lazy Loading
- Next.js - Font Optimization
- Next.js - Video Optimization
- Next.js - Script Optimization
- Next.js - Memory Optimization
- Next.js - Using OpenTelemetry
- Next.js - Package Bundling Optimization
- Next.js Testing
- Next.js - Testing
- Next.js - Testing with Jest
- Next.js - Testing with Cypress
- Next.js - Testing with Vitest
- Next.js - Testing with Playwright
- Next.js Debugging & Deployment
- Next.js - Debugging
- Next.js - Deployment
- Next.js Useful Resources
- Next.js - Interview Questions
- Next.js - Quick Guide
- Next.js - Useful Resources
- Next.js - Discussion
Next.js - Folder Structure
Folder Structure
Next.js folder structure is based on routing system. The routing system in Next.js is file-based, which means the file structure inside the pages/ or app/ directory determines the application routes automatically. Following diagram shows basic structure of Next.js App router project.
nextjs-app-router/ app/ // Root folder for App Router counter/ // Folder for Counter Page page.tsx page.tsx public/ next.config.js package.json middleware.ts .env .env.local .gitignore
- app/page.tsx : This is home page of Next.js app. It can be accessed by 'localhost:3000/'
- app/counter/page.tsx : This define a component section in app. It can be accessed by 'localhost:3000/counter'
Top Level Folders
The top level folders in Next.js are used to organize application's root level code and static assets.
- /app: This is the root folder for App Router. The page.tsx file inside this folder will be rendered at the root of the application.
- /pages: This is the root folder for Page Router. The index.tsx file inside this folder will be rendered at the root of the application.
- /public: This folder contains static assets such as images, fonts, and stylesheets.
- /src: This is an optional folder that contains the source code of the application. It is used to organize the codebase and separate the application's logic from the presentation layer.
Top Level Files
The top level files in Next.js are stored at root folder and are used to configure the application's environment and define the application's routes.
- next.config.js: This file is used to configure the application's environment.
- package.json: This file is used to define the application's dependencies and scripts.
- instrumentation.ts: This file is used to instrument the application's code for performance monitoring.
- middleware.ts : This file is used to define the application's middleware.
- .env : This file is used to define the application's environment variables.
- .env.local : This file is used to define the application's environment variables for local development.
- .gitignore : This file is used to define the files and directories that should be ignored by git.
- tsconfig.json : This file is used to define the TypeScript configuration for the application.
Routing Files
The routing files in Next.js are stored inside the /app/ or /pages/ directory and are used to define the application's routes.
- layout.tsx: This file is used to define the application's layout such a navigation bar, header etc.
- loading.tsx: This file is used to define the application's loading screen.
- error.tsx: This file is used to handle the application's errors such as 404, 500 etc.
- index.tsx: This file is used to define the application's home page.
- route.ts: This file is used to define API routes.
- not-found.tsx : This file is used render a 404 page when any route is not found.
Advertisements