# Blog & Case Studies — Govind Bajaj

## [Deploying Next.js to Vercel vs AWS: What I Choose and When](https://www.meetgovindbajaj.shop/blog/nextjs-vercel-vs-aws-deployment)
I deploy most projects to Vercel. Two projects are on AWS. The decision comes down to one question: how much control do I actually need?
Tags: deployment, vercel, aws, next.js, infrastructure

## [Royal Madrasi Restaurant Menu](https://www.meetgovindbajaj.shop/blog/royal-madrasi-restaurant-menu)
Public-facing menu site for Royal Madrasi — a pure-vegetarian multi-cuisine restaurant. Built with Next.js PPR for dynamic menu caching and full JSON-LD structured data for SEO.
Tags: Next.js, TypeScript, React, Tailwind CSS, Lucide React

## [Next.js 16 Cache Components: PPR Finally Makes Sense](https://www.meetgovindbajaj.shop/blog/nextjs-16-cache-components-ppr)
I fought with Partial Prerendering for a year. Then Cache Components landed in Next.js 16 and the mental model clicked. Here's how to actually use it.
Tags: next.js, react, performance, ppr, server-components

## [Sans Herbals](https://www.meetgovindbajaj.shop/blog/sans-herbals)
Production-ready Ayurvedic e-commerce platform built end-to-end for a real client — an SEO-first storefront with Razorpay checkout, an admin dashboard, real-time sales analytics, and Cloudinary-backed media.
Tags: Next.js, React, TypeScript, MongoDB, Tailwind CSS, SCSS, Node.js, TipTap, NextAuth, Razorpay, Cloudinary, REST API, JWT, SEO, SSR, Schema.org, Open Graph

## [Royal Madrasi Admin Dashboard](https://www.meetgovindbajaj.shop/blog/royal-madrasi-admin-dashboard)
Real-time admin dashboard for Royal Madrasi — push notifications, authenticated access, and live data visualisation powered by Pusher, NextAuth, and Recharts/D3.
Tags: Next.js, TypeScript, React, Mongoose, Tailwind CSS, Radix UI, Pusher, NextAuth, Recharts, D3

## [React 19 Compiler: Why I Deleted All My useMemo Calls](https://www.meetgovindbajaj.shop/blog/react-19-compiler-delete-usememo)
The React Compiler made manual memoization obsolete. I removed 47 useMemo and useCallback hooks from a production app. The bundle got smaller. The code got cleaner. Here's what happened.
Tags: react, react-19, performance, compiler, hooks

## [Next.js App Router File Conventions That Actually Matter](https://www.meetgovindbajaj.shop/blog/nextjs-app-router-file-conventions)
I counted 12 different special files in the App Router docs. Most teams use 4 of them. Here's which ones you actually need, and when to reach for the rest.
Tags: next.js, app-router, file-conventions, routing, conventions

## [Core Web Vitals in 2025: The Metrics That Actually Affect Your Rankings](https://www.meetgovindbajaj.shop/blog/core-web-vitals-2025-rankings)
Google uses three metrics to judge your site's user experience. Only 47% of sites pass all three. Here's what each metric measures and how to fix them.
Tags: core-web-vitals, seo, performance, web-performance, google

## [The `use` Hook in React 19: Suspense Without the Boilerplate](https://www.meetgovindbajaj.shop/blog/react-19-use-hook-suspense)
React 19's `use` hook collapses three patterns into one. No more wrapper components. No more useEffect data fetching. Here's the before and after from a real migration.
Tags: react, react-19, suspense, hooks, data-fetching

## [Server Components vs Client Components: The Mental Model That Finally Clicked](https://www.meetgovindbajaj.shop/blog/server-components-vs-client-components-mental-model)
I taught Server Components to three junior devs last month. Two of them were confused by the official docs. Here's the one-sentence rule that made everything click.
Tags: react, next.js, server-components, app-router, architecture

## [Middleware Route Protection in Next.js: Stop Copy-Pasting Auth Checks](https://www.meetgovindbajaj.shop/blog/nextjs-middleware-route-protection)
I found the same auth check in 14 different page files. It was slightly different in 6 of them. Two had security bugs. Middleware fixed all of it in 12 lines.
Tags: next.js, middleware, auth, security, app-router

