🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

2026 में Next.js 15 और PostgreSQL के साथ एक फुल-स्टैक ऐप कैसे बनाएं

⏱️3 min read  ·  569 words



How to Build a Full-Stack App with Next.js 15 and PostgreSQL in 2026

टेकपल्स संपादकीय टीम
टेक लेखक · 28 मई, 2026
📅 28 मई, 2026⏱ 16 मिनट पढ़ें📂कैसे करें🏷 नेक्स्टजेएस · पोस्टग्रेस्क्ल · फुलस्टैक · प्रतिक्रिया

हम क्या बना रहे हैं

एक पूर्ण-स्टैक कार्य प्रबंधन ऐप: Next.js 15 ऐप राउटर, नियॉन के माध्यम से PostgreSQL (सर्वर रहित), प्रिज्मा ORM, सर्वर एक्शन (म्यूटेशन के लिए कोई अलग एपीआई मार्ग नहीं), Auth.js v5 GitHub OAuth, वर्सेल में तैनात किया गया।

प्रोजेक्ट सेटअप

npx create-next-app@latest taskapp \
  --typescript --tailwind --eslint --app --src-dir --import-alias "@/*"
cd taskapp
Next.js 15 प्रमुख परिवर्तन:स्थिर टर्बोपैक (5× तेज बिल्ड), रिएक्ट 19 आवश्यक, डिफ़ॉल्ट रूप से एसिंक अनुरोध एपीआई, डिफ़ॉल्ट रूप से कैश नहीं किया गया, सर्वर क्रियाओं में सुधार।

डेटाबेस: नियॉन + प्रिज्मा के साथ PostgreSQL

|||| पर एक निःशुल्क डेटाबेस बनाएं नियॉन.टेक. फिर:📋कॉपी

npm install prisma @prisma/client
npx prisma init

:.env.local📋कॉपी

DATABASE_URL="postgresql://user:pass@ep-xxx.us-east-2.aws.neon.tech/neondb?sslmode=require"
NEXTAUTH_SECRET="your-random-secret-here"
GITHUB_CLIENT_ID="your-github-oauth-app-id"
GITHUB_CLIENT_SECRET="your-github-oauth-app-secret"

📋कॉपी

// prisma/schema.prisma
model User {
  id        String   @id @default(cuid())
  email     String   @unique
  name      String?
  createdAt DateTime @default(now())
  tasks     Task[]
}

model Task {
  id        String     @id @default(cuid())
  title     String
  status    TaskStatus @default(PENDING)
  priority  Priority   @default(MEDIUM)
  userId    String
  user      User       @relation(fields: [userId], references: [id], onDelete: Cascade)
  createdAt DateTime   @default(now())
  updatedAt DateTime   @updatedAt

  @@index([userId])
}

enum TaskStatus { PENDING IN_PROGRESS COMPLETED CANCELLED }
enum Priority  { LOW MEDIUM HIGH URGENT }

npx prisma migrate dev --name init
npx prisma generate

// src/lib/db.ts
import { PrismaClient } from '@prisma/client';
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient };
export const db = globalForPrisma.prisma ?? new PrismaClient();
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db;

ऐप राउटर घटक डिफ़ॉल्ट रूप से सर्वर घटक हैं – वे सर्वर पर चलते हैं और सीधे डेटाबेस से क्वेरी कर सकते हैं:

📋कॉपी

// src/app/dashboard/page.tsx (Server Component)
import { db } from '@/lib/db';
import { auth } from '@/lib/auth';
import { redirect } from 'next/navigation';

export default async function DashboardPage() {
  const session = await auth();
  if (!session?.user) redirect('/');

  const tasks = await db.task.findMany({
    where: { userId: session.user.id, status: { not: 'CANCELLED' } },
    orderBy: [{ priority: 'desc' }, { createdAt: 'desc' }],
    take: 50,
  });

  return (
    <main className="container mx-auto p-6">
      <h1>My Tasks</h1>
      {tasks.map(task => <TaskCard key={task.id} task={task} />)}
    </main>
  );
}

उत्परिवर्तन के लिए सर्वर क्रियाएँ

सर्वर क्रियाएँ फॉर्म सबमिशन और म्यूटेशन के लिए एपीआई मार्गों को प्रतिस्थापित करती हैं:

📋कॉपी

// src/actions/tasks.ts
'use server';
import { db } from '@/lib/db';
import { auth } from '@/lib/auth';
import { revalidatePath } from 'next/cache';
import { z } from 'zod';

const Schema = z.object({
  title:    z.string().min(1).max(200),
  priority: z.enum(['LOW','MEDIUM','HIGH','URGENT']).default('MEDIUM'),
});

