Naar hoofdinhoud
TIEMAN.IT

Eigen Next.js webshop, niet weer een Shopify-template

Je verkoopt producten. Maar je betaalt iedere maand aan een platform dat jou niet kent, jouw klanten niet kent en jouw checkout dicteert. Ik bouw webshops vanaf scratch op Next.js: Stripe checkout, eigen admin, geen platform-fees per order.

Wanneer kies je voor een platform en wanneer voor maatwerk

Shopify werkt goed als je een standaard productcatalogus hebt, je snel wilt starten en de maandelijkse kosten accepteert. Dat is geen slecht startpunt. Maar naarmate je groeit, begint het platform te knellen. Transactiekosten per verkoop, een theming-systeem dat je op afstand houdt van de echte code, en een checkout die je maar beperkt kunt aanpassen.

WooCommerce geeft meer vrijheid op papier, maar die vrijheid kost je iets anders: een WordPress-omgeving die opblaast naarmate je meer plugins stapelt, trage performance bij piekverkeer en een beveiligingsoppervlak dat groeit met elke extensie die je installeert.

Een maatwerk Next.js shop is de betere keuze als je al enige omzet draait, je checkout-flow wilt controleren, specifieke integraties nodig hebt met je logistiek of boekhouding, of als je weet dat je binnen twee jaar op een ander niveau opereert. Je betaalt eenmalig voor de bouw en beheert daarna je eigen infrastructuur.

Wat ik bouw: Next.js, Stripe en een admin die je zelf kunt gebruiken

Een standaard oplevering bestaat uit de volgende onderdelen:

  • Next.js App Router frontend met server components voor maximale performance en statische pagina's voor productoverzichten
  • Stripe Checkout of Mollie Payment Element voor betalingen, inclusief iDEAL, creditcard en SEPA-incasso
  • Eigen admin-paneel voor productbeheer, orderstatus en voorraadindicatie, gebouwd op een lichtgewichte Next.js route of een headless CMS zoals een eigen CMS
  • Headless data-laag: producten en categorieën in een database naar keuze (PostgreSQL via Supabase of PlanetScale, of een flat-file aanpak met MDX voor kleine catalogi)
  • Webhooks voor Stripe-events: betalingsbevestiging, terugbetaling, abonnementsverlenging
  • Transactionele e-mails via Resend of Postmark voor orderbevestigingen en verzendmeldingen
  • Hetzner VPS of Vercel hosting afhankelijk van de schaalvereisten

Elke keuze in deze stack is omkeerbaar. Je bent eigenaar van de code en de data. Als je op enig moment een andere provider wilt, pas ik de integratie aan zonder dat je de hele shop opnieuw hoeft te bouwen.

Stack-keuzes: Stripe vs Mollie, CMS vs eigen admin, Hetzner vs Vercel

Voor betaalintegraties gebruik ik standaard Stripe. De documentatie is uitstekend, de dashboard-tools zijn volledig en de Stripe-bibliotheek voor Next.js werkt zonder omwegen. Als je specifiek iDEAL als enige betaalmethode wilt aanbieden en de voorkeur geeft aan een Nederlandse provider, is Mollie een goed alternatief. Beide integraties zijn vergelijkbaar in scope.

Voor contentbeheer kijk ik per project welke aanpak het beste past:

  • Kleine catalogus (tot 200 producten): MDX-bestanden in de repository, beheerd via een simpele admin-route of rechtstreeks in Git
  • Middelgrote catalogus (200 tot 2000 producten): een eigen CMS als headless CMS, lokaal gehost, geen maandelijkse SaaS-kosten
  • Grote of dynamische catalogus: PostgreSQL met een eigen admin-interface of een eigen CMS als CMS voor redactieteams
  • Hosting via Hetzner VPS bij hoge piekbelasting of specifieke GDPR-vereisten, via Vercel bij serverless-voorkeur en globale CDN-distributie

Wat geen onderdeel is van mijn standaard build

Om verwachtingen helder te houden, zijn dit de onderdelen die buiten de standaard scope vallen:

  • Multi-vendor marketplace: meerdere verkopers op dezelfde shop met aparte uitbetalingen. Dit vereist een significante uitbreiding van de data-laag en de Stripe Connect-integratie.
  • Complexe B2B-portalen met contractprijzen per klant, offertestromen of goedkeuringsworkflows. Dat is maatwerk bovenop maatwerk.
  • ERP-koppelingen met systemen als SAP, Exact of AFAS. Ik kan API-verbindingen bouwen, maar de scope hangt volledig af van de beschikbaarheid en documentatie van de ERP-API.
  • Dropshipping-integraties met groothandels die eigen feed-formaten gebruiken.
  • Volledig geautomatiseerde prijsoptimalisatie of repricing op basis van concurrent-monitoring.

Als jouw wensen buiten deze lijst vallen, bespreek ik de scope bij de intake. Sommige uitbreidingen zijn haalbaar als losse module bovenop de basisshop.

-- Klant-casus

T&H Car Care: van Shopify-template naar eigen Next.js shop zonder platform-fees

T&H Car Care verkoopt autodetailing-producten aan zowel particulieren als professionele detailers. Ze draaiden op Shopify met een standaard theme en betaalden een combinatie van maandelijkse abonnementskosten en transactiekosten per verkoop. Naarmate het assortiment groeide en ze specifiekere klantgroepen wilden onderscheiden in de checkout, liep Shopify's theme-systeem steeds vaker in de weg.