## [Building a Performance Budget That Actually Gets Enforced](https://www.meetgovindbajaj.shop/blog/performance-budget-ci-enforcement)
Performance budgets fail because they are spreadsheets, not tests. I moved mine into CI. Now builds fail when bundles grow. Here's the setup.
Tags: performance, ci-cd, web-performance, testing, automation

## [Image Optimization Is Still Killing Your Core Web Vitals in 2025](https://www.meetgovindbajaj.shop/blog/image-optimization-killing-core-web-vitals-2025)
I audited 23 production sites last month. 19 of them had unoptimized images. The same three mistakes, over and over. Here's the checklist that catches all of them.
Tags: web-performance, images, core-web-vitals, next.js, optimization

## [Why I Still Build Full-Stack in 2025 (Instead of Specializing)](https://www.meetgovindbajaj.shop/blog/full-stack-development-2025)
Specialists build parts of systems. Full-stack developers ship systems. In 2025, the tools are good enough that one person can do both. Here's why I still do.
Tags: full-stack, career, next.js, typescript, opinion

## [GEO: SEO for the ChatGPT Era](https://www.meetgovindbajaj.shop/blog/geo-generative-engine-optimization)
Traditional SEO gets you ranked. GEO gets you cited by AI. 15% of Google searches now show AI Overviews. Here's how to optimize for being referenced, not just ranked.
Tags: geo, ai-search, seo, structured-data, content-strategy

## [FAQ Schema: How I Got My Content into Google's AI Overviews](https://www.meetgovindbajaj.shop/blog/faq-schema-google-ai-overviews)
One FAQ section. Proper schema markup. Two weeks later, my content appeared in Google's AI Overviews for three target keywords. Here's the exact implementation.
Tags: seo, faq-schema, ai-search, structured-data, google

## [From Figma to Code: My Component Extraction Workflow](https://www.meetgovindbajaj.shop/blog/figma-to-code-component-workflow)
I get a Figma file. I extract components in 30 minutes. Not by eyeballing — by following a systematic extraction process. Here's the exact workflow.
Tags: workflow, figma, react, tailwind, frontend

## [Webhook Security: Verifying Razorpay Signatures the Right Way](https://www.meetgovindbajaj.shop/blog/webhook-security-razorpay-signatures)
A client lost Rs 47,000 to a webhook spoofing attack. The attacker sent fake payment events. The application trusted them. Here's how to verify webhooks correctly.
Tags: security, webhooks, razorpay, backend, api-security

## [Razorpay + Next.js Server Actions: The Payment Flow I Use in Production](https://www.meetgovindbajaj.shop/blog/razorpay-nextjs-server-actions-production)
I processed 2,400 payments through Razorpay last month. Zero fraud cases. 99.2% success rate. Here's the exact Server Action flow I use for Sans Herbals.
Tags: razorpay, payments, next.js, server-actions, ecommerce

## [NextAuth v5 with App Router: The Complete Setup Guide](https://www.meetgovindbajaj.shop/blog/nextauth-v5-app-router-complete-setup)
NextAuth v5 rewrites the auth experience for Next.js App Router. One config file. Edge-compatible. Server Components supported. Here's the production setup I use.
Tags: nextauth, next.js, auth, app-router, security

## [Building an IoT Dashboard: From Sensor to Chart in Real Time](https://www.meetgovindbajaj.shop/blog/iot-dashboard-sensor-to-chart)
I built a temperature monitoring dashboard for a warehouse. 47 sensors. Live charts. Threshold alerts. Here's the complete sensor-to-screen pipeline.
Tags: iot, dashboard, mqtt, recharts, real-time

## [Blue Ocean Exports](https://www.meetgovindbajaj.shop/blog/blue-ocean-exports)
Full-stack furniture e-commerce platform with an admin dashboard, multi-currency support (10+ currencies), advanced analytics, and a dynamic CMS — built on Next.js 16 / React 19.
Tags: Next.js 16, React 19, TypeScript, MongoDB, Mongoose, Tailwind CSS 4, Framer Motion, Radix UI, Recharts, NextAuth, Nodemailer, JWT, Cloudinary

