
Clone a GitHub repository to your local machine by selecting a local path, clicking clone, and review the Git commit history in the newly created project folder.
Log in to Supabase and create a new project named dev. Copy the service role secret key and dotenv keys into your env file for Next.js app router.
Create a reusable navigation bar component for a Next.js SaaS app. Implement client-side interactivity with useState, next/link, sign in and sign out, and a responsive mobile menu.
Learn to change a font in a Next.js SaaS app by importing a variable font like bricolage grotesque or Roboto, setting a global font family, and applying a dark theme.
Finalize the starter kit by adding a dashboard folder and page, gate content by login and pro plan, and enable a seven-day trial with a personalized welcome for the user.
Create and secure a Supabase table with a primary key, foreign key to Clark's user, auto timestamps, indexing, and row-level security policies driven by JWT sub.
Connect to the Supabase database with a server-side Supabase client, obtain the token from Clerk, and enforce per-user access so each user can only modify their own data.
Create a marketing folder and move the landing page and related assets there, using parentheses in the path so the landing page remains at localhost:3000.
Build the Clerk starter kit UI how it works section by repurposing a hero component, wiring step cards with icons, and applying staggered fade-in motion with Tailwind grid.
Coordinate dashboard components by wiring get profile and get links actions to render link manager and profile setup, export and import components, and handle database error.
Create a link manager UI component that renders conditionally after profile exists, accepts initial links and username as props, and supports adding, updating, deleting, and validating URLs with server actions.
Render a responsive public profile view with avatar handling, display name, and username, bio, and conditional links, styled by theme-aware Tailwind classes and interactive hover animations.
Build a responsive navbar as a client component in Next.js, with next/link and Clerk sign-in/out handling. Integrate desktop and mobile navigation with a toggleable menu and purple styling.
Create a reusable button glowing component in Next.js that accepts text and href, renders an inline-flex link with a chevron icon, and adds a hover gradient glow for landing page.
Gate the dashboard content with authentication and an active-subscription check, redirecting non-subscribers to pricing while preparing file input, AI analysis, and a payment-success message via URL params.
Design a dashboard with pdf upload and analysis, using tailwind styling, hover effects, and a disabled analyze button until a file is selected for pdf ai analysis.
Explore Pdf.js in-browser text extraction using a Jsdelivr web worker, with a max text length and an async function that loads, processes pages in parallel, and returns full pdf text.
Test your app by extracting text from a PDF using PDF utils in the library. Load the file, extract content, and set the stage for AI analysis.
Implement a rate limiter for the api using an in-memory lru cache to cap requests at five per minute, with a 1000-entry cache and one-minute reset.
Install Prisma, run npx prisma init, define a user model with a 1-to-1 subscription and stripe fields, push to Supabase, and create a shared Prisma client.
Expose localhost with Ngrok to test the Clerk webhook, configure the /api/webhooks/clerk endpoint for user events, and set the webhook secret so the user is saved in Supabase after login.
Implement stripe integration in a next.js project by creating a stripe client, installing the stripe npm package, and building a get stripe session function to create checkout session for subscriptions.
! ! ! All commands below are written for terminal use in your app directory
How to check current version and the latest one of all packages:
npx npm-check-updates
Or you can check all outdated packages:
npm outdated
Update all package.json to latest versions - it can break the app:
-> go slow on production and first do this on Development version and test/fix
npx npm-check-updates -u
Do you want to check just a specific package? Run:
npm view <package-name> version
Example: npm view @clerk/nextjs version
Stripe version (for prod - testing locally uses a default older version)
Login to stripe -> open workbench tab (right bottom corner) ->
check API version -> get latest and replace current version in /lib/stripe.ts
----------------------
Safe Update Process
Step 1: Backup your code
Step 2: Update to latest compatible versions (respects semver in package.json)
npm update
Step 3: Update to latest versions (including major versions)
npx npm-check-updates -u
and then
npm install
Step 4: Test the application
npm run dev
Step 5: Test all features: auth, subscriptions, etc.
Step 6: Run linting and build
npm run lint
and then
npm run build
Refactor a Next.js SaaS dashboard by preserving auth with Clerk, keeping Stripe payments and webhooks, and turning the PDF analysis tool into a reusable starter kit.
Configure environment variables for AI, Clerk, Supabase (database URL and direct URL for Prisma), and Stripe (publishable key, secret, price ID, webhook secret), with guidance on reusing or separating projects.
Set up a Stripe listener, obtain webhook secret, and test the webhook by triggering a payment intent with Stripe, confirming HTTP 200. Test subscription and create the user in Superbase.
Set up the Postman environment by extracting the underscore session token from the localhost 3000 cookies and defining base URL and auth token variables.
Demonstrates a secure get request flow for authenticated users, including auth via clerk, rate limiting at 20 requests per minute, Prisma data retrieval, and robust error handling.
Build the SaaS dashboard atop a starter kit by creating components and Prisma tables, updating API routes, deploying with production Clerk and Stripe, and implementing pricing, logo, catchphrase, and subscribe.
Learn to build a Next.js navigation bar with a theme toggle, client components, and conditional links (dashboard, profile, pricing) integrated into the layout with flexbox.
Delete the Next.js template and build a landing page hero with a centered heading and two call-to-action buttons, then implement dashboard, profile, and pricing routes with a subscription flow.
Synchronize Clerk data with your Next.js app via webhooks and ngrok, then persist new users to your database using Prisma and webhook secret configuration.
Set up Stripe keys, create a product and price, and implement a webhook-driven flow with checkout sessions and subscription handling.
Create client-side payment pages in a Next.js app by adding a payment folder with cancelled and success pages, TSX components, a Next.js link to pricing, and flexbox styling.
Structure authentication for Next.js by creating an auth folder with sign in and sign up pages, then style them and add links between them.
Learn to build a reusable framer motion animation container for a Next.js landing page hero, with gradient text, gradient buttons, and a responsive call-to-action.
Create an interactive FAQ section on a landing page for a Next.js SaaS project by toggling three questions and answers with useState and animating transitions using Framer Motion's AnimatePresence.
Build a dynamic landing page section featuring a rotating circle of thumbnails with framer motion and next/image, followed by a responsive footer with updates and navigation links.
Build a new navbar for the landing page using next/link and theme toggles. Incorporate Clark authentication with sign in/out and a mobile menu toggle.
Create a profile page where users set and save their channel name, auto-populated on login. Use Prisma queries and a server action to update and revalidate.
Hello! Before enrolling, please check points 1, 2, and 3 below to see if this course is a good fit for you.
This course is not about using AI to build SaaS products. We will do the work ourselves — writing the code, making decisions, and understanding how everything fits together.
Is this about building a big startup?
No. We focus on Micro SaaS — small, focused products that you can realistically build, ship, and maintain on your own.
We will go through:
SaaS architecture and folder structure
frontend and backend development
authentication, payments, and databases
design and user experience, not just backend logic
We won’t rely on random starter kits from the internet ( we will build our own later :D ). We will build things step by step and understand why they work.
By understanding these fundamentals, you’ll be able to build your own Micro SaaS products, add features later, and reuse the same architecture for future ideas. You won’t be locked into one specific project.
1. Goal of this course
The goal of this course is to help you confidently build and ship Micro SaaS applications, without relying on AI or copy-paste solutions.
By the end of the course, you will:
understand how SaaS applications are structured
know how to manage users, authentication, and subscriptions
be able to add new features over time
ship a real SaaS product to production
2. You will get
Micro SaaS Apps (full code provided) with:
Clerk for authentication
Clerk Billing or Stripe for subscriptions
Supabase database
Prisma ORM
Next.js and TailwindCSS
Tech stack used for projects:
Most Common Tech Stack: (Clerk, Supabase, Stripe, Prisma ORM)
The Simplest and Effective Tech Stack: (Clerk + Clerk Billing, Supabase)
Includes: End to End Testing after finishing the project, step by step guide on how to set up .env variables, how to deploy, how the app works end to end
3. Is this course for you?
Yes, if you:
have a bit of technical background
know how to work in an IDE (like VS Code)
have basic knowledge of Next.js
(I explain structure and concepts, but it may feel challenging if this is your first full project)
Or you’re simply not afraid of a challenge and want to learn by building products :)
This course focuses on fundamentals that will stay useful long-term.