Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Next.js Documentation27টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • কেন Next.js?
  • Installation
  • Project Structure
  • Routing ও Pages
  • Layouts
  • Linking ও Navigation
  • Server & Client Components
  • Dynamic Routes
  • Data Fetching
  • Loading ও Streaming
  • Error Handling
  • Route Handlers
  • Server Actions
  • Caching ও Revalidation
  • Metadata ও SEO
  • Images ও Fonts
  • Styling
  • Environment Variables
  • Development ও Production
  • Deployment
  • Configuration
  • Static ও Dynamic Rendering
  • Proxy
  • Performance
  • Project: Blog
  • Project: Dashboard
  1. Docs
  2. Next.js
  3. Next.js Project Structure
Next.jsBeginner

Next.js Project Structure

Top-level ফোল্ডার-ফাইল, special routing files, route groups, metadata conventions ও project organize করার কৌশল — Next.js-এর সম্পূর্ণ গঠন বাংলায়।

50টি অংশবাংলা ভাষায়

Next.js-এ file-system routing — ফোল্ডার ও ফাইল দিয়ে route তৈরি হয়। project-এর মৌলিক গঠন জানা গুরুত্বপূর্ণ; এই অধ্যায়ে ফোল্ডার, ফাইল convention ও project organize করার কৌশল একসাথে দেখা যাবে।

Top-level ফোল্ডার

উপরের স্তরের ফোল্ডার অ্যাপের কোড ও static asset আলাদা করে রাখে।

ফোল্ডারকাজ
app/App Router — routes, layouts, pages
pages/Pages Router (পুরোনো, App Router-এ ব্যবহার হয় না)
public/Static assets (ছবি, font ইত্যাদি) সার্ভ করতে
src/Optional — application code আলাদা রাখতে

Top-level ফাইল

উপরের স্তরের ফাইলগুলো configure, dependency, proxy, monitoring ও environment variable সামলায়।

ফাইলকাজ
next.config.tsNext.js configuration
package.jsonDependencies ও scripts
instrumentation.tsOpenTelemetry ও instrumentation
proxy.tsNext.js request proxy
.env / .env.localEnvironment variables (VCS-এ track করা যায় না)
.env.production / .env.developmentProduction/development environment variables
eslint.config.mjsESLint configuration
.gitignoreGit-এ ignore করার ফাইল-ফোল্ডার
next-env.d.tsNext.js TypeScript declaration (track করা যায় না)
tsconfig.jsonTypeScript configuration
jsconfig.jsonJavaScript configuration (TS না থাকলে)

Routing Files (Special Files)

app/ ফোল্ডারের ভেতরে এই নামের ফাইলগুলো Next.js নিজেই বুঝে নেয়। page দিলে route public, route দিলে API endpoint।

ফাইলএক্সটেনশনকাজ
layout.js .jsx .tsxShared UI — navbar, footer ইত্যাদি
page.js .jsx .tsxRoute-এর UI (public page)
loading.js .jsx .tsxLoading/Skeleton UI
not-found.js .jsx .tsx404 UI
error.js .jsx .tsxError boundary UI
global-error.js .jsx .tsxRoot layout-এর error boundary
route.js .tsAPI endpoint
template.js .jsx .tsxRe-rendered layout
default.js .jsx .tsxParallel route fallback page

Nested Routes

ফোল্ডার হলো URL segment — nesting করলেই URL nesting হয়। যেকোনো লেভেলের layout তার child segment-কে মোড়ায়, আর page বা route ফাইল থাকলে তবেই route public হয়।

PathURLনোট
app/layout.tsx—Root layout — সব route মোড়ায়
app/blog/layout.tsx—/blog ও তার descendant মোড়ায়
app/page.tsx/Public route
app/blog/page.tsx/blogPublic route
app/blog/authors/page.tsx/blog/authorsPublic route

Dynamic Routes

বর্গাকার bracket দিয়ে segment parameterize করা হয়:

PathURL pattern
app/blog/[slug]/page.tsx/blog/my-first-post
app/shop/[...slug]/page.tsx/shop/clothing, /shop/clothing/shirts
app/docs/[[...slug]]/page.tsx/docs, /docs/layouts-and-pages
Dynamic Routes

[segment] = single param, [...segment] = catch-all, [[...segment]] = optional catch-all। params prop থেকে value আসে। বিস্তারিত পরবর্তী অধ্যায়ে।

Route Groups ও Private Folders

URL না বদলেই কোড organize করা যায়:

PathURLনোট
app/(marketing)/page.tsx/Group URL-এ আসে না
app/(shop)/cart/page.tsx/cart(shop)-এর ভেতরেই layout ভাগ হয়
app/blog/_components/Post.tsx—Private — routable নয়, UI রাখতে
app/blog/_lib/data.ts—Private — routable নয়, util রাখতে
  • (group) — parenthesis দিয়ে route group; URL-এ আসে না, তবে নিজস্ব layout দেওয়া যায়
  • _folder — underscore দিয়ে private folder; ফোল্ডার ও তার সব subfolder routing-এর বাইরে