export async function createTask(formData: FormData) {
  const session = await auth();
  if (!session?.user?.id) throw new Error('Unauthorized');

  const parsed = Schema.safeParse({
    title:    formData.get('title'),
    priority: formData.get('priority') || 'MEDIUM',
  });
  if (!parsed.success) return { error: parsed.error.flatten().fieldErrors };

  await db.task.create({ data: { ...parsed.data, userId: session.user.id } });
  revalidatePath('/dashboard');
  return { success: true };
}

Auth.js v5revalidatePathके साथ प्रमाणीकरण 📋कॉपी

📋कॉपी

npm install next-auth@beta @auth/prisma-adapter

// src/lib/auth.ts
import NextAuth from 'next-auth';
import GitHub from 'next-auth/providers/github';
import { PrismaAdapter } from '@auth/prisma-adapter';
import { db } from './db';

export const { auth, handlers, signIn, signOut } = NextAuth({
  adapter: PrismaAdapter(db),
  providers: [GitHub({ clientId: process.env.GITHUB_CLIENT_ID!, clientSecret: process.env.GITHUB_CLIENT_SECRET! })],
  session: { strategy: 'database' },
  callbacks: { session: ({ session, user }) => ({ ...session, user: { ...session.user, id: user.id } }) }
});

.src/app/api/auth/[...nextauth]/route.tsवर्सेल में तैनातीhandlers as GET, handlers as POST📋कॉपी

परिनियोजन के बाद: GitHub OAuth कॉलबैक URL को

# Install Vercel CLI and deploy
npm install -g vercel
vercel

# Set environment variables
vercel env add DATABASE_URL
vercel env add NEXTAUTH_SECRET
vercel env add GITHUB_CLIENT_ID
vercel env add GITHUB_CLIENT_SECRET

vercel --prod

.https://your-app.vercel.app/api/auth/callback/githubउत्पादन चेकलिस्टnpx prisma migrate deployदर सीमित करना

– सर्वर क्रियाओं और एपीआई मार्गों पर अपस्टैश रेटलिमिट

  • त्रुटि सीमाएँ– जोड़ें
  • सुंदर फ़ॉलबैक के लिए फ़ाइलेंलोड होने की स्थितिerror.tsx– जोड़ें
  • सस्पेंस कंकालों के लिएइनपुट सत्यापनloading.tsx— सर्वर क्रियाओं पर हमेशा ज़ॉड का उपयोग करें
  • कनेक्शन पूलिंग– जोड़ें
  • नियॉन यूआरएल के लिएसुरक्षा शीर्षलेख?pgbouncer=true&connection_limit=1— के माध्यम से जोड़ें
  • हेडर()🔧शिप करने के लिए तैयार हैं?next.config.tsNext.js 15 + PostgreSQL 2026 में प्रमुख फुल-स्टैक स्टैक है। एक्सप्लोर करें

टाइपस्क्रिप्ट क्यों आवश्यक है

बड़े Next.js ऐप्स और मास्टर के लिएasync/प्रतीक्षा पैटर्नसर्वर घटकों और क्रियाओं के लिए।अक्सर पूछे जाने वाले प्रश्नNext.js 15 क्या है?

नवीनतम Next.js: स्थिर टर्बोपैक (5× तेज), रिएक्ट 19 आवश्यक, एसिंक अनुरोध एपीआई, बेहतर सर्वर क्रियाएँ। ऐप राउटर आगे बढ़ने वाला मानक है।

2026 में ऐप राउटर या पेज राउटर?

सभी नई परियोजनाओं के लिए ऐप राउटर। पेज राउटर काम करता है लेकिन उसे कोई नई सुविधाएँ नहीं मिलतीं।

Next.js के साथ किस डेटाबेस का उपयोग करना है?

नियॉन (सर्वर रहित) + प्रिज्मा या ड्रिज़ल ओआरएम के माध्यम से पोस्टग्रेएसक्यूएल। यदि आपको बिल्ट-इन ऑथ और रीयल-टाइम की आवश्यकता है तो सुपाबेस।

सर्वर क्रियाएँ क्या हैं?

Async सर्वर फ़ंक्शंस (‘सर्वर का उपयोग करें’ के रूप में चिह्नित) को रिएक्ट से कॉल किया गया। उत्परिवर्तन के लिए एपीआई मार्ग बदलें। टाइप-सुरक्षित, आशावादी अपडेट का समर्थन करें।

कैसे तैनात करें?

वर्सेल (शून्य कॉन्फ़िगरेशन, नेक्स्ट.जेएस टीम द्वारा बनाया गया)। सेल्फ-होस्ट: अगला निर्माण + nginx, या डॉकर के पीछे अगली शुरुआत।

How to deploy?

Vercel (zero config, made by Next.js team). Self-host: next build + next start behind nginx, or Docker.

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা