10 WordPress-pluginvervangers: native code die hetzelfde doet zonder kosten

Vorige maand auditeerde ik de WordPress-site van een klant. Drieëntwintig actieve plugins. Jaarlijkse pluginkosten: $1.847. De site laadde in 6,2 seconden en was twee keer in 2024 gehackt. We bouwden het opnieuw in Next.js met nul plugins en minder dan 150 regels vervangingscode. De site laadt nu in 0,8 seconden, kost $0/jaar aan plugin-fees, en heeft geen enkel beveiligingsincident gehad.

Dit is niet theoretisch. Ik zal je door de tien meest voorkomende betaalde WordPress-plugins lopen, de exacte code tonen die elk vervangt in een modern stack, en optellen wat je bespaart. Elk codevoorbeeld hier is productie-getest -- afkomstig van echte projecten die we bij Social Animal hebben opgeleverd.

Inhoudsopgave

10 WordPress-pluginvervangers: Native code die hetzelfde doet zonder kosten

Waarom WordPress-plugins meer kosten dan geld

De financiële kosten zijn voor de hand liggend. Yoast SEO Premium kost $99/jaar. WP Rocket kost $59/jaar. Gravity Forms kost $59/jaar. Stapel tien plugins en je kijkt tegen $752 tot $2.388 per jaar aan, afhankelijk van de pakketten.

Maar de verborgen kosten zijn erger:

  • Performance-belasting: Elke plugin voegt PHP-uitvoeringstijd, databasequery's en frontend JavaScript toe. Een 2025 HTTP Archive-studie vond dat de mediaansite van WordPress met 20+ plugins 2,3 seconden langzamer laadt dan dezelfde inhoud statisch bediend.
  • Beveiligingsoppervlak: 97% van WordPress-kwetsbaarheden komen uit plugins en thema's, volgens Patchstack's 2024-rapport. Elke plugin is een aanvalsvector.
  • Update-hamsterwiel: Plugins breken na WordPress core-updates. Ze conflicteren met elkaar. Je besteedt uren aan debuggen in plaats van bouwen.
  • Leveranciersvergrendeling: Je inhoud, je formulieren, je SEO-configuratie -- allemaal opgesloten in propriëtaire databasetabellen.

Het alternatief? Schrijf de werkelijke code. Het is minder code dan je denkt.

De vervangingskaart: 10 plugins versus native code

Hier is het overzicht voordat we in de details gaan:

# WordPress-plugin Jaarlijkse kosten Vervanging Coderegels Jaarlijkse besparing
1 Yoast SEO Premium $99 Next.js Metadata API 15 $99
2 WP Rocket $59 Next.js ISR 1 $59
3 Gravity Forms $59 Server Actions + Supabase 25 $59
4 Wordfence Premium $119 Niets (geen PHP = geen PHP-exploits) 10 $119
5 Elementor Pro $99 React + Tailwind CSS 20 $99
6 WPML $49 next-intl 15 $49
7 UpdraftPlus Premium $70 Git + Supabase auto backups 0 $70
8 WP Mail SMTP Pro $49 Brevo API route 12 $49
9 MonsterInsights Pro $99 Vercel Analytics / GA4-script 3 $99
10 WooCommerce + extensies $200-1.000+ Stripe Checkout + Supabase 20 $200-1.000+
TOTAAL $902-2.702 ~121 regels $752-2.388

Laten we elk ervan afzonderlijk bespreken.

1. Yoast SEO → Next.js Metadata API

De plugin: Yoast SEO Premium ($99/jaar) voegt metatitels, beschrijvingen, Open Graph-tags, XML-sitemaps en canonieke URL's toe. Het voegt ook een opgezwollen admin-panel toe met leesbaarheidsscores, trefwoorddichtheidmeters en upsells. De gratis versie zeur je constant om te upgraden.

Bekende problemen: Yoast voegt ~200KB admin JavaScript toe. Het voert meerdere databasequery's uit bij elke paginalaadbeurt. De "SEO-analyse" functies geven mensen een vals gevoel van optimalisatie -- ik heb sites met perfecte Yoast-scores gezien die slecht rankten omdat de inhoud dun was.

De vervanging: De Metadata API van Next.js 14/15 built-in handelt alles af wat Yoast doet voor SEO-output. Dit is de code:

// app/blog/[slug]/page.tsx
import { Metadata } from 'next'
import { getPost } from '@/lib/posts'

