Ultimate Next.js 15, Typescript and Supabase Course: Build a Full-Featured Slack Clone

Welcome to the Ultimate Next.js 15, TypeScript and Supabase Course! In this course, you'll learn how to build a fully-featured Slack clone from scratch. This README will guide you through setting up the project and running the course.

Prerequisites

Before you begin, make sure you have the following installed:

  • Node.js (v14 or later)
  • Bun (latest version) or you can use npm or what works for you
  • Git

Getting Started

Follow these steps to set up the project:

  1. Clone the Repository:

    git clone https://github.com/laribright/slack-clone.git
    cd slack-clone
  2. Install Dependencies:

    bun install
  3. Set Up Environment Variables:

    • Rename the .env.example file to .env.local and fill in the required environment variables.
    mv .env.example .env.local
  4. Run the Development Server:

    bun dev

    Your app should now be running on http://localhost:3000.

Course Structure

This course is divided into multiple modules, each covering different aspects of building the Slack clone. The modules include:

  • Setting up Next.js and TypeScript
  • Configuring Supabase (RPC, Storage, SQL, Role Level Security)
  • Styling with Tailwind CSS and Shadcn UI
  • Implementing Authentication (Google Auth, GitHub Auth, Email Auth with Magic Link)
  • Managing state with Zustand and React Hook Form
  • Real-time communication with Socket.IO
  • Handling file uploads with Uploadthing and Supbase Storage
  • Advanced Next.js features and middleware

Resources

SQL Scripts

All SQL scripts used in this course can be found in the sql.txt file. These scripts will help you set up your database schema, functions, and other necessary configurations.

Documentation Links

For detailed documentation and additional resources, refer to the docs.tsx file. This file contains links to various documentation pages for the libraries and tools used in this course.

Environment Variables

Make sure to properly configure your environment variables by referring to the .env.example file. This file contains example values and instructions on what needs to be filled in.

Course Video

Watch the full course on YouTube: Ultimate Next.js 15, Typescript and Supabase Course: Build a Full-Featured Slack Clone

Part 2 Watch the full course on YouTube: Ultimate Next.js 15, Typescript and Supabase Course: Build a Full-Featured Slack Clone

Community and Support

If you have any questions, need further help, or want to engage with other learners, join our Discord group. Here, you can get personalized mentorship, ask questions, and share your progress.

Contributing

If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request. Contributions are always welcome!

Support

If you find this course helpful, please give this repository a star to show your support!


Happy coding! Let's build something amazing together.