Full-Stack Web Development with Next.js and NestJS
Build and ship a complete online grocery store — React and Next.js on the front, NestJS and PostgreSQL behind it.
This is the course everything else on this site builds towards. You write both halves of a real application and connect them properly, which is the part that tutorials almost always skip.
The front end is React with Next.js. The back end is NestJS with PostgreSQL and Prisma. Both are TypeScript, so one language covers the whole stack and the types travel between them.
The project is a working online grocery store for a neighbourhood kirana shop: catalogue, search, cart, checkout, payments, order tracking, delivery slots and an admin area for the owner. The sort of thing BigBasket does, at a scale one shop can actually run.
It is deliberately a real brief rather than a to-do list. Real briefs have stock that runs out mid-checkout, prices that change while an item sits in a cart, and customers who refresh at exactly the wrong moment. Those problems are the reason this course is worth taking, and they are why it is the longest one here.
Who this is for
- Developers who can write TypeScript and want to build whole products
- Front-end developers who want to own the back end too
- Back-end developers tired of waiting on somebody else for the UI
- Interns moving on to real client project work
What you need first
- Solid JavaScript and TypeScript. The TypeScript Foundation course is assumed throughout, not taught again.
- HTML and CSS to roughly the level of our Web UI Development Foundation course.
- SQL basics. The Database Foundation course covers far more than enough.
- Comfort with Git and the command line.
Tools you will use
By the end you can
- Build a React front end with the Next.js App Router, server and client components
- Build a NestJS back end with modules, dependency injection, guards and pipes
- Model and query PostgreSQL through Prisma, including migrations
- Design REST APIs with validation, useful errors and pagination
- Implement authentication, sessions and role-based access properly
- Handle money, stock and orders without a race condition losing you data
- Take payments through a gateway in test mode, verified by webhook
- Test both halves of the stack, including end to end
- Deploy the whole thing and know when it breaks
Stuck? Compare your work
The Kirana Store as the course builds it, one branch per module from module 10 onward. The teaching modules before that have no checkpoint, because they cover concepts rather than adding to one running project.
It is there for when you are stuck, not to start from. Type the code yourself first — copying it will teach you very little.
17 modules, 86 lessons
Work through these in order. Each lesson is short enough to finish in one sitting and ends with something to build, not a quiz.
- 1
How a Full-Stack Application Fits Together
The mental model first, so the rest of the course has somewhere to attach.
- 2
React Fundamentals
Enough React to build real interfaces, without the folklore.
- 3
Next.js: Routing and Rendering
The framework that makes a storefront fast and findable.
- 4
Building the Interface
Making it look right and work for everybody, including on a cheap phone.
- 5
NestJS Fundamentals
Structure, and what dependency injection actually buys you.
- 6
The Data Layer
Prisma and PostgreSQL, from schema to query.
- 7
REST APIs Done Properly
The difference between an API that works and one somebody else can use.
- 8
Authentication and Authorisation
Getting the part wrong that you cannot afford to get wrong.
- 9
Connecting the Two Halves
The seam between front and back, which is where most bugs live.
- 10
Kirana Store: Planning
What the shop actually needs, decided before any code is written.
- 11
Kirana Store: Catalogue and Search
Products, categories and the units a grocery shop actually sells in.
- 12
Kirana Store: Cart and Checkout
The hardest part of any shop, and the part most tutorials fake.
- 13
Kirana Store: Orders and Admin
What happens after the customer pays, and the screens the owner lives in.
- 14
Payments
Taking money, in test mode, without trusting anything the browser tells you.
- 15
Testing the Whole Stack
Enough tests to change the code without fear, and no more.
- 16
Shipping It
Getting it live, and knowing when it breaks at two in the morning.
- 17
Engineering Practices Across a Stack
The habits that make a three-layer codebase survivable: where a rule lives, what the layers agree to call things, and how to review a change that touches all of them.
Learning this with a mentor is faster
Going through a course like this one is how you qualify for our six-month internship, for selected students, mostly from Pune. Clear the interview and you build real-world projects with my mentorship.