## [Handling 1000+ IoT Devices: Scaling Past the Demo](https://www.meetgovindbajaj.shop/blog/iot-scaling-1000-devices)
My IoT dashboard worked beautifully with 10 devices. At 200, it lagged. At 1000, it crashed. Here's how I scaled the architecture to handle real-world device counts.
Tags: iot, scaling, react, performance, mongodb

## [Real-time Order Notifications: The Royal Madrasi Pattern](https://www.meetgovindbajaj.shop/blog/real-time-order-notifications-royal-madrasi)
200 orders per hour. 12 kitchen staff. 4 admin screens. Every order must appear everywhere instantly. Here's the pattern that keeps Royal Madrasi running during rush.
Tags: pusher, real-time, restaurant, architecture, notifications

## [Architecting a Real-time IoT Pipeline: MQTT to MongoDB to Dashboard](https://www.meetgovindbajaj.shop/blog/iot-pipeline-architecture-mqtt-mongodb)
I designed an IoT pipeline that ingests 50,000 sensor readings per hour. Three architecture decisions made or broke the system's reliability.
Tags: iot, mqtt, mongodb, architecture, pipeline

## [MQTT + React: Building IoT Dashboards with Live Sensor Data](https://www.meetgovindbajaj.shop/blog/mqtt-react-iot-dashboards-live-data)
I connected 47 temperature sensors to a React dashboard using MQTT. Data flows from sensor to screen in 200ms. Here's the complete pipeline from hardware to UI.
Tags: mqtt, iot, react, dashboard, sensors

## [Core Web Vitals and SEO: The Technical Connection Most Miss](https://www.meetgovindbajaj.shop/blog/core-web-vitals-seo-technical-connection)
Google confirmed Core Web Vitals as a ranking factor in 2021. Most devs still treat performance and SEO as separate teams. Here's how they are connected and why fixing one helps the other.
Tags: seo, core-web-vitals, performance, google, ranking-factors

## [JSON-LD for Developers: Structured Data That AI Search Actually Cites](https://www.meetgovindbajaj.shop/blog/json-ld-structured-data-developers)
Pages with proper JSON-LD get 82% higher click-through rates. In 2025, structured data is how AI search engines decide what to cite. Here's the production-ready implementation.
Tags: seo, json-ld, structured-data, ai-search, next.js

## [Programmatic SEO with Next.js: Building 1000 Pages That Rank](https://www.meetgovindbajaj.shop/blog/programmatic-seo-nextjs-1000-pages)
I built 847 location-specific pages for a client. They generated 12,000 monthly organic visits within 3 months. No manual writing. Just data, templates, and Next.js.
Tags: seo, programmatic-seo, next.js, ssg, scaling

## [How I Cut LCP from 3.5s to 1.2s on a Next.js E-Commerce Site](https://www.meetgovindbajaj.shop/blog/nextjs-lcp-optimization-35-to-12)
Lighthouse was at 65. LCP sat at 3.5 seconds. Two weeks of focused Core Web Vitals work brought Lighthouse to 95 and LCP to 1.2s. Here's the exact checklist.
Tags: next.js, core-web-vitals, lcp, performance, web-performance

## [Dynamic Imports in Next.js: A 30-Second Performance Win](https://www.meetgovindbajaj.shop/blog/nextjs-dynamic-imports-performance)
The checkout page loaded 340KB of charting library on every visit. Dynamic imports cut the initial bundle to 12KB. The charts loaded when needed. Here's the one-liner.
Tags: next.js, performance, dynamic-imports, code-splitting, web-performance

## [TipTap Editor in React: Custom Extensions Without Losing Your Mind](https://www.meetgovindbajaj.shop/blog/tiptap-react-custom-extensions)
I needed a mention system (@user) and embed blocks in TipTap. The docs cover bold and italic. Here's how to build real custom extensions that work.
Tags: tiptap, react, rich-text, editor, extensions

## [D3.js vs Recharts: When to Use Each (And When to Combine Them)](https://www.meetgovindbajaj.shop/blog/d3-vs-recharts-when-to-use)
I rebuilt the same chart in D3 and Recharts. One took 4 hours and 400 lines. The other took 20 minutes and 40 lines. But only one could do what I actually needed.
Tags: d3, recharts, data-visualization, react, charts