export async function generateMetadata(
  { params }: { params: { slug: string } }
): Promise<Metadata> {
  const post = await getPost(params.slug)
  return {
    title: post.title,
    description: post.excerpt,
    openGraph: {
      title: post.title,
      description: post.excerpt,
      images: [{ url: post.featuredImage }],
    },
    alternates: { canonical: `https://yoursite.com/blog/${params.slug}` },
  }
}

Coderegels: 15. Jaarlijkse besparing: $99.

Voor XML-sitemaps heeft Next.js een ingebouwde sitemap.ts conventie. Geen plugin nodig. Je krijgt programmatische controle over elke URL, prioriteit en veranderingsfrequentie.

Dit is precies het soort dingen dat we aanpakken in onze Next.js-ontwikkelingspunten -- SEO ingebakken in de architectuur, niet erop geplakt.

10 WordPress-pluginvervangers: Native code die hetzelfde doet zonder kosten - architectuur

2. WP Rocket → Next.js ISR

De plugin: WP Rocket ($59/jaar) voegt paginacaching, browsercaching, GZIP-compressie, lazy loading, CSS/JS-minificatie en CDN-integratie toe. De instellingenpagina heeft meer dan 40 configuratie-opties.

Bekende problemen: WP Rocket vecht met andere cachinglagen (hosting-level caches, CloudFlare). Slecht geconfigureerde cacheregels breken dynamische inhoud. Je besteedt uiteindelijk uren aan het aanpassen van instellingen die überhaupt niet zouden moeten bestaan.

De vervanging: Één regel code.

// app/blog/[slug]/page.tsx
export const revalidate = 3600 // Revalideer elk uur

Dat is Incremental Static Regeneration. Je pagina is pre-gerenderd bij build-tijd, bediend vanuit de edge CDN, en automatisch vernieuwd op de achtergrond. Geen cache-plugin. Geen configuratiepagina. Geen conflicten.

Wil je on-demand revalidatie wanneer content verandert? Nog twee regels:

// app/api/revalidate/route.ts
import { revalidatePath } from 'next/cache'
export async function POST() {
  revalidatePath('/blog')
  return Response.json({ revalidated: true })
}

Deploy op Vercel en je krijgt edge-caching, automatische GZIP/Brotli-compressie, afbeeldingsoptimalisatie en CDN-distributie -- allemaal zonder configuratie. Coderegels: 1 (of 3 met on-demand revalidatie). Jaarlijkse besparing: $59.

3. Gravity Forms → Server Actions + Supabase

De plugin: Gravity Forms ($59/jaar voor Basic) laat je formulieren bouwen met een drag-and-drop interface. Het slaat inzendingen op in de WordPress-database en kan e-mailmeldingen sturen.

Bekende problemen: Gravity Forms laadt zijn eigen JavaScript en CSS op elke pagina, zelfs pagina's zonder formulieren. De admin UI is lomp. Formuliergegevens zijn opgesloten in WordPress-databasetabellen die pijnlijk zijn om rechtstreeks op te vragen.

De vervanging: Een React-formuliercomponent met een Next.js Server Action die rechtstreeks naar Supabase schrijft.

// app/contact/page.tsx
'use client'
import { submitContact } from './actions'

export default function ContactForm() {
  return (
    <form action={submitContact} className="space-y-4">
      <input name="name" required placeholder="Naam"
        className="w-full border rounded px-3 py-2" />
      <input name="email" type="email" required placeholder="E-mail"
        className="w-full border rounded px-3 py-2" />
      <textarea name="message" required placeholder="Bericht"
        className="w-full border rounded px-3 py-2" />
      <button type="submit"
        className="bg-blue-600 text-white px-6 py-2 rounded">
        Verzend
      </button>
    </form>
  )
}
// app/contact/actions.ts
'use server'
import { createClient } from '@supabase/supabase-js'

const supabase = createClient(
  process.env.SUPABASE_URL!,
  process.env.SUPABASE_SERVICE_KEY!
)

export async function submitContact(formData: FormData) {
  await supabase.from('contacts').insert({
    name: formData.get('name'),
    email: formData.get('email'),
    message: formData.get('message'),
  })
}

Coderegels: 25. Jaarlijkse besparing: $59. Je formuliergegevens bevinden zich in een echte Postgres-database die je eigendom is. Query het, exporteer het, bouw dashboards erop -- geen plugin-beperkingen.

