<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chinna G</title>
    <description>The latest articles on DEV Community by Chinna G (@chinna_g_ffd342b2878bcdcd).</description>
    <link>https://dev.to/chinna_g_ffd342b2878bcdcd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3803757%2F28e4dfba-e437-45fb-b097-ab9ff9b7b481.png</url>
      <title>DEV Community: Chinna G</title>
      <link>https://dev.to/chinna_g_ffd342b2878bcdcd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chinna_g_ffd342b2878bcdcd"/>
    <language>en</language>
    <item>
      <title>Next.js 15 + PostgreSQL + Razorpay — The Exact SaaS Tech Stack We Use for Indian Products in 2026</title>
      <dc:creator>Chinna G</dc:creator>
      <pubDate>Wed, 15 Apr 2026 09:43:55 +0000</pubDate>
      <link>https://dev.to/chinna_g_ffd342b2878bcdcd/nextjs-15-postgresql-razorpay-the-exact-saas-tech-stack-we-use-for-indian-products-in-2026-1aec</link>
      <guid>https://dev.to/chinna_g_ffd342b2878bcdcd/nextjs-15-postgresql-razorpay-the-exact-saas-tech-stack-we-use-for-indian-products-in-2026-1aec</guid>
      <description>&lt;p&gt;At &lt;a href="https://wwww.nevatrix.com" rel="noopener noreferrer"&gt;Nevatrix&lt;/a&gt;, we have built SaaS products for clients in India, the USA and Canada over the past few years. After a lot of iteration, we have converged on a stack that works exceptionally well for Indian SaaS products specifically — with Razorpay for billing, Indian GST compliance and the need to run cost-efficiently on limited startup budgets.&lt;/p&gt;

&lt;p&gt;Here is the exact stack, the reasoning behind each choice and the tradeoffs we accepted.&lt;/p&gt;

&lt;p&gt;The Stack&lt;/p&gt;

&lt;p&gt;Frontend:    Next.js 15 (App Router)&lt;br&gt;
Styling:     Tailwind CSS v4&lt;br&gt;
Auth:        Clerk (or NextAuth v5 for budget-constrained projects)&lt;br&gt;
Database:    PostgreSQL (via Neon for serverless, or Supabase)&lt;br&gt;
ORM:         Prisma&lt;br&gt;
Cache:       Redis (Upstash for serverless)&lt;br&gt;
Payments:    Razorpay Subscriptions (India) + Stripe (international)&lt;br&gt;
Email:       Resend&lt;br&gt;
File Storage: AWS S3 (or Cloudflare R2 for cheaper egress)&lt;br&gt;
Hosting:     Vercel (frontend + API routes) + Railway (long-running jobs)&lt;br&gt;
Monitoring:  Sentry + Posthog + Uptime Robot&lt;br&gt;
CI/CD:       GitHub Actions&lt;br&gt;
Language:    TypeScript (strict mode, no exceptions)&lt;br&gt;
Why Next.js App Router over Pages Router&lt;/p&gt;

&lt;p&gt;We migrated our last 3 projects from Pages Router to App Router and have not looked back. Server Components eliminate client-side data fetching boilerplate, layouts are finally a first-class concept and the loading.tsx / error.tsx convention is clean.&lt;/p&gt;

&lt;p&gt;The one gotcha for Indian SaaS products: if you are using Razorpay's client-side checkout (the redirect flow), you need "use client" on that component. Razorpay's JS SDK is browser-only. Not a big deal once you know it.&lt;/p&gt;

&lt;p&gt;Why PostgreSQL over MongoDB&lt;/p&gt;

&lt;p&gt;Every SaaS product we initially started with MongoDB eventually migrated to PostgreSQL. SaaS data is fundamentally relational — users belong to organisations, organisations have subscriptions, subscriptions have invoices, invoices have line items. Trying to manage this in document collections gets messy fast.&lt;/p&gt;

&lt;p&gt;PostgreSQL with Prisma gives you: type-safe queries, migrations as code, excellent multi-tenancy patterns (row-level security or schema-per-tenant) and a mature ecosystem.&lt;/p&gt;