## [Framer Motion: The Animation Library That Thinks in React](https://www.meetgovindbajaj.shop/blog/framer-motion-react-animation)
I replaced 400 lines of CSS animation with 40 lines of Framer Motion. The animations got better. The code got maintainable. Here's when to use it — and when not to.
Tags: framer-motion, react, animation, ui, frontend

## [The Stack Overflow Reputation System Is Broken](https://www.meetgovindbajaj.shop/blog/stack-overflow-reputation-broken)
I answered a question in 2019. It has 47,000 views and 342 upvotes. I got 3,400 reputation for 10 minutes of work. Meanwhile, detailed answers to hard questions get 2 upvotes. The system rewards speed over depth.
Tags: community, stack-overflow, opinion, career, developer-tools

## [Smart Restaurant App](https://www.meetgovindbajaj.shop/blog/smart-restaurant-app)
End-to-end restaurant ordering system with menu management, cart, invoicing, and full admin controls. Originally built as a college project (JIET) and later deployed for Royal Madrasi.
Tags: React, Bootstrap, Chart.js, Axios, Node.js, Express, MongoDB, JWT

## ["Use the Right Tool for the Job" Is Hurting Your Career](https://www.meetgovindbajaj.shop/blog/right-tool-hurting-career)
I have seen developers learn seventeen frameworks and ship nothing. The right tool is the one you know well enough to ship with. Everything else is a distraction.
Tags: career, opinion, full-stack, learning, productivity

## [Why I Charge Fixed Price for Freelance Projects (And How I Estimate)](https://www.meetgovindbajaj.shop/blog/freelance-fixed-price-estimation)
Hourly billing penalizes efficiency. If I finish in 10 hours what takes others 40, I get paid 75% less. Fixed pricing aligns incentives. Here's the estimation framework.
Tags: freelancing, pricing, business, career, opinion

## [Junior Developers Should Build Ugly Things (On Purpose)](https://www.meetgovindbajaj.shop/blog/junior-developers-build-ugly-things)
I see junior devs stuck in tutorial hell, building perfect to-do apps. The path to senior is building messy, real things that break. Here's why ugly code is the best teacher.
Tags: career, junior-developer, learning, opinion, growth

## [Shipping Beats Perfect: A Manifesto for Pragmatic Developers](https://www.meetgovindbajaj.shop/blog/shipping-beats-perfect-manifesto)
I have never regretted shipping imperfect code. I have regretted not shipping at least a dozen times. Perfect is the enemy of deployed. Here's the pragmatic developer's manifesto.
Tags: productivity, shipping, opinion, career, manifesto

## [Why I Write Tests After the Feature Works (And Still Call It TDD)](https://www.meetgovindbajaj.shop/blog/testing-after-feature-tdd)
I write the feature first. Make it work. Then write tests. Purists call this backwards. My production bug rate says otherwise. Here's the workflow.
Tags: testing, tdd, methodology, workflow, software-engineering

## [Feature Flags: Deploying on Friday Without Fear](https://www.meetgovindbajaj.shop/blog/feature-flags-deployment-friday)
I deployed a major checkout refactor on a Friday afternoon. It went to 5% of users. Rolled back 20 minutes later. Zero downtime. No panic. Here's how feature flags make this possible.
Tags: feature-flags, deployment, methodology, devops, software-engineering

## [Role-Based Access Control Without a Library](https://www.meetgovindbajaj.shop/blog/role-based-access-control-without-library)
You do not need CASL, CASL-React, or any RBAC library for most applications. 47 lines of TypeScript. Zero dependencies. Here's the pattern.
Tags: security, rbac, typescript, next.js, auth

## [INP: The Metric That Replaced FID and Why You Care](https://www.meetgovindbajaj.shop/blog/inp-metric-replaced-fid-2025)
FID died in March 2024. INP took its place. FID measured one interaction. INP measures all of them. Most sites that passed FID are failing INP.
Tags: core-web-vitals, inp, performance, web-performance, user-experience

