Solutions · Ecommerce · Canarlo
Next.js 16, Supabase, TypeScript. For operators past the point where Shopify pays back — B2B pricing, vendor splits, custom checkout, real inventory rules. The margin Shopify charges per-app for, folded back into a codebase you own.
Who this is for
The theme cost £400. The third-party apps now cost £1,400 a month and still cannot model the bundle rule. We rebuild the checkout, fold the apps back in as code, hand the margin back.
Trade accounts on net-30, RRP for retail, contract pricing for the top ten customers. Shopify Plus charges enterprise to fake it. We build the pricing engine in Postgres and run it for life.
Two warehouses, three drop-ship vendors, one product page that has to tell the truth about availability. Stock holds, allocation rules, split shipments — built on signed webhooks, audited per attempt.
What we ship
Foundations
Customer accounts, staff accounts, trade accounts. Email, magic link, TOTP. Every login logged with IP and user agent. Roles enforced at the database.
Customer A cannot see customer B's orders, addresses, or saved cards. Enforced at the row in Postgres — never in the page that renders the list.
Real webhooks reconciled to orders. Failed-card retries, 3DS, refunds, disputes, multi-currency. The billing event is the source of truth, not a polling job.
Full-text plus trigram fuzzy matching in Postgres. Faceted filters on attributes, price, stock. Typos do not break results. No Algolia bill.
Every price change, stock adjustment, refund, address edit captured with actor, target, before and after. The trail your accountant and your auditor both ask for.
Structured JSON logs with PII redacted. Sentry wired before launch. Latency and conversion dashboards live day one — not retrofitted after Black Friday breaks.
Every pull request gets a live URL. Tests gate merges. Marketing previews the seasonal redesign before peak — without touching production.
Your Vercel team, your Supabase project, your domains, your keys. We deploy with your credentials and walk off at handover. No agency-held infrastructure.
Recent build
Case study
A specialist footwear retailer migrating off WordPress and a stack of plugins. Custom checkout, per-drop inventory rules, Klaviyo wired to real order events, B2B accounts for wholesale buyers. Page-load time cut by sixty percent. Conversion up nineteen percent. They run it without us.
Tech stack
Our process
Step 1
01
One scoping call, then a written brief. Catalogue rules, pricing tiers, fulfilment topology, checkout edge cases — on the page. Two weeks. No workshops.
Step 2
02
Schema, API surface, build plan. The product model, the pricing engine, the inventory rules named. Two weeks. You sign off before code is written.
Step 3
03
Eight to twelve weeks. Weekly demo on a real preview URL. Migration scripts run dry against your Shopify export. You can read the diff every Friday.
Step 4
04
Cut over with DNS and a rollback ready. Watch the first weekend of real traffic together. Handover doc names the failure mode and the on-call step.
Step 5
05
Optional retainer — security patches, dependency updates, peak-season readiness, continued feature work. From £500 a month. Same engineer. Cancel any time.
Parent service: Web Apps
Pricing
Fixed fee, scope written down before billing starts. £30k buys a single-storefront migration with the foundations and a custom checkout. £60k buys B2B accounts, per-customer pricing, and a vendor portal. £100k buys multi-storefront, multi-currency, real ops tooling for a team of five.
Full pricing rationale and cost breakdown: How much does AI engineering cost?
Frequently asked
Shopify is right until your pricing logic is. B2B tiered pricing, configure-price-quote, bundled SKUs, region-specific tax rules, custom checkout flow — Shopify charges per-feature for these or refuses outright. Custom builds the rules into the data model. You own the cart, the checkout, the customer record. App-store rent stops.
Yes. Products, variants, customers, order history, subscriptions, reviews — pulled via API or database export, mapped into the new schema, reconciled before cutover. SEO redirects from old URLs. Stripe customer IDs preserved so existing card-on-file keeps working. The migration runs in shadow until you're satisfied, then DNS flips.
Per-customer price lists, volume breaks, contract pricing, MOQ rules, region multipliers, promo codes stacked or exclusive. Encoded in the data model, not hard-coded in checkout. Sales reps can adjust on the customer record. Audit log on every price change. The accountant can reconcile. The auditor can verify.
Stripe Tax for automated VAT, sales tax, GST across jurisdictions. Multi-currency with daily rate refresh, customer-detected default, manual override. Reverse-charge VAT on B2B intra-EU. MoR providers like Paddle when you'd rather not be the tax filer. Picked on the call against your jurisdictions, not assumed.
You. Your repo, your Stripe, your Supabase, your domain. No Canarlo SaaS, no licence fees, no app-store rent. Plain TypeScript any competent engineer can read. The handover names every cron, every webhook, every environment variable. You can take it in-house tomorrow and the system keeps running.
Start here
Twenty-minute call to scope the migration. Proposal in your inbox inside forty-eight hours.