Everything you need to start building with Cursor. Clone, install, set two env vars, run.
- Node.js 18+ — check with
node -v - npm (comes with Node) — or pnpm/yarn if you prefer
- A free Supabase account — sign up at supabase.com
- A free Vercel account — sign up at vercel.com
# 1. Clone the repo
git clone <repo-url>
cd cursor-workshop
# 2. Install dependencies
npm install
# 3. Set up environment variables (see below)
cp .env.example .env.local
# 4. Start the dev server
npm run devOpen http://localhost:3000 — you should see a card with an input and a button. If you see it, you're good to go!
You need two values from Supabase. Here's how to get them:
It's in the project root (same folder as package.json). If you ran cp .env.example .env.local above, the file already exists with empty values.
- Go to supabase.com/dashboard
- Select your project (or click New Project to create one — the free tier works fine)
- In the sidebar, click Project Settings (the gear icon)
- Click API in the left menu
- You'll see two values you need:
| Variable | Where to find it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Project URL at the top |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
anon public key under Project API keys |
Your .env.local should look like this (with your actual values):
NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Save the file. If npm run dev is already running, restart it.
| Technology | What it does |
|---|---|
| Next.js 16 | React framework (App Router, TypeScript) |
| Supabase | Backend-as-a-service (database, auth) |
| Tailwind CSS | Utility-first CSS framework |
| shadcn/ui | Pre-built UI components (see below) |
These components are ready to import from @/components/ui/:
button·input·label·textareacard·badge·tabsdialog·alert-dialog·popover·dropdown-menutable·select·switchcalendar+popover(use together as a date picker)sonner(toast notifications)
src/
app/
layout.tsx ← Root layout (includes toast provider)
page.tsx ← Demo page
globals.css ← Tailwind + shadcn theme
components/
ui/ ← All shadcn/ui components
lib/
supabase/
client.ts ← Supabase browser client
utils.ts ← Utility functions (cn helper)
You can deploy this repo to Vercel in a few minutes. Two options:
- Click the Deploy with Vercel button at the top of this README.
- Sign in with GitHub and select the repo.
- When prompted, add:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- Click Deploy.
- Go to vercel.com/new.
- Import the
cursor-workshopGitHub repo. - Add the two environment variables under Project Settings → Environment Variables.
- Deploy.
Once deployed, you'll get a URL like https://your-project.vercel.app. If you update env vars later, redeploy to apply changes.
| Command | What it does |
|---|---|
npm run dev |
Start dev server |
npm run build |
Production build |
npm run start |
Start production server |
npm run lint |
Run ESLint |