This repo accompanies this free egghead course.
In this course, we build a Twitter clone from scratch, using the Next.js App Router and Supabase. We dive deep on the Next.js App Router, learning about:
- Client Components
- Server Components
- Route Handlers
- Server Actions
- Middleware
- Implementing Optimistic UI
On the Supabase side we look at:
- Configuring Supabase Auth to use cookies
- Using Row Level Security (RLS) policies to implement Authorization
- Querying data across multiple tables
- Introspecting PostgreSQL schema to generate TypeScript definitions with the Supabase CLI
- Subscribing to realtime database changes
This course is a deep dive into modern web development and I'm very excited to see what you're going to build on the other side! ๐
Jon Meyers is a Software Engineer, Educator and Hip Hop Producer from Melbourne, Australia. He's passionate about web development and enabling others to build amazing things! He is currently working as a Developer Advocate at Supabase, showing just how awesome (and not that scary ๐ป) databases can be!
Follow Jon Meyers on Twitter and subscribe to his YouTube channel.
- Start a new Supabase project
- Create a Next.js app with the create-next-app CLI
- Query Supabase data from Next.js Server Components
- Create an OAuth app with GitHub
- Authenticate users with GitHub OAuth using Supabase and Next.js Client Components
- Refresh session cookie for Next.js Server Components with Middleware
- Restrict access to authenticated users with RLS policies
- Dynamically render UI based on user session with SSR in Next.js Client Components
- Implement Protected Routes for authenticated users with Supabase Auth
- Generate TypeScript definitions from PostgreSQL schema with Supabase CLI
- Setup a Foreign Key relationship between PostgreSQL tables
- Automatically generate a profile for every user with PostgreSQL Function Triggers
- Run authenticated Server-side mutations with Next.js Server Actions
- Create a PostgreSQL join table in Supabase Studio
- Implement dynamic buttons with Next.js Client Components
- Declare global union types with Typescript
- Implement Optimistic UI with the Next.js useTransition hook
- Dynamically update UI with Database changes using Supabase Realtime
- Style a Twitter clone with Tailwind CSS
- Deploy Next.js App Router project to production with Vercel