## [MongoDB Schema Design for E-Commerce: Lessons from Sans Herbals](https://www.meetgovindbajaj.shop/blog/mongodb-schema-design-ecommerce-sans-herbals)
Embedding vs referencing: the decision that determines whether your e-commerce API responds in 50ms or 5 seconds. Here's the framework I use.
Tags: mongodb, mongoose, schema-design, ecommerce, database

## [API Versioning: The Strategy I Use to Not Break Client Apps](https://www.meetgovindbajaj.shop/blog/api-versioning-strategy)
I changed a response field name and broke 3 client apps. Never again. Here's the URL versioning strategy that lets me evolve APIs without breaking existing clients.
Tags: api-design, versioning, backend, rest-api, software-engineering

## [Debugging Production: A Systematic Approach That Actually Finds Bugs](https://www.meetgovindbajaj.shop/blog/debugging-production-systematic)
A production payment webhook was failing silently. I found the bug in 20 minutes using this systematic approach. Here's the exact process I follow.
Tags: debugging, production, methodology, troubleshooting, backend

## [The N+1 Query Problem in Mongoose: A Production War Story](https://www.meetgovindbajaj.shop/blog/mongoose-n1-query-problem-production)
One missing .populate() call brought the Sans Herbals API to its knees at 200 concurrent users. The fix was two lines. The debugging took three hours.
Tags: mongodb, mongoose, performance, database, backend

## [Type-Safe APIs with Zod + Express: No More `as any`](https://www.meetgovindbajaj.shop/blog/zod-express-type-safe-apis)
I replaced Joi with Zod in three Express projects. I deleted 200 lines of type declarations and caught 14 type mismatches at build time. Here's the setup.
Tags: typescript, zod, express, validation, api-design

## [Why I Still Use TypeScript Strict Mode in 2025 (And You Should Too)](https://www.meetgovindbajaj.shop/blog/typescript-strict-mode-2025)
Three 'any' types in a codebase I inherited cost me 4 hours of debugging last month. Strict mode would have caught all three at compile time. The case is still open-and-shut.
Tags: typescript, strict-mode, type-safety, debugging, best-practices

## [Code Reviews: My Checklist for Every Pull Request](https://www.meetgovindbajaj.shop/blog/code-review-checklist-pr)
I have reviewed 800+ pull requests. The same 8 checks catch 90% of issues. Here's the checklist I use on every PR — as a reviewer and as an author.
Tags: code-review, methodology, best-practices, software-engineering, workflow

## [Node.js Streams: Processing 10MB CSVs Without Crashing](https://www.meetgovindbajaj.shop/blog/nodejs-streams-csv-processing)
fs.readFile on a 10MB CSV consumed 847MB of RAM and crashed the container. Streams processed the same file in 18MB. Here's the code.
Tags: nodejs, streams, csv, performance, backend

## [My Git Workflow for Solo Projects (That Scales to Teams)](https://www.meetgovindbajaj.shop/blog/git-workflow-solo-projects)
I use the same Git workflow for solo side projects and team production apps. One convention. Zero merge conflicts. Here's the branch strategy and commit discipline.
Tags: git, workflow, methodology, version-control, software-engineering

## [The README Template That Saves Me 2 Hours Per Project](https://www.meetgovindbajaj.shop/blog/readme-template-saves-time)
I open-sourced a README template after realizing I was rewriting the same sections for every project. 47 stars later, it's clear I'm not the only one who needed this.
Tags: documentation, readme, methodology, open-source, workflow

## [Mongoose Middleware: When to Use It, When to Avoid It](https://www.meetgovindbajaj.shop/blog/mongoose-middleware-best-practices)
I disabled Mongoose middleware on two collections and cut API response times by 40%. Middleware is powerful but it's a footgun. Here's my ruleset.
Tags: mongoose, mongodb, middleware, performance, backend

## [Building a Proper Express Error Handling Layer (Not Just console.log)](https://www.meetgovindbajaj.shop/blog/express-error-handling-layer)
I reviewed 12 Express repos last month. Eleven of them logged errors to console and returned 500. Here's the error handling architecture I use in production.
Tags: express, nodejs, error-handling, backend, api-design