4. Wordfence → Niets nodig

De plugin: Wordfence Premium ($119/jaar) biedt een firewall, malwarescanner, loginbeveiliging en brute force-bescherming voor WordPress-sites.

Bekende problemen: Wordfence bestaat omdat WordPress het nodig heeft. PHP-uitvoering, de wp-admin loginpagina, XML-RPC-eindpunten, kwetsbare plugins -- dit zijn allemaal WordPress-specifieke aanvalsvectoren. Wordfence scant op bedreigingen die alleen bestaan omdat je WordPress uitvoert.

De vervanging: Voer geen PHP uit. Serieus.

Een Next.js-site gedeployed op Vercel of Netlify heeft geen PHP runtime, geen admin loginpagina, geen database blootgesteld aan internet, en geen bestandsuploadmappen die code kunnen uitvoeren. Het gehele dreigingsmodel dat Wordfence beschermt tegen bestaat eenvoudigweg niet.

Voor authenticatie (als je het nodig hebt), geeft Supabase Auth je meer dan Wordfence ooit kon:

// lib/supabase.ts
import { createClient } from '@supabase/supabase-js'

export const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL!,
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)

// Row Level Security-beleidsregels behandelen autorisatie
// Geen PHP-exploits. Geen wp-admin brute force. Geen XML-RPC-aanvallen.
// MFA, OAuth, magische links -- allemaal ingebakken.

Coderegels: 10 (auth-configuratie). Jaarlijkse besparing: $119. De beste beveiligingsplugin is niet één nodig hebben.

5. Elementor Pro → React + Tailwind CSS

De plugin: Elementor Pro ($99/jaar) is een visuele pagina-editor. Het laat niet-ontwikkelaars lay-outs maken met drag-and-drop.

Bekende problemen: Elementor injecteert meer dan 500KB JavaScript en zijn eigen CSS-framework op elke pagina. Het maakt diep geneste, niet-semantische HTML. De snelheid van pagina's tankt. En als je Elementor ooit deactiveert, worden je pagina's een puinhoop van shortcodes.

De vervanging: React-componenten met Tailwind CSS. Nul runtime-overhead van een pagina-editor.

// components/FeatureCard.tsx
interface FeatureCardProps {
  icon: React.ReactNode
  title: string
  description: string
}

export function FeatureCard({ icon, title, description }: FeatureCardProps) {
  return (
    <div className="group rounded-2xl border border-gray-200 p-6
      hover:border-blue-500 hover:shadow-lg transition-all">
      <div className="mb-4 text-blue-600">{icon}</div>
      <h3 className="text-xl font-semibold mb-2">{title}</h3>
      <p className="text-gray-600 leading-relaxed">{description}</p>
    </div>
  )
}

// Gebruik op een pagina:
// <div className="grid md:grid-cols-3 gap-6">
//   <FeatureCard icon={<SparklesIcon />} title="Snel" description="..." />
// </div>

Tailwind CSS verwijdert ongebruikte stijlen bij build-tijd. Het resultaat? Je hele designsysteem compileert naar een CSS-bestand dat meestal 10-15KB gzipped is. Elementor zou meer dan 500KB JavaScript alleen al toevoegen.

Coderegels: 20. Jaarlijkse besparing: $99. Plus je Lighthouse-prestatiescores zullen je dankbaar zijn.

6. WPML → next-intl

De plugin: WPML ($49/jaar voor Multilingual Blog) voegt ondersteuning voor meerdere talen toe aan WordPress. Het dupliceert posts voor elke taal en voegt een taalswitcher toe.

Bekende problemen: WPML staat bekend om sites te vertragen. Het voegt meerdere databasequery's per pagina toe. Beheersing van vertalingen is lomp. Conflicten met andere plugins zijn gewoon -- zo gewoon dat WPML een compatibiliteitslijst onderhoudt.

De vervanging: next-intl is een gratis, open-source i18n-bibliotheek voor Next.js. Dit is de setup:

// middleware.ts
import createMiddleware from 'next-intl/middleware'

export default createMiddleware({
  locales: ['en', 'es', 'fr', 'de'],
  defaultLocale: 'en'
})

export const config = {
  matcher: ['/((?!api|_next|.*\\..*).*)'] 
}
// i18n/request.ts
import { getRequestConfig } from 'next-intl/server'

