🔍

smsak.be/Claude-masterclass/Deel 8

Vercel & deployment

Van eerste deployment tot eigen domein, environment variables en monitoring.

Deel 8 van 12 § 42–47 · 6 secties Laatst nagekeken op
§ 42 — Vercel Deployment

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

1

Ga naar vercel.com

Klik op "Sign Up" en kies "Continue with GitHub" — dit koppelt je Vercel direct met je GitHub account.

2

Autoriseer de GitHub koppeling

Geef Vercel toegang tot je GitHub repositories. Je kunt kiezen: alle repos of specifieke repos.

3

Kies je plan

Het gratis "Hobby" plan is perfect om te starten. Upgrade naar "Pro" ($20/maand) voor commerciële projecten.

§ 43 — Vercel Deployment

Je Eerste Deployment

Van lokale code naar live website in vier stappen 💻 Lokaal git commit 🐙 GitHub git push ▲ Vercel bouwt automatisch 🌐 Live jouwdomein.be branch → preview-URL build faalt → oude versie blijft live
Na de eerste koppeling is deployen niets meer dan git push. Elke branch krijgt een eigen preview-URL, en een mislukte build raakt je live site niet.

Methode 1: Via de Vercel Website

1

Importeer je project

Op het Vercel dashboard, klik "Add New → Project". Kies de GitHub repository die je wilt deployen.

2

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.

3

Voeg environment variables toe

Als je project API keys of andere secrets gebruikt, voeg deze toe bij "Environment Variables" voordat je deployt.

4

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

TerminalBash
# 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
§ 44 — Vercel Deployment

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

1

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.

2

Voeg domein toe in Vercel

In je project op Vercel → Settings → Domains → Add Domain. Typ je domein in (bijv. mijnwebsite.be).

3

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

4

Wacht op propagatie

DNS wijzigingen duren 5 minuten tot 48 uur. Vercel activeert automatisch HTTPS (SSL) zodra het domein actief is.

§ 45 — Vercel Deployment

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

OmgevingWanneer actiefGebruik
ProductionPush naar main branchEchte API keys, productiedatabase, live data
PreviewElke andere branchTest API keys, testdatabase, staging data
DevelopmentLokaal via vercel devLokale database, development modus
🚨
Nooit API keys in je code of git! Bots scannen GitHub continu op gelekte keys. Één geleakte Anthropic API key kan honderden euro's kosten. Gebruik altijd environment variables. Vercel, GitHub Actions en AWS hebben aparte secret-stores.

Complete Environment Variables Setup

.env.local — Lokale developmentEnv
# ── 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)

1

Open Project Settings

Vercel Dashboard → Jouw Project → Settings → Environment Variables

2

Voeg variabele toe

Naam: ANTHROPIC_API_KEY | Waarde: sk-ant-... | Omgeving: ✅ Production ✅ Preview ✅ Development

3

Gebruik in code

process.env.ANTHROPIC_API_KEY — beschikbaar in server-side code. Let op: NEXT_PUBLIC_ prefix nodig voor client-side.

4

Sync naar lokaal (optioneel)

vercel env pull .env.local — haalt Vercel env vars naar je lokale .env.local bestand.

Env Vars via Vercel CLI

Terminal — Env vars beherenBash
# 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
§ 46 — Vercel Deployment

Automatisch Deployen vanuit GitHub

De krachtigste Vercel feature: koppel GitHub aan Vercel en elke code push wordt automatisch gedeployed.

De Automatische Deploy Pipeline

De volledige CI/CD flowFlow
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-homepageproject-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
Ideale workflow: Develop → Preview → Approve → Productie Codeer op een feature-branch → push → review preview URL → goedkeuring → PR mergen → automatisch live. Zo komt er nooit ongecontroleerde code in productie.
§ 47 — Vercel Deployment

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.

Terminal + Next.js — Vercel KV SetupBash
# 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
app/api/cache/route.ts — KV gebruikTypeScript
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.

Terminal + Next.js — Vercel Postgres SetupTypeScript
# 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
app/api/users/route.ts — Postgres gebruikTypeScript
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

ProductTypeBeste voorGratis tier
Vercel KVRedis/Key-ValueCache, sessies, rate limiting, pub/sub30.000 req/maand
Vercel PostgresPostgreSQLGestructureerde data, relaties, transacties60 uur compute/maand
Vercel BlobBestandsopslagAfbeeldingen, video's, PDFs uploaden500 MB/maand
SupabasePostgreSQL + AuthVolledige backend met auth en realtimeGenereus gratis tier
PlanetScaleMySQLGrote schaal, branching voor databases1 DB gratis

Vercel Cron Jobs

Cron jobs laten je code uitvoeren op een schema — zonder externe dienst.

vercel.json — Cron configuratieJSON
{
  "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

Terminal + app/layout.tsxTypeScript
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>
  )
}
Van SMSAK

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.