## [JWT Authentication: The Parts Nobody Explains Clearly](https://www.meetgovindbajaj.shop/blog/jwt-authentication-explained-clearly)
I have seen 47 JWT tutorials. 46 of them show how to sign a token. One explains what happens when it leaks. Here's the full picture, not just the happy path.
Tags: jwt, authentication, security, nodejs, web-development

## [React Portfolio (v1)](https://www.meetgovindbajaj.shop/blog/react-portfolio-v1)
First portfolio version — a React SPA with Redux, MUI, an EmailJS contact form, Lottie animations, and an admin panel for content management.
Tags: React, Redux Toolkit, Material UI, EmailJS, Styled Components, Lottie

## [Ping Pong Game](https://www.meetgovindbajaj.shop/blog/ping-pong-game)
Classic 2-player Ping Pong in Java Swing. Ball speed increases with each hit; score resets on a point.
Tags: Java, Swing, AWT

## [Snake Game](https://www.meetgovindbajaj.shop/blog/snake-game)
Classic Snake in Java Swing. The snake grows and speeds up with each food eaten; game ends on wall or self collision.
Tags: Java, Swing, AWT

## [Sudoku Game](https://www.meetgovindbajaj.shop/blog/sudoku-game)
Sudoku puzzle in Java Swing with a 9×9 grid, move validation, solution reveal, and reset.
Tags: Java, Swing, AWT

## [Promptopia](https://www.meetgovindbajaj.shop/blog/promptopia)
Open-source AI prompt-sharing platform — discover, create, and share creative prompts. Google OAuth via NextAuth.
Tags: Next.js 13, MongoDB, NextAuth, Google OAuth, Tailwind CSS

## [Blogger](https://www.meetgovindbajaj.shop/blog/blogger)
Full-stack Markdown blog with server-side rendering. Write in Markdown, preview sanitized HTML, and manage posts via a REST API.
Tags: Node.js, Express.js, MongoDB, EJS, Marked, JWT

## [React Calculator](https://www.meetgovindbajaj.shop/blog/react-calculator)
Installable PWA calculator built with React and MUI Joy. Keyboard input, chained operations, and automatic dark/light theme.
Tags: React, TypeScript, Material UI (Joy), PWA, CSS

## [Responsive Webpage (HTML5 & CSS3)](https://www.meetgovindbajaj.shop/blog/responsive-webpage-html5-css3)
A complete multi-section marketing landing page hand-built in semantic HTML5 + CSS3 — sticky nav, a clip-path hero, animated skill bars, three-tier pricing, a testimonials carousel, and a contact + newsletter footer. Fully responsive, zero frameworks.
Tags: HTML5, CSS3

## [Responsive Webpage II (HTML5 & CSS3)](https://www.meetgovindbajaj.shop/blog/responsive-webpage-ii-html5-css3)
A studio/agency landing page in semantic HTML5 + CSS3 — a full-bleed boardroom hero, an icon services grid, a six-item portfolio gallery, and a team section. Responsive and framework-free.
Tags: HTML5, CSS3

## [Website Front Template](https://www.meetgovindbajaj.shop/blog/website-front-template)
A creative-agency front-page template in HTML5 + CSS3 — a full-screen photographic hero with an overlay nav, an “always-on-brand” headline, and engagement CTAs (Like & Share, Subscribe).
Tags: HTML5, CSS3

## [Website Front Template II](https://www.meetgovindbajaj.shop/blog/website-front-template-ii)
A bold front-page hero template in HTML5 + CSS3 — a vivid orange gradient, a diagonal clip-path base, a break-through-the-wall composite graphic, and a single primary CTA.
Tags: HTML5, CSS3

## [Website Front Template III](https://www.meetgovindbajaj.shop/blog/website-front-template-iii)
A travel-tourism front page (“Mera Bharat”) in HTML5 + CSS3 — a full-screen destination hero over a Taj Mahal backdrop with a two-tone headline and dual CTAs.
Tags: HTML5, CSS3

## [Intro Page (HTML5 & CSS3)](https://www.meetgovindbajaj.shop/blog/intro-page-html5-css3)
A personal developer intro / hero page in HTML5 + CSS3 — a split layout with a headline, role line, illustration, and Hire Me / Contact CTAs, plus a full site navigation.
Tags: HTML5, CSS3