export default getRequestConfig(async ({ locale }) => ({
  messages: (await import(`../messages/${locale}.json`)).default
}))

Vertalingen bevinden zich in eenvoudige JSON-bestanden. Geen databaseoverhead. Geen plugin-conflicten. URL-structuur is automatisch: /en/about, /es/about, /fr/about.

Coderegels: 15. Jaarlijkse besparing: $49.

7. UpdraftPlus → Git + Supabase automatische backups

De plugin: UpdraftPlus Premium ($70/jaar) maakt back-ups van je WordPress-bestanden en -database naar cloudopslag. Je plant back-ups in en bidt dat het herstel werkt wanneer je het nodig hebt.

Bekende problemen: Backup-plugins kunnen time-out hebben op grote sites. Herstel mislukt soms. Je maakt back-up van een monolithisch systeem waarbij code, inhoud en configuratie allemaal in elkaar vervlochten zijn.

De vervanging: Je code leeft al in Git. Elke commit is een back-up. Elke branch is een snapshot. Je kunt instant naar elk punt in de geschiedenis teruggaan.

Je gegevens bevinden zich in Supabase, dat automatische dagelijkse back-ups op het Pro-plan ($25/maand, maar je betaalt dat voor je gehele databaselaag, niet alleen back-ups) bevat. Point-in-time recovery is ingebakken.

# Je "back-up" workflow:
git add .
git commit -m "Update homepage hero section"
git push origin main
# Dat is het. Vercel implementeert automatisch. Git slaat geschiedenis voor altijd op.

Coderegels: 0 extra. Jaarlijkse besparing: $70. Je back-upstrategie is nu je implementatiestrategie. Ze zijn hetzelfde.

8. WP Mail SMTP → Brevo API route

De plugin: WP Mail SMTP Pro ($49/jaar) herstelt Worpress's verbroken e-mailbezorging door door te leiden via een juiste SMTP-provider.

Bekende problemen: WordPress gebruikt de wp_mail() functie van PHP, die afhankelijk is van de e-mailconfiguratie van de server. De meeste gedeelde hosts hebben slechte e-mailbezorgbaarheid. Dus je betaalt voor een plugin om iets te repareren dat niet kapot zou moeten zijn.

De vervanging: Een rechtstreekse API-aanroep naar Brevo (voorheen Sendinblue). Gratis tier: 300 e-mails/dag.

// app/api/send-email/route.ts
export async function POST(request: Request) {
  const { to, subject, html } = await request.json()

  const res = await fetch('https://api.brevo.com/v3/smtp/email', {
    method: 'POST',
    headers: {
      'api-key': process.env.BREVO_API_KEY!,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      sender: { name: 'Your Site', email: 'hello@yoursite.com' },
      to: [{ email: to }],
      subject,
      htmlContent: html,
    }),
  })

  return Response.json({ success: res.ok })
}

Coderegels: 12. Jaarlijkse besparing: $49. Je kunt Brevo in minuten omwisselen voor Resend, Postmark of elke tranactionele e-mailprovider -- ze werken allemaal op dezelfde manier.

9. MonsterInsights → Vercel Analytics

De plugin: MonsterInsights Pro ($99/jaar) voegt Google Analytics toe aan WordPress met een dashboard in wp-admin.

Bekende problemen: MonsterInsights voegt trackingscripts toe die paginagewicht vergroten. Het wp-admin dashboard is een vereenvoudigde versie van wat Google Analytics al toont. Je betaalt $99/jaar voor een tussenpersoon.

De vervanging: Vercel Analytics (gratis op Hobby, $10/maand op Pro voor meer gegevens) geeft je Core Web Vitals en paginaweergavegegevens zonder scripts van derden. Of voeg GA4 rechtstreeks toe:

// app/layout.tsx
import { GoogleAnalytics } from '@next/third-parties/google'

export default function RootLayout({ children }) {
  return (
    <html>
      <body>{children}</body>
      <GoogleAnalytics gaId="G-XXXXXXXXXX" />
    </html>
  )
}

Drie regels. Je krijgt het volledige Google Analytics 4-dashboard -- niet een versimpelde WordPress-pluginversie ervan.

Coderegels: 3. Jaarlijkse besparing: $99.

10. WooCommerce → Stripe Checkout + Supabase