&lt;p&gt;For multi-tenancy specifically, we add tenant_id to every table and enforce it at the ORM layer:&lt;/p&gt;

&lt;p&gt;// All queries automatically scoped to tenant&lt;br&gt;
const getTenantPrisma = (tenantId: string) =&amp;gt; {&lt;br&gt;
  return prisma.$extends({&lt;br&gt;
    query: {&lt;br&gt;
      $allModels: {&lt;br&gt;
        async findMany({ args, query }) {&lt;br&gt;
          args.where = { ...args.where, tenantId };&lt;br&gt;
          return query(args);&lt;br&gt;
        },&lt;br&gt;
      },&lt;br&gt;
    },&lt;br&gt;
  });&lt;br&gt;
};&lt;br&gt;
Razorpay Subscriptions — What Nobody Tells You&lt;/p&gt;

&lt;p&gt;Razorpay is the right choice for Indian SaaS. GST-compliant invoices, UPI support, net banking, EMI — all handled. But there are a few things that tripped us up:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Webhook reliability
Razorpay webhooks occasionally arrive out of order or with delays. Always implement idempotent webhook handlers and store the raw payload before processing:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;// Always store webhook first, then process&lt;br&gt;
await db.webhookEvent.create({&lt;br&gt;
  data: {&lt;br&gt;
    provider: 'razorpay',&lt;br&gt;
    eventId: payload.event,&lt;br&gt;
    payload: JSON.stringify(payload),&lt;br&gt;
    processedAt: null,&lt;br&gt;
  }&lt;br&gt;
});&lt;br&gt;
// Then process asynchronously&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Subscription status sync&lt;br&gt;
Do not rely only on webhooks for subscription status. Run a daily cron that fetches subscription status from Razorpay API and reconciles with your database. Webhooks fail. Crons catch the gaps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GST on invoices&lt;br&gt;
Razorpay handles GST invoicing if you configure your GST number in the dashboard. But you also need to store GST details at the organisation level in your database for your own records and for the compliance report you will need to file every quarter.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Clerk vs NextAuth — When to Use Which&lt;/p&gt;

&lt;p&gt;Use Clerk when:&lt;/p&gt;

&lt;p&gt;You need multi-tenant org management out of the box&lt;br&gt;
You want OAuth (Google, GitHub, LinkedIn) without building it&lt;br&gt;
Your budget allows ₹3,000–₹8,000/month at scale&lt;br&gt;
You want a hosted, maintained auth solution&lt;br&gt;
Use NextAuth v5 when:&lt;/p&gt;

&lt;p&gt;Budget is tight (it is free and open source)&lt;br&gt;
You want full control over the auth flow&lt;br&gt;
You are comfortable handling sessions, CSRF and token rotation yourself&lt;br&gt;
For most funded SaaS products, Clerk is worth the cost. For bootstrapped MVPs under ₹5,00,000 budget, NextAuth.&lt;/p&gt;

&lt;p&gt;The Folder Structure We Use&lt;/p&gt;

&lt;p&gt;src/&lt;br&gt;
  app/&lt;br&gt;
    (auth)/          ← login, register, onboarding&lt;br&gt;
    (dashboard)/     ← authenticated app routes&lt;br&gt;
    (marketing)/     ← public pages, blog, pricing&lt;br&gt;
    api/             ← API routes&lt;br&gt;
  components/&lt;br&gt;
    ui/              ← shadcn/ui primitives&lt;br&gt;
    features/        ← feature-specific components&lt;br&gt;
  lib/&lt;br&gt;
    db.ts            ← Prisma client singleton&lt;br&gt;
    razorpay.ts      ← Razorpay client&lt;br&gt;
    auth.ts          ← Clerk or NextAuth config&lt;br&gt;
  hooks/             ← custom React hooks&lt;br&gt;
  types/             ← TypeScript types&lt;br&gt;
  utils/             ← pure utility functions&lt;br&gt;
