
Build and deploy a full-stack video conferencing app called Let's Talk, a Zoom clone, using Next.js 15, TypeScript, Tailwind, CSS, shared CDN, Clerk Stream, and Figma for design and authentication.
Explore the lets talk app’s landing page and signup flows—login with Google, GitHub, or LinkedIn, verify emails, and manage your profile; then set up, join, and record meetings.
Initialize a GitHub repository for the course, link it to a local directory in Visual Studio Code, and organize course resources and the Let's Talk app source for easy pushing.
Design the app interface in Figma to visualize layout and function. Organize assets in UI design folder and assets, source icons from the SVG repo, then push updates to GitHub.
Set up a figma team and project, design landing and home pages on a desktop frame, and showcase connect, communicate, and collaborate with Clark authentication.
Build a desktop home page with a navigation bar and four main menu boxes for upcoming, previous, recordings, and my room, plus a new meeting modal.
Learn how to design and prototype modals in Figma, creating a responsive overlay for instant meetings, join meetings, and schedule meetings with onClick triggers and centered overlays.
Design and prototype the meeting setup page for a nextjs video conferencing app, featuring a black video area, join with mic and camera off, and navigation to the meeting page.
Design a user interface for a nextjs video conferencing app, creating a meeting page with a black video area, invite button, and controls, upcoming, previous, recordings, and my room pages.
Install the latest Next.js, create the app, enable Tailwind CSS and app router, and run the dev server to explore the Next.js starter template.
Add authentication to a Next.js video conferencing app using Clerk, wrap the app in a Clerk provider, and configure login and register routes with env keys.
Create login and register pages using Clark's sign in and sign up components, apply the New Brutalism theme, and enable animations with Tailwind CSS v4 in globals.
Delete the initial app file, create a root group named main with home and meeting routes, and build a home layout with a navbar that renders children.
Create the main route layout for the lets talk app, rendering a guest landing page when no user is signed in and the home content for signed-in users via clerk.
Update the app metadata for seo with a new title and description, create a favicon, and build a navbar with links from constants using the shared CDN function.
Create NextJS home routes (my room, previous, upcoming, recordings) and implement a real-time date and time status bar on the home page using use client, useEffect, and setInterval.
Create the main right-hand menu with four items and use three Chack'n dialogues as triggers for new, join, and scheduled meetings, and render a menu item card for each item.
Create a client menu item component in a Next.js app with image, title, background color, hover color, and a click handler; style with global CSS and export the component.
Create a client main menu component as a grid of boxes, using three CDN dialogues with triggers and content, including title, description, meeting input, date picker.
Install the stream packages for back end and front end, generate user tokens with a Next.js server action, and set up client components for calls, video rendering, and camera controls.
wrap the app with a custom stream provider that initializes a stream video client using your api key and clark-authenticated user, generating a secure token on the server.
Create meeting function handles instant or scheduled meetings, validates inputs, generates a random id with crypto, creates or gets the meeting, updates members, and redirects with toasts.
Create a dynamic Next.js meeting page that reads the meeting id from the url, fetches call details with a custom hook, and renders a setup, meeting room, or not-allowed alert.
Create a client meeting setup component to manage user and call state, toggle mic and camera, join the meeting, and render the meeting room with grid or speaker layouts.
Implement an end call button component that renders only for the meeting owner, calls end call on click, and redirects to home using Next.js router.
Build and wire the remaining pages for a Next.js full-stack video conferencing app, including upcoming, previous, recordings, and my room, with a reusable call list and hook-driven data fetching.
Deploy your Next.js app to the internet by importing it into Vercel. Push changes from GitHub, run npm install --force, and set the domain with base URL.
Express gratitude to learners and reinforce the core concepts of building a NextJS full-stack video conferencing app for the Let's Talk App.
Course Description
Have you ever wanted to build your own video conferencing app like Zoom but felt it was too complicated to achieve? In this course, you will learn how to design, develop, and deploy a fully functional full-stack video conferencing application called Let's Talk. This course will guide you step by step through the entire process, from designing the user interface in Figma to implementing authentication, real-time video calls, and deploying the application.
This course is designed for developers who want to gain hands-on experience building scalable, enterprise-ready applications with modern technologies. You will use Next.js 15, TypeScript, TailwindCSS, ShadCN, Clerk, Stream, and more to create a feature-rich video conferencing app. By the end of the course, you will have a fully functional project that you can showcase in your portfolio or present to potential employers.
What You Will Learn
How to design a professional video conferencing app using Figma
Implementing authentication with Clerk, covering different login and registration flows
Creating a modern and responsive user interface using TailwindCSS and ShadCN
Building a scalable video conferencing system using Stream
Developing key features such as meeting creation, real-time video and audio calls, screen sharing, recording, and participant management
Implementing secure, scalable APIs with Next.js and handling real-time communication
Deploying the application to production and making it available online
Best practices for structuring, maintaining, and optimizing a full-stack application
Who Is This Course For?
Developers who want to learn full-stack development with modern technologies
Anyone interested in building real-time applications like Zoom, Google Meet, or Microsoft Teams
Frontend developers looking to gain backend experience with authentication, APIs, and real-time data handling
Backend developers who want to learn how to integrate real-time video and audio communication into applications
Entrepreneurs or freelancers looking to build and launch their own video conferencing platform
React or Next.js developers who want to explore advanced features like WebRTC, authentication, and real-time data
Software engineers looking to expand their knowledge of scalable application architecture
Anyone eager to build a real-world project that can be used in personal projects, businesses, or as a portfolio piece
Course Requirements
Basic knowledge of JavaScript and TypeScript
Familiarity with React or Next.js fundamentals
Understanding of HTML and CSS
Some experience with TailwindCSS is helpful but not required
Basic knowledge of backend development is a plus but not mandatory
A GitHub account for version control and project hosting
A development environment with Node.js, a code editor like VS Code, and a modern web browser
A strong willingness to learn and build a real-world application
By the end of this course, you will have developed a fully functional video conferencing app that you can deploy and showcase to potential employers. Join me in this exciting journey and let's build something amazing together.