De plugin: WooCommerce is gratis, maar de werkelijke kosten zitten in extensies. Betalingsgateways, verzendcalculators, belastingplugins, abonnementtoevoegingen -- je geeft gemakkelijk $200-1.000+/jaar uit. Plus WooCommerce verandert je WordPress-site in een trage, complexe applicatie met meer dan 200 admin-instellingen.

Bekende problemen: WooCommerce-sites zijn langzaam. De admin is overweldigend. Elke extensie voegt databasetabellen en PHP-overhead toe. Schaling is pijnlijk en duur.

De vervanging: Stripe Checkout handelt de gehele betalingsstroom af -- gehosted, PCI-compliant, ondersteunt abonnementen, verwerkt belastingberekening (met Stripe Tax). Je productcatalogus bevindt zich in Supabase.

// app/api/checkout/route.ts
import Stripe from 'stripe'

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!)

export async function POST(request: Request) {
  const { priceId, quantity } = await request.json()

  const session = await stripe.checkout.sessions.create({
    mode: 'payment',
    line_items: [{ price: priceId, quantity }],
    success_url: `${process.env.NEXT_PUBLIC_URL}/success`,
    cancel_url: `${process.env.NEXT_PUBLIC_URL}/cart`,
    automatic_tax: { enabled: true },
  })

  return Response.json({ url: session.url })
}

Stripe's verwerkingskosten zijn 2,9% + 30¢ per transactie -- dezelfde kosten die WooCommerce Payments berekent. Maar je betaalt niet voor het dozijn WooCommerce-extensies erbovenop.

Coderegels: 20. Jaarlijkse besparing: $200-1.000+. Voor complexere e-commerce-behoeften is Shopify's Storefront API met een Next.js-frontend een ander uitstekend optie dat we voor klanten hebben gebouwd.

Totale bezuinigingen uitgesplitst

Laten we alles optellen:

Categorie Kosten WordPress-plugin Kosten Next.js-vervanging Coderegels
SEO $99/jr $0 15
Caching/prestatie $59/jr $0 1
Formulieren $59/jr $0 25
Beveiliging $119/jr $0 10
Pagina-editor $99/jr $0 20
Meertalig $49/jr $0 15
Back-ups $70/jr $0 0
E-mail $49/jr $0 12
Analytics $99/jr $0 3
E-commerce $200-1.000+/jr $0 (Stripe-vergoedingen zijn per transactie) 20
TOTAAL $902-2.702/jr $0 ~121 regels

Dit is geen drukfout. Minder dan 150 coderegels vervangen bijna $2.700/jaar aan plugins. En de code is sneller, veiliger en volledig onder je controle.

Het hostingverhaal is soortgelijk. Een WordPress-host die geschikt is voor het betrouwbaar uitvoeren van al deze plugins kost $30-100/maand. Een Next.js-site op Vercel's Pro-plan kost $20/maand. Supabase Pro kost $25/maand. Je bespaard ook op hosting.

Als je dit soort migratie overweegt, hebben we uitgebreid geschreven over de headless CMS-onwikkelingsbenadering en hoe het zich verhoudt tot traditionele WordPress-setups. Je kunt ook ons prijzenpagina checken om te zien wat een migratieproject werkelijk kost.

Wanneer deze aanpak niet zinvol is

Ik wil hier eerlijk over zijn. Deze aanpak is niet voor iedereen.

Als je een niet-technische contentcreator bent die je site wil bewerken zonder code aan te raken, heb je een visuele bewerkingslaag nodig. Dit kan een headless CMS zijn zoals Sanity, Contentful of Payload CMS gecombineerd met Next.js -- die we regelmatig bouwen als onderdeel van onze headless CMS-oplossingen. Maar je hebt die laag wel nodig.

Als je een complex WooCommerce-winkel runt met duizenden SKU's, complex voorraadbeheer en aangepaste verzendregels, ben je misschien beter af met Shopify met een headless Next.js-frontend. De Stripe Checkout-aanpak werkt prima voor eenvoudigere catalogi.

Als je hele team WordPress kent en niets anders, heeft de migratie een leerningscurve. Het is het op lange termijn waard, maar begroting voor trainingstijd of werk met een bureau dat de overgang afhandelt.

Voor iedereen anders? De wiskunde is behoorlijk duidelijk.

Veelgestelde vragen