The (marketing) / (dashboard) route group split is critical — it lets you have completely different layouts for public pages and authenticated app pages without any conditional rendering logic.&lt;/p&gt;

&lt;p&gt;Deployment Cost for an Indian SaaS MVP&lt;/p&gt;

&lt;p&gt;Vercel Pro:          ₹1,700/month&lt;br&gt;
Neon PostgreSQL:     Free tier → $19/month after scale&lt;br&gt;
Upstash Redis:       Free tier → $10/month after scale&lt;br&gt;
Clerk:               Free up to 10,000 MAU&lt;br&gt;
Resend:              Free up to 3,000 emails/month&lt;br&gt;
AWS S3:              ~$5/month for typical MVP usage&lt;br&gt;
Razorpay:            2% per transaction (no monthly fee)&lt;br&gt;
Total at MVP stage:  ~₹2,000–₹4,000/month&lt;br&gt;
This is why building SaaS in India is exceptional — you can run a fully production-grade stack for under ₹5,000/month until you have real revenue.&lt;/p&gt;

&lt;p&gt;What We Would Change&lt;/p&gt;

&lt;p&gt;Honestly, not much. The only thing we debate internally is Prisma vs Drizzle. Drizzle is significantly faster for complex queries and the SQL-like API is cleaner. We are migrating our next project to Drizzle + Neon and will write up the experience.&lt;/p&gt;

&lt;p&gt;If you are building a SaaS product in India and want to talk architecture, stack choices or just need a development partner — we are at nevatrix.com.&lt;/p&gt;

&lt;p&gt;Rathan Babu — Founder, &lt;a href="https://nevatrix.com" rel="noopener noreferrer"&gt;Nevatrix Technologies&lt;/a&gt;, Warangal, India&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>india</category>
      <category>saas</category>
    </item>
    <item>
      <title>How We Build Modern Business Websites at Nevatrix (Warangal Based Web Development Company)</title>
      <dc:creator>Chinna G</dc:creator>
      <pubDate>Tue, 03 Mar 2026 11:33:05 +0000</pubDate>
      <link>https://dev.to/chinna_g_ffd342b2878bcdcd/how-we-build-modern-business-websites-at-nevatrix-warangal-based-web-development-company-22o4</link>
      <guid>https://dev.to/chinna_g_ffd342b2878bcdcd/how-we-build-modern-business-websites-at-nevatrix-warangal-based-web-development-company-22o4</guid>
      <description>&lt;p&gt;Nevatrix is a web development company in Warangal helping startups and businesses build modern, scalable and SEO-friendly websites.&lt;/p&gt;

&lt;p&gt;Today, a business website is more than just an online brochure. It must be fast, mobile-friendly and optimized for search engines.&lt;/p&gt;

&lt;p&gt;At Nevatrix, we focus on:&lt;/p&gt;

&lt;p&gt;• Clean UI/UX design&lt;br&gt;&lt;br&gt;
• Responsive website development&lt;br&gt;&lt;br&gt;
• SEO-optimized structure&lt;br&gt;&lt;br&gt;
• Fast loading performance&lt;br&gt;&lt;br&gt;
• Scalable web applications  &lt;/p&gt;

&lt;p&gt;We build websites using modern technologies like React and Next.js to ensure performance and flexibility.&lt;/p&gt;

&lt;p&gt;We serve businesses in Warangal, Hanamkonda, Kazipet, Khammam and Nizamabad. We also provide remote web development services for companies in the USA and Canada.&lt;/p&gt;

&lt;p&gt;If you're looking for a reliable web development company in Warangal, you can learn more about us at:&lt;/p&gt;

&lt;p&gt;(&lt;a href="https://nevatrix.com" rel="noopener noreferrer"&gt;https://nevatrix.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/webdeveloperreact"&gt;@webdeveloperreact&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/seoserviceshub"&gt;@seoserviceshub&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/react_dev"&gt;@react_dev&lt;/a&gt; @business &lt;a class="mentioned-user" href="https://dev.to/indibloghub"&gt;@indibloghub&lt;/a&gt; &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
