Welcome to Spotlight!
In this one‑stop tutorial you’ll build a production‑ready real‑time social network that runs on iOS, Android, and the web—all with React Native + Expo, Convex, and Clerk.
This isn’t a UI demo—Spotlight is a full‑stack, real‑time social platform.
✅ Works on physical devices & simulators (Android / iOS)
✅ Everything updates instantly across users (likes, follows, comments)
✅ No native Swift / Kotlin required—just JavaScript & TypeScript
✅ From ZERO → to HERO in one video
- 🔐 Google Auth via Clerk (seamless one‑tap login)
- 🏠 Home Feed with stories + posts, pull‑to‑refresh & logout
- ❤️ Like / Comment with live updates for everyone
- 📑 Bookmarks Screen to save and review posts
- ➕ Create Post — select image, add caption, share instantly
- 🔔 Notifications — like, follow & comment events with deep links
- 👤 Profile — stats, posts, animated edit‑profile modal
- 🔄 Follow / Unfollow other users
- 🗑️ Delete Own Posts with confirmation alert
- 🎨 Custom fonts & splash / app icon included
- 🏗️ Structure a cross‑platform app with Expo Router
- ⚡ Wire up a real‑time backend using Convex functions & database
- 🔑 Implement secure auth & session management with Clerk
- 📱 Master core RN components:
View,Text,Image,FlatList,ScrollView,Pressable,KeyboardAvoidingView,Modal, icons… - 🚀 Optimize performance (virtualization, lazy loading, memoization)
- 🖼️ Handle device image selection & uploads
- 🧭 Combine stack & tab navigators safely with
SafeAreaView - 🎁 Ship to the web with Expo’s single‑codebase magic
- 💬 Talk interview‑worthy topics: webhooks, real‑time syncing, optimistic UI
Create a .env file in the project root:
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=<your_publishable_key>
CONVEX_DEPLOYMENT=<your_deployment_name>
EXPO_PUBLIC_CONVEX_URL=<your_convex_url>npm install
npx expo start