Moet ik React kennen om WordPress-plugins met native code te vervangen? Ja, je hebt werkende kennis van React en Next.js nodig. De codevoorbeelden in dit artikel zijn eenvoudig, maar je moet componenten, server actions en basis TypeScript begrijpen. Als je een PHP-ontwikkelaar bent, is de leerningscurve reëel maar beheersbaar -- Reacts mentale model klikt voor de meeste ontwikkelaars binnen een paar weken dagelijks gebruik.

Hoe handel ik WordPress-inhoud af tijdens migratie? Exporteer je WordPress-inhoud met de REST API of WP-CLI, transformeer deze naar Markdown of gestructureerde JSON, en importeer deze in je gekozen headless CMS (Sanity, Contentful, Payload). We hebben migratiecripts geschreven die duizenden posts met afbeeldingen, categorieën en metagegevens afhandelen. De inhoud zelf migreert schoon -- het zijn de plugin-specifieke gegevens (Yoast meta, Gravity Forms-vermeldingen, WooCommerce-orders) die voorzichtig moeten worden geïntegreerd.

Is Next.js ISR werkelijk zo snel als WP Rocket-caching? Sneller. WP Rocket cached pagina's op je server en serveert ze via je host-infrastructuur. Next.js ISR op Vercel serveert pre-gerenderde pagina's van edge-nodes op meer dan 100 locaties wereldwijd. In onze benchmarks daalt mediane TTFB van 400-800ms (WordPress + WP Rocket) naar 50-100ms (Next.js op Vercel). Dit is geen marginale verbetering -- het is een fundamenteel ander architectuur.

Hoe zit het met WordPress SEO-functies buiten metatags, zoals gestructureerde gegevens? Next.js handelt gestructureerde gegevens native af door JSON-LD-ondersteuning. Je maakt een scripttag met type="application/ld+json" in je pagina-component. Geen plugin nodig. Voor sitemaps heeft Next.js ingebouwde sitemap.ts en robots.ts bestandsconventies. Je krijgt meer controle dan Yoast biedt, en het is allemaal type-safe.

Kan Supabase werkelijk de database van WordPress voor een productiesite vervangen? Absoluut. Supabase draait op PostgreSQL, dat op schaal veel verder gaat dan wat MySQL-gebaseerde WordPress aankan. Row Level Security-beleidsregels vervangen Wordpress's op rollen gebaseerde toegangscontrole. Real-time abonnementen, volledige tekstzoeken en edge-functies zijn ingebakken. Supabase's gratis tier handelt de meeste kleine tot middelgrote sites af. Het Pro-plan kost $25/maand en geeft je 8GB database, 250GB bandbreedte en dagelijkse back-ups -- meer dan genoeg voor de meeste bedrijven.

Wat gebeurt er als Vercel of Supabase hun prijzen verhoogt? Je code is draagbaar. Next.js draait op elke Node.js-host -- AWS, DigitalOcean, Fly.io, zelf-gehost. Supabase is open source, dus je kunt het zelf hosten. Het WordPress-plugin-ecosysteem sluit je op WordPress. De moderne stack geeft je opties. We hebben Next.js-projecten op Vercel, Netlify, AWS Amplify en Coolify (zelf-gehost) gedeployed -- dezelfde codebase, verschillende hosts.

Hoe lang duurt een WordPress-naar-Next.js migratie doorgaans? Voor een typische bedrijfssite met 10-50 pagina's, een blog en contactformulieren: 4-8 weken. Voor e-commerce met productcatalogi: 8-12 weken. Voor complexe meertalige sites: 8-16 weken. De tijdlijn hangt af van inhoudvolume, aangepaste functionaliteit en hoeveel plugin-specifieke gegevens moeten worden gemigreerd. Bekijk onze pagina capaciteiten voor specifieke informatie over wat erbij komt kijken.

Zijn er blijvende onderhoudskosten die ik niet meeneem? Vercel Pro kost $20/maand. Supabase Pro kost $25/maand (als je het nodig hebt -- gratis tier werkt voor veel sites). Een domeinnaam. Dat is ruwweg $540/jaar voor hosting en database -- vergeleken met $360-1.200/jaar voor WordPress-hosting alleen, voordat je de $902-2.702 aan plugin-kosten toevoegt. De totale eigendomskosten dalen aanzienlijk, en je besteedt nul uren aan het updaten van plugins, het repareren van conflicten of het herstellen van hacks.