E-commerce
Custom e-commerce and headless storefronts
We build e-commerce that doesn't look like everyone else's. Headless storefront in Next.js, payments via Stripe or Adyen, and product data wherever it makes sense for you.

How we think about e-commerce
What separates a converting webshop from one that just looks nice
- Storefront in Next.js — full design control
- Headless
- Globally cached product and category pages
- Edge
- Inventory and prices in sync with your backend
- ERP-sync
- Core Web Vitals in green from day one
- Green
How we build e-commerce
A webshop shaped to the business — not to a template.
Most webshops are built on a template that decides half of your business for you. That works fine if you sell 50 SKUs and look like everyone else in your market — but it breaks down when you have a brand that needs to stand out, a checkout flow that needs to fit your specific payment and shipping mix, or product data that lives outside a standard PIM. We build e-commerce shaped to your business, not to a platform's limits.
Our typical setup is a headless storefront in Next.js on top of a commerce engine you either already have or pick together with us — Shopify, Commerce Layer, Medusa, BigCommerce or your own order system. The frontend owns everything customers see; the commerce engine owns orders, inventory and payments. That gives you full design control, fast page loads and the freedom to swap the platform behind it later without throwing away the entire frontend.
We take care of the boring parts too: product structures that survive internationalisation, a checkout that scores green on Core Web Vitals, correct structured data so Google shows price and stock the right way, and analytics set up to respect ePrivacy. None of that is extra — it's what separates a webshop that converts from one that just looks nice.
What we deliver
Headless storefront with a commerce engine behind it.
Next.js, Stripe or Adyen, ERP sync and merchandising tooling — built to convert.
Headless storefront in Next.js
Frontend built in Next.js (App Router) with ISR for product pages, edge rendering for category and search pages, and static generation for content pages. One codebase — multiple markets, multiple languages, one design system.
Commerce engine to fit
Shopify (with Storefront API), Commerce Layer, Medusa, BigCommerce or your own order system. We choose based on your SKU volume, integration needs and where you're going — not based on what's hot on Twitter.
Checkout and payments
Stripe, Adyen, Reepay or MobilePay as payment providers. Apple Pay and Google Pay enabled, order confirmation emails via Resend or Postmark, and fraud checks where they make sense.
PIM, ERP and inventory integration
We pull product data, inventory and prices from your PIM (Akeneo, inRiver) and keep orders in sync with your ERP (Business Central, Economic, NetSuite). With a cache layer if the source is slow — so the shop never waits on a legacy system.
Search, categories and merchandising
Algolia, Typesense or Meilisearch for fast product search and faceted filtering. Merchandising tooling so marketing can boost products, build campaign banners and reorder collections without waiting on a developer.
Performance, SEO and analytics
Core Web Vitals in green, JSON-LD structured data for Product, Offer and Review, hreflang for multi-market, and analytics (Plausible, GA4 or Vercel Analytics) set up without dragging the site down.
Before you commit
What you should consider first.
Should the commerce engine be Shopify or something else?
Shopify is the fastest path to launch and covers 80% of cases well — especially if you sell physical goods in a standard B2C pattern. When you have complex B2B pricing, deep ERP integrations, subscriptions with custom rules, or need to sell in 10+ markets with different VAT rules, Shopify Plus gets steep — that's where we typically use Commerce Layer or build on top of your own order system.
Internationalisation is an architecture decision, not a feature
Will you sell to Sweden, Germany or all of EU eventually? It needs to be designed in from day one: per-market product data, currency handling, VAT rates, shipping zones, localised payment providers and hreflang in the SEO layer. We can always scale down later — it's hard to scale up if the architecture is built for one market.
Performance is conversion
Every extra 100ms of product-page load time costs conversion. We design the image pipeline, font strategy and third-party-script budget around that — not as an afterthought once the site is slow. That also means we say no to heavy marketing tags if they can't justify their cost in the performance budget.
Operations, security and PCI
We don't touch card data directly — it lives with the payment provider (Stripe, Adyen). That keeps PCI scope down to SAQ-A. We set up monitoring on the checkout flow, alerts on error rates, and runbooks for the common incidents. We can run operations on a monthly retainer, or your team can take over with a clean handover.
FAQ
What people usually ask.
How long does it take to build a headless webshop?
A focused B2C webshop with ~50–500 products, one checkout flow and one market is typically live in 8–14 weeks from the first conversation. A B2B shop or a multi-market solution with complex pricing, deep ERP integration and merchandising tooling is typically 4–6 months. We always go live in stages — the core shop first, then the advanced features.
Can we keep Shopify as the backend?
Yes. It's actually one of our most common setups: Shopify as the commerce engine to avoid building order, inventory and payment logic from scratch, and Next.js as the frontend to get full design control and speed. You keep Shopify Admin as the day-to-day tool — only the storefront moves.
What about subscriptions and B2B pricing?
Stripe Billing or Recharge cover subscriptions on the Shopify stack just fine. For B2B with customer-specific pricing, credit limits and order approvals, we typically build on Commerce Layer or integrate with your ERP — we've done it with Business Central and NetSuite on several shops.
How do you handle inventory across multiple channels?
Single source of truth lives in your ERP or PIM. We read via API or webhook every time inventory changes and update the cache in the frontend. For high-traffic shops where inventory accuracy is critical (limited drops, footwear, tickets) we build a locking mechanism in checkout that reserves inventory until payment completes.
Can our marketing team build landing pages and campaigns themselves?
Yes. We set up a headless CMS (Sanity or Storyblok usually) with blocks for hero, product grids, quotes and campaign banners. Marketing can combine blocks into new landing pages without waiting on a developer. For specially designed campaigns, we build a new component in days, not weeks.
Related services
- Marketing sitesFast, SEO-strong marketing sites built to convert — without a heavy CMS in the way.
- Customer portalsGated portals where customers can see orders, invoices, cases and documents — connected securely to your systems.
- Headless CMSSanity, Contentful or Payload — set up so content folks can work without waiting on a developer.
Ready to get started?
Let's have a no-pressure conversation.
We'll get back within one business day with concrete input — not a stock proposal.