Parallel ও Intercepted Routes

এই দুটো feature নির্দিষ্ট UI pattern-এর জন্য — slot-based layout ও modal routing।

Patternকাজব্যবহার
@folderNamed slotSidebar + main content
(.)folderSame level interceptSibling route modal-এ দেখানো
(..)folderParent interceptParent-এর child overlay হিসেবে
(..)(..)folderTwo levels interceptDeeply nested overlay
(...)folderRoot থেকে interceptArbitrary route current view-এ

Metadata File Conventions

নির্দিষ্ট নামের ফাইল auto-detect করে Next.js metadata তৈরি করে — separate config লাগে না।

App Icons

ফাইলএক্সটেনশনকাজ
favicon.icoFavicon file
icon.ico .jpg .jpeg .png .svgApp icon
icon.js .ts .tsxCode দিয়ে generated icon
apple-icon.jpg .jpeg .pngApple app icon
apple-icon.js .ts .tsxCode দিয়ে generated Apple icon

Open Graph ও Twitter Images

ফাইলএক্সটেনশনকাজ
opengraph-image.jpg .jpeg .png .gifOpen Graph image
opengraph-image.js .ts .tsxGenerated OG image
twitter-image.jpg .jpeg .png .gifTwitter image
twitter-image.js .ts .tsxGenerated Twitter image

SEO

ফাইলএক্সটেনশনকাজ
sitemap.xmlSitemap file
sitemap.js .tsGenerated sitemap
robots.txtRobots file
robots.js .tsGenerated robots

Component Hierarchy

Special files একটি নির্দিষ্ট ক্রমানুসারে render হয়:

  • layout — shared UI
  • template — re-rendered layout
  • error — React error boundary
  • loading — React suspense boundary
  • not-found — not-found error boundary
  • page বা nested layout
Component hierarchytext
text
RootLayout
└── Template
    └── ErrorBoundary
        └── LoadingBoundary
            └── NotFoundBoundary
                └── Page

এই hierarchy প্রতিটি segment-এ recursively আবার আবার চলে — nested route-এ parent segment-এর component-এর ভেতরে child segment-এর component nest হয়।

Colocation

app ফোল্ডারের ভেতরে nested folder route structure ধরে, তবে page.tsx বা route.ts না থাকলে route public হয় না। তাই project file — component, utility — সব কিছু route segment-এর পাশেই রাখা নিরাপদ।

Colocation

app ফোল্ডারের ভেতরে যেকোনো ফাইল রাখা যায় — যতক্ষণ না page.tsx বা route.ts থাকে, ততক্ষণ route হয়ে যায় না। অর্থাৎ component, utility — সব কিছু route-এর পাশেই রাখা যায়।

Private Folders ও Route Groups দিয়ে Organize

  • Private folder (_folderName) — routing system এই ফোল্ডার বাদ দেয়; UI logic আলাদা করা, editor-এ grouping, ভবিষ্যতের file convention-এর সাথে নামের conflict এড়াতে কাজে লাগে
  • Route group ((folderName)) — URL path-এ যোগ হয় না; section অনুযায়ী route organize, একই segment-এ আলাদা nested layout, নির্দিষ্ট route-এ loading skeleton দিতে ব্যবহার হয়

src ফোল্ডার

চাইলে application code (যেমন app) একটি optional `src/` ফোল্ডারের ভেতরে রাখা যায় — ফলে project root-এর configuration file থেকে application code আলাদা থাকে।

সাধারণ Project Structure

create-next-app structuretext
text
my-app/
├── app/
│   ├── layout.tsx      → রুট লেআউট — <html> ও <body>
│   ├── page.tsx        → হোম পেজ (/)
│   ├── globals.css     → global styles
│   └── favicon.ico
├── public/
│   └── (static assets)
├── next.config.ts      → Next.js configuration
├── tsconfig.json       → TypeScript configuration
├── eslint.config.mjs   → ESLint configuration
└── package.json

Project Organize করার কৌশল

Next.js file organize নিয়ে unopinionated — যেটি টিমের সাথে মেলে সেটি ধরুন, শুধু project-জুড়ে consistent রাখুন:

  • app-এর বাইরে রাখা — সব application code root-এর shared folder-এ (components/, lib/), app শুধু routing-এর জন্য বিশুদ্ধ রাখা
  • app-এর ভেতরে top-level folder — shared code app root-এর ভেতরের folder-এ রাখা
  • Feature/route অনুযায়ী ভাগ — globally shared code app root-এ, নির্দিষ্ট route যে code ব্যবহার করে তার ভেতরেই রাখা
সারসংক্ষেপ

উপরের ফোল্ডার-ফাইল configure করে, app-এর special file route চালায়, folder বানায় URL segment। page/route না থাকলে route নয় — তাই colocation নিরাপদ; (group) ও _folder দিয়ে URL না বদলে organize করুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরNext.js InstallপরেরRouting ও Pages
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com