Klassieke personalisatie heeft een paradox: hoe meer je wil personaliseren, hoe trager je site wordt. Want elke beslissing vereist een server-call, en elke call kost milliseconden. Voor je het weet heb je een persoonlijke site die tergend traag laadt.
Edge-functions lossen dit op. Ze draaien op servers dicht bij de bezoeker — vaak in minder dan 50 milliseconden — waardoor personalisatie-beslissingen kunnen voordat de pagina laadt, niet erna.
Wat zijn edge-functions?
Edge-functions zijn stukjes code die draaien op een wereldwijd netwerk van servers (het “edge”), dicht bij de gebruiker, met ultra-lage latency.
Vergelijk het met een CDN (Content Delivery Network). Een CDN serveert statische content (afbeeldingen, CSS) dicht bij bezoekers. Edge-functions doen hetzelfde maar voor dynamische logica.
Aanbieders:
- Vercel Edge Functions — via Vercel’s infrastructuur
- Cloudflare Workers — pionier, groot netwerk
- AWS Lambda@Edge — enterprise-variant
- Netlify Edge Functions — op Netlify
Wat maakt ze anders dan gewone server-code?
Drie eigenschappen:
1. Geografische nabijheid. Draaien op ~100+ locaties wereldwijd. Een bezoeker uit Amsterdam wordt afgehandeld door een server in Frankfurt — niet in Virginia.
2. Ultra-lage cold-starts. V8 isolates (Cloudflare Workers) of lightweight Node (Vercel) starten in milliseconden, niet seconden.
3. Beperkte runtime. Wegens de lichtheid kun je niet alles. Geen lange processen, geen zware CPU, gelimiteerde packages. Denk 50-100ms per functie, niet 5 seconden.
Use-cases voor personalisatie
Use-case 1: A/B-testing zonder flicker
Klassiek A/B-testen laat de pagina in versie A laden en dan client-side naar versie B swappen. Gevolg: flicker die bezoekers zien en die je CLS beïnvloedt.
Edge-function bepaalt bij eerste request welke variant, serveert meteen de juiste HTML. Geen flicker, geen CLS-penalty.
Use-case 2: Geografische personalisatie
Bezoeker uit Duitsland → automatisch de Duitstalige variant. Bezoeker uit Nederland → Nederlandse variant. Beslissing in edge-function op basis van IP geo-lookup.
Use-case 3: Content voor ingelogde vs niet-ingelogde
Edge-function checkt auth-cookie, serveert verschillende hero-sectie. Geen round-trip naar main server nodig.
Use-case 4: Dynamische OpenGraph-images
Per page-share een gepersonaliseerde afbeelding genereren. Edge-function rendert on-demand.
Use-case 5: Feature-flags
Bepaalde feature uitrollen voor 10% van gebruikers → edge-function beslist bij request of de flag actief is.
Wat edge NIET goed kan
Zware computation. LLM-calls, grote transformaties, complexe database-queries — beter in main server.
Gigantische packages. Elke MB packaging verhoogt cold-start. Keep it lean.
Persistent connections. Websockets etc. horen niet thuis op edge.
Data met hoge schrijfvolumes. Edge is read-heavy optimized.
Praktisch: een voorbeeld (Vercel Edge)
Een edge-function die bezoekers uit Duitsland automatisch naar Duitse homepage stuurt:
// middleware.ts in Next.js
import { NextResponse } from 'next/server'
export const config = { runtime: 'edge' }
export function middleware(request) {
const country = request.geo?.country ?? 'NL'
if (country === 'DE' && request.nextUrl.pathname === '/') {
return NextResponse.rewrite(new URL('/de', request.url))
}
}
Tien regels code. Uitgevoerd in <50ms. De bezoeker merkt niets behalve dat hij op de juiste pagina landt.
Kosten
Alle grote edge-aanbieders hebben gratis tiers die voor mkb-volumes volstaan:
- Vercel: gratis tier voldoende voor <1M requests/mnd
- Cloudflare Workers: 100K requests/dag gratis, daarna €5/mnd per miljoen
- Netlify: 125K requests/mnd gratis
Voor standaard personalisatie-use-cases kom je zelden boven de gratis tiers uit.
Wanneer inzetten?
Drie goede momenten:
- Bij nieuwe site-bouw — als je stack edge-first is (Vercel/Cloudflare), krijg je de features cadeau
- Bij meertalige sites — geo-routing is één edge-function
- Bij A/B-testing programmas — flicker-free testen vereist het
Niet inzetten als je geen concrete personalisatie-use-case hebt. Edge-functions zijn geen doel op zich.
De valkuilen
Valkuil A: over-complexiteit. Elke edge-function voegt een laag toe. Als je drie edge-functions stapelt voordat de main server antwoordt, heb je latency toegevoegd. Keep it minimal.
Valkuil B: cold-starts. Moderne edge-platforms hebben sub-50ms cold-starts, maar niet nul. Voor tijdskritieke flows blijft eerste request iets trager.
Valkuil C: vendor lock-in. Vercel-specifieke API verschillen van Cloudflare Workers. Bij migratie re-write nodig. Voor mkb meestal geen issue.
Meten of het werkt
Post-implementatie:
- Latency-metrics: blijven LCP en TTFB onder je target?
- Conversion impact: doet de gepersonaliseerde variant het beter?
- Error-rate: crashen edge-functions onder piek-load?
Vercel Analytics en Cloudflare Workers Analytics bieden dit allemaal standaard.
Voor mkb praktisch
Als je site draait op Next.js + Vercel (of Astro + Vercel), kun je edge-functies vandaag nog inzetten voor:
- Geo-based redirects
- Feature-flags voor gefaseerde rollouts
- Simple A/B-tests zonder externe tool
- Preview van content-variantes voor editors
Je hebt geen Cloudflare-contract of AWS-account nodig. Alles in je bestaande hosting.
Verder
Edge-personalisatie voor jouw site? Bel 06 81 38 36 01 of plan een gesprek.
Tags
Geschreven door
Jorian Wientjens
Developer en technisch specialist bij Agensea. Bouwt al jaren websites en maatwerk software, en kent het hele speelveld — van hosting en DNS tot performance en code-architectuur.