smsak.be/Claude-masterclass/Deel 8
Vercel & deployment
Van eerste deployment tot eigen domein, environment variables en monitoring.
Vercel: Deployment Made Simple
Vercel is een cloud platform gespecialiseerd in het hosten van frontend applicaties en Next.js projecten. Het is de makkelijkste en meest performante manier om je Claude-gebouwde projecten live te zetten.
Waarom Vercel?
Snel & Globaal
Vercel heeft een globaal CDN — je app wordt geserveerd vanuit het dichtstbijzijnde datacenter wereldwijd.
Automatisch Deployen
Koppel GitHub — elke push naar main deployt automatisch. Elke pull request krijgt een preview URL.
Gratis HTTPS
SSL certificaten worden automatisch aangemaakt en vernieuwd voor al je domeinen.
Gratis Tier
Het gratis plan is ruim voldoende voor kleinere projecten en portfolio's. Betaald plan pas nodig bij hoog verkeer.
Account Aanmaken
Ga naar vercel.com
Klik op "Sign Up" en kies "Continue with GitHub" — dit koppelt je Vercel direct met je GitHub account.
Autoriseer de GitHub koppeling
Geef Vercel toegang tot je GitHub repositories. Je kunt kiezen: alle repos of specifieke repos.
Kies je plan
Het gratis "Hobby" plan is perfect om te starten. Upgrade naar "Pro" ($20/maand) voor commerciële projecten.
Je Eerste Deployment
git push. Elke branch krijgt een eigen preview-URL, en een mislukte build raakt je live site niet.Methode 1: Via de Vercel Website
Importeer je project
Op het Vercel dashboard, klik "Add New → Project". Kies de GitHub repository die je wilt deployen.
Configureer de build
Vercel detecteert automatisch of het een Next.js, React, Vue, of ander project is en stelt de juiste build commando's in. Voor de meeste projecten hoef je niets te veranderen.
Voeg environment variables toe
Als je project API keys of andere secrets gebruikt, voeg deze toe bij "Environment Variables" voordat je deployt.
Deploy!
Klik "Deploy". In 1-3 minuten staat je app live op een vercel.app URL zoals jouw-project.vercel.app
Methode 2: Via Vercel CLI
# Installeer Vercel CLI npm install -g vercel # Log in met je Vercel account vercel login # Deploy vanuit je projectmap cd /mijn/project vercel # Vercel stelt vragen over je project: # - Set up and deploy? Y # - Which scope? (kies je account) # - Link to existing project? N # - Project name? (druk enter voor huidige naam) # - In which directory is your code? ./ # Na succesvolle deploy krijg je een URL! # Deploy naar productie vercel --prod
Een Eigen Domein Koppelen
Je project staat nu op een .vercel.app URL, maar voor een professionele uitstraling wil je een eigen domein.
Stap voor Stap
Koop een domein
Via Vercel zelf, of bij een registrar zoals Namecheap, Cloudflare of Mijndomein.be. Kosten: €10-20/jaar voor een .be of .com domein.
Voeg domein toe in Vercel
In je project op Vercel → Settings → Domains → Add Domain. Typ je domein in (bijv. mijnwebsite.be).
Stel DNS in bij je registrar
Vercel geeft je DNS records die je moet toevoegen bij je domeinnaam registrar:
A record: @ → 76.76.21.21
CNAME: www → cname.vercel-dns.com
Wacht op propagatie
DNS wijzigingen duren 5 minuten tot 48 uur. Vercel activeert automatisch HTTPS (SSL) zodra het domein actief is.
Environment Variables: Alle Omgevingen Beheren
Environment variables zijn geheime configuratiewaarden (API keys, database URLs, wachtwoorden) die nooit in je code mogen staan. Vercel heeft een krachtig systeem met drie aparte omgevingen.
De Drie Vercel Omgevingen
| Omgeving | Wanneer actief | Gebruik |
|---|---|---|
| Production | Push naar main branch | Echte API keys, productiedatabase, live data |
| Preview | Elke andere branch | Test API keys, testdatabase, staging data |
| Development | Lokaal via vercel dev | Lokale database, development modus |
Complete Environment Variables Setup
# ── NOOIT naar git pushen — staat in .gitignore ── # Anthropic / OpenAI ANTHROPIC_API_KEY=sk-ant-api03-... OPENAI_API_KEY=sk-proj-... # Database (zie §47 voor Vercel KV en Postgres) DATABASE_URL=postgresql://user:pass@localhost:5432/myapp_dev KV_URL=redis://localhost:6379 # Authenticatie NEXTAUTH_SECRET=genereer-met-openssl-rand-base64-32 NEXTAUTH_URL=http://localhost:3000 # Stripe betalingen STRIPE_SECRET_KEY=sk_test_... STRIPE_WEBHOOK_SECRET=whsec_... # Public variabelen (NEXT_PUBLIC_ prefix = zichtbaar in browser) NEXT_PUBLIC_SITE_URL=http://localhost:3000 NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_test_...
Env Vars toevoegen in Vercel (Dashboard)
Open Project Settings
Vercel Dashboard → Jouw Project → Settings → Environment Variables
Voeg variabele toe
Naam: ANTHROPIC_API_KEY | Waarde: sk-ant-... | Omgeving: ✅ Production ✅ Preview ✅ Development
Gebruik in code
process.env.ANTHROPIC_API_KEY — beschikbaar in server-side code. Let op: NEXT_PUBLIC_ prefix nodig voor client-side.
Sync naar lokaal (optioneel)
vercel env pull .env.local — haalt Vercel env vars naar je lokale .env.local bestand.
Env Vars via Vercel CLI
# Lijst alle env vars vercel env ls # Voeg env var toe voor alle omgevingen vercel env add ANTHROPIC_API_KEY # Voeg toe voor specifieke omgeving vercel env add DATABASE_URL production # Haal productie-env vars lokaal op vercel env pull .env.local # Verwijder een env var vercel env rm DEPRECATED_API_KEY
Automatisch Deployen vanuit GitHub
De krachtigste Vercel feature: koppel GitHub aan Vercel en elke code push wordt automatisch gedeployed.
De Automatische Deploy Pipeline
1. Jij schrijft code (met Claude Code)
↓
2. git commit + git push naar GitHub
↓
3. GitHub notificeert Vercel (webhook)
↓
4. Vercel bouwt je project (npm run build)
↓
5. Als build slaagt → Automatisch live (< 2 minuten)
Als build faalt → E-mail met de fout, vorige versie blijft live
↓
6. Preview URL per branch / PR aangemaakt
Preview Deployments
Vercel maakt automatisch een unieke preview URL voor elke branch en Pull Request:
- Branch
feature/nieuwe-homepage→project-git-feature-nieuwe-homepage-team.vercel.app - Deel deze URL met je team of klant voor feedback vóór productie
- Preview deployments gebruiken Preview environment variables (test API keys)
- Na PR merge → automatisch naar productie met Production env vars
Vercel KV, Postgres & Databases
Vercel biedt ingebouwde serverless databases die perfect integreren met je deployment. Geen aparte database server nodig — alles via het Vercel dashboard.
Vercel KV (Redis) — Key-Value Store
Vercel KV is een serverless Redis-compatibele database. Perfect voor sessies, cache, rate limiting en realtime features.
# Stap 1: Installeer Vercel KV package npm install @vercel/kv # Stap 2: Maak een KV Store aan in Vercel Dashboard # Storage → Create → KV → Kies naam → Create # Vercel voegt automatisch env vars toe: KV_URL, KV_REST_API_URL, KV_REST_API_TOKEN # Stap 3: Pull env vars naar lokaal vercel env pull .env.local
import { kv } from '@vercel/kv' // SET: Sla iets op (met optionele expiratie) export async function POST(req: Request) { const { key, value } = await req.json() await kv.set(key, value, { ex: 3600 }) // ex: seconden tot expiratie return Response.json({ success: true }) } // GET: Haal iets op export async function GET(req: Request) { const { searchParams } = new URL(req.url) const key = searchParams.get('key') const value = await kv.get(key!) return Response.json({ value }) } // Praktisch voorbeeld: API rate limiting const requests = await kv.incr(`rate:${userId}`) if (requests === 1) { await kv.expire(`rate:${userId}`, 60) // reset elke minuut } if (requests > 10) return new Response('Rate limited', { status: 429 })
Vercel Postgres — Volledige SQL Database
Vercel Postgres is een serverless PostgreSQL database. Perfect voor complexe datamodellen, relaties en transacties.
# Stap 1: Installeer npm install @vercel/postgres # Stap 2: Maak DB aan via Vercel Dashboard # Storage → Create → Postgres → Naam kiezen → Create # Vercel voegt toe: POSTGRES_URL, POSTGRES_PRISMA_URL, etc. # Stap 3: Pull env vars vercel env pull .env.local
import { sql } from '@vercel/postgres' // Tabel aanmaken (eenmalig) await sql` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, name VARCHAR(255), created_at TIMESTAMP DEFAULT NOW() ) ` // Gebruiker opslaan export async function POST(req: Request) { const { email, name } = await req.json() const { rows } = await sql` INSERT INTO users (email, name) VALUES (${email}, ${name}) RETURNING * ` return Response.json(rows[0]) } // Gebruikers ophalen export async function GET() { const { rows } = await sql`SELECT * FROM users ORDER BY created_at DESC` return Response.json(rows) }
Vercel Database Vergelijking
| Product | Type | Beste voor | Gratis tier |
|---|---|---|---|
| Vercel KV | Redis/Key-Value | Cache, sessies, rate limiting, pub/sub | 30.000 req/maand |
| Vercel Postgres | PostgreSQL | Gestructureerde data, relaties, transacties | 60 uur compute/maand |
| Vercel Blob | Bestandsopslag | Afbeeldingen, video's, PDFs uploaden | 500 MB/maand |
| Supabase | PostgreSQL + Auth | Volledige backend met auth en realtime | Genereus gratis tier |
| PlanetScale | MySQL | Grote schaal, branching voor databases | 1 DB gratis |
Vercel Cron Jobs
Cron jobs laten je code uitvoeren op een schema — zonder externe dienst.
{
"crons": [
{
"path": "/api/cron/stuur-dagelijkse-emails",
"schedule": "0 9 * * *" // Elke dag om 9:00 UTC
},
{
"path": "/api/cron/opruimen-oude-data",
"schedule": "0 0 * * 0" // Elke zondag om middernacht
}
]
}
Analytics Activeren
npm install @vercel/analytics @vercel/speed-insights // app/layout.tsx import { Analytics } from '@vercel/analytics/react' import { SpeedInsights } from '@vercel/speed-insights/next' export default function RootLayout({ children }) { return ( <html> <body> {children} <Analytics /> // Pageviews en events <SpeedInsights /> // Core Web Vitals (LCP, CLS, FID) </body> </html> ) }
Liever samen doorlopen dan alleen lezen?
SMSAK geeft on-site Claude-masterclasses en bouwt software op maat met Claude Code. We vertrekken van je eigen processen en bestanden — geen algemene demo.