Next.js — veb-mahsulotlar uchun odatiy tanlovim, ammo bu moda bo‘lgani uchun emas. Bitta TypeScript kod bazasi avval uchta loyiha talab qilgan ishni qamrab oladi: qidiruvda yuqori chiqishi kerak bo‘lgan marketing sayti, tizimga kirish ortidagi ilova va ularni bog‘laydigan ixcham API qatlami. Ushbu sayt kichik misol: mahalliylashtirilgan yo‘llar, avtomatik yaratiladigan metadata, sitemap, Open Graph rasmlari va llms.txt yo‘li — barchasi bitta App Router loyihasida.
Ishni serverdan boshlayman. Sahifalar va layout’lar odatda Server Components bo‘ladi: ma’lumotni bazaga yaqin joydan oladi, JavaScript bundle o‘rniga HTML yuboradi va maxfiy ma’lumotlarni serverda saqlaydi. “use client”ni faqat holat, effekt yoki brauzer API’si kerak bo‘lgan daraxt barglariga — forma, ochiladigan menyu yoki xaritaga qo‘yaman. Butun daraxt tepasidan “use client” bilan boshlansa, odatda og‘ir bundle va xatolarning butun bir toifasi kelib chiqadi.
Renderlash usulini tanlash texnik emas, mahsulotga oid qaror. Deploy paytida o‘zgaradigan sahifalar uchun statik generatsiya. Kun davomida yangilanadigan katalog, e’lon va bloglar uchun ISR yoki teg asosida qayta tekshirish: hech kim tushunmaydigan taymer o‘rniga yozuvdan so‘ng revalidateTag. Dashboard va shaxsiy ma’lumotlarga Suspense streaming’li dinamik renderlash: avval sahifa qobig‘i ko‘rinadi, sekin ma’lumot keyin keladi. Har bir yo‘l nima sababdan statik yoki dinamikligini yozaman; shu bir satr keyin «narx nega eskirgan?» degan savol bilan o‘tadigan haftani tejaydi.
O‘zgarishlar uchun sahifaga tegishli formalarda Server Actions, tashqi xizmat ilovani chaqirishi kerak bo‘lsa Route Handlers ishlataman: to‘lov provayderi yoki Telegram’dan webhook, mobil mijoz yoki cron vazifasi. Har qanday holatda ham kiruvchi ma’lumotlarni serverda Zod tekshiradi, autentifikatsiya serverda tasdiqlanadi; mijoz pul yoki ruxsat masalasini hal qilmaydi. Katta mahsulotlarda Next.js frontend va BFF bo‘lib qoladi, asosiy biznes sohasi esa o‘z ma’lumotlar bazasiga ega NestJS yoki Node.js xizmatida ishlaydi.
Tezlik va SEO ish tayyor bo‘lishining bir qismidir. Haqiqiy o‘lchamlar bilan next/image, joylashuv siljishini kamaytirish uchun next/font, har bir ochiq sahifada generateMetadata va tuzilmali ma’lumotlar, og‘ir vidjetlar uchun dinamik importlardan foydalanaman. Core Web Vitals’ni MacBook’da emas, o‘rta toifadagi telefonda tekshiraman. Jamoa operatsion ishlarni istamasa Vercel’ga, xarajat, ma’lumotlar saqlanadigan hudud yoki uzoq vazifalar muhim bo‘lsa AWS yoki VPS’dagi Docker standalone build’ga joylayman.
Root layout’da “use client” qo‘yishdan, kesh haqida o‘ylamasdan bir xil ma’lumotni besh komponentda olishdan, biznes mantiqini middleware’da yashirishdan va codemod’larni o‘qimasdan juma kuni major versiyani yangilashdan bosh tortaman. Next.js ilovangiz sekin yoki mo‘rt bo‘lsa, repozitoriy va eng sekin ikki sahifani yuboring. Nimani serverga ko‘chirishim, nimani keshga joylashim va nimani o‘chirishimni aytaman.
Keyingi mahsulotingizga qoladigan insonni bering.
Boshlashga tayyormisiz? Yozing — hozir boshlayman va qolaman. Ikki haftalik topshirish emas, uzoq hamkorlik. Loyiha, talab va eng yaxshi yo‘lni muhokama qilaylik.