Ik bouwde een Next.js shop met App Router, Mollie Payment Element voor checkout en een eigen admin voor productbeheer en orderstatus. Producten leven in een PostgreSQL-database op Hetzner. De checkout onderscheidt particulier en zakelijk en past de BTW-verwerking automatisch aan op basis van het ingevoerde BTW-nummer.

98
Lighthouse Performance
0,9s
LCP
0
Platform-fees per maand

De shop draait op een Hetzner VPS voor 5,90 euro per maand. Er zijn geen platform-fees per transactie, alleen de Stripe-verwerkingskosten die bij elke provider gelden. Het codebase is volledig in eigendom van T&H Car Care.

Wat anders is dan een Shopify Plus build

Shopify Plus geeft je meer flexibiliteit dan het standaardplan: een aanpasbare checkout via Checkout Extensibility, toegang tot scripts en meer API-calls per seconde. Voor grote retailers met hoge volumes is dat een logische keuze. Maar je betaalt een vast maandbedrag van een paar honderd euro of meer, bovenop Stripe-verwerkingskosten, en je bent nog steeds gebonden aan de Shopify-infrastructuur.

Een maatwerk Next.js shop heeft geen maandelijks platform-abonnement. De hosting kost je een fractie van wat Shopify Plus rekent. Je beheert je eigen database, je eigen checkout-logica en je eigen release-cyclus. Als ik een nieuwe feature bouw, ga ik door een deployment op jouw server, niet door een App Store review.

Het nadeel is dat je geen Shopify App Store hebt. Als je morgen een specifieke app nodig hebt die voor Shopify al bestaat, moet ik die integratie bouwen of een alternatieve API-oplossing vinden. Dat kost tijd. Shopify Plus geeft je meer out-of-the-box mogelijkheden. Een maatwerk shop geeft je meer controle over wat er under the hood gebeurt.

Voor wie is dit de juiste keuze

Een maatwerk Next.js shop past het beste bij:

  • MKB dat wil starten met een eigen shop zonder maandelijkse platform-fees en zonder vendor lock-in
  • Bestaande Shopify- of WooCommerce-shops die tegen de grenzen van het platform lopen: trage checkout, beperkte customisatie, hoge kosten bij groeiend volume
  • Bedrijven met specifieke checkout-vereisten: B2B/B2C onderscheid, BTW-afhandeling op basis van klantsegment, multi-locale shop met locale valuta
  • Teams met een interne developer of een vaste technische partner die de codebase na oplevering zelf kan onderhouden
  • Scale-ups die van legacy Magento of WooCommerce willen migreren naar een headless Next.js architectuur

Als je net begint, een klein assortiment hebt en geen specifieke integraties nodig hebt, is Shopify of een eenvoudig Snipcart-op-statische-site-patroon waarschijnlijk sneller en goedkoper voor de eerste fase. Ik zeg dat liever eerlijk dan dat ik je overtuig van maatwerk terwijl een platform een betere fit is.

Investering en scope

De prijs van een maatwerk shop hangt af van het aantal productcategorieën, de gewenste integraties en de complexiteit van de checkout. Ik werk op basis van een vaste projectprijs na een intake-gesprek.

Basis shop
Op aanvraag
Next.js, Stripe, eigen admin, tot 500 producten, Hetzner hosting. Geschikt voor starters die platform-fees willen vermijden.
Geavanceerde shop
Op aanvraag
Bovenstaande plus: B2B/B2C onderscheid, multi-locale checkout, grotere catalogus, CMS-integratie (mijn eigen CMS in jouw site).
Migratie van Shopify/WooCommerce
Op aanvraag
Datamigratie, URL-structuur behoud, redirects, checkout-parity. Scope na audit van huidige shop.

Alle prijzen op aanvraag. Na de intake ontvang je een vaste offerte op basis van de besproken scope.

Lees verder

-- Veelgestelde vragen

Heb je een vraag?

Standaard gebruik ik Stripe. Stripe ondersteunt iDEAL, creditcard, SEPA-incasso, Apple Pay en Google Pay zonder extra configuratie. Als je een voorkeur hebt voor Mollie, is dat ook mogelijk. De keuze heeft geen invloed op de rest van de stack.
Ja. De checkout past de BTW-berekening aan op basis van het afleverland. Voor zakelijke klanten die een geldig BTW-nummer invoeren, verleg ik de BTW automatisch via de omgekeerde heffing. iDEAL is standaard beschikbaar via Stripe zonder extra kosten.
Bij een kleine catalogus beheer je de voorraad via de eigen admin-interface. Bij grotere catalogi of koppeling aan een WMS of ERP bouw ik een webhook-integratie die voorraadmutaties doorvoert op het moment van ordersluiting. De exacte aanpak bespreek ik tijdens de intake.
Ja. De checkout kan klanten laten kiezen tussen particulier en zakelijk, met aparte prijslogica, BTW-behandeling en factuurvelden voor B2B. Contractprijzen per klant of offerte-flows zijn mogelijk als uitbreiding.
Ja. Next.js heeft ingebouwde internationalisatie via next-intl of de App Router routing. Valuta-omrekening koppel ik aan een exchange rate API of stel ik in als vaste prijzen per locale. De URL-structuur volgt het /locale/pad-patroon.
Ja. De shop draait op jouw eigen server of een server die ik voor jou beheer op Hetzner of Vercel. Je bent eigenaar van het domein, de codebase en de database. Er is geen maandelijkse licentie aan mij of aan een platform verschuldigd.

Klaar om van platform-fees af te stappen?

Stuur me een beschrijving van je assortiment en je huidige situatie. Ik geef je eerlijk advies over wat een maatwerk shop oplevert voor jouw specifieke geval.