Services / App Development

Shopify apps & integrations.

Custom apps, public apps, checkout extensions, Shopify Functions, and ERP/3PL/CRM pipes — built where Shopify's defaults stop and your business logic begins. TypeScript-first, Polaris-compliant, and battle-tested at Plus scale.

Remix
App framework
Functions
Checkout / discount
GraphQL
Admin + Storefront
SOC-2
Ready infra
01 — What we build

Custom apps,
public apps, everything.

  1. Custom apps

    Internal tools, ops dashboards, merchandising utilities — scoped to one store, deployed on your infra or ours. Polaris UI, Remix backend, no shortcuts.

    RemixPolarisTypeScript
  2. Public Shopify App Store apps

    Launch-ready App Store submissions with billing (recurring + usage), partner listing, review flow, and support tooling. We've shipped apps that passed review on the first submit.

    Billing APIReview-readyListings
  3. Checkout extensions

    Upsells, custom fields, validation logic, delivery rules — built on Shopify's new Checkout Extensibility, not the deprecated Scripts.

    UI ExtensionsFunctionsPost-purchase
  4. Shopify Functions

    Custom discount logic, delivery customizations, payment customizations — compiled to WebAssembly, executed on Shopify's edge, zero middleware latency.

    Rust / ASWasmEdge
  5. ERP / OMS / 3PL integrations

    NetSuite, SAP, Shiphero, ShipStation, Odoo, Microsoft Dynamics — bi-directional sync with replay, retries, dead-letter queues, and full observability.

    Bi-directionalEvent-drivenObservable
  6. Webhooks & event infrastructure

    Idempotent consumers, retries with backoff, dead-letter queues, audit trails. The boring stuff that keeps Plus brands online during peak traffic.

    BullMQPostgresOpenTelemetry
02 — How the work runs

Specified first,
built in phases.

The process behind 20+ Discount Functions shipped in the last two years and 12 B2B builds on Shopify Plus in 18 months. Discovery ends with a written spec you sign off before any code is written.

  1. 01

    Discovery & spec

    We document what the app must do, every system it touches and the edge cases. On a B2B build this takes about two weeks.

  2. 02

    Build in phases

    Checkout extensions, Functions, admin screens and integrations, one phase at a time. Each Function ships with its own test suite.

  3. 03

    Pilot & go-live

    We wire it into your ERP or other systems, go live with a pilot group or in batches, and watch the first weeks of real orders for edge cases.

  4. 04

    Handoff

    Each Function ships with its test suite, so your team can maintain it after handoff. Or we keep developing the app on a monthly retainer.

03 — Questions we hear

What people
actually ask.

How long does a Shopify app take?
It depends on the scope. From our published work: porting one Function from JavaScript to Rust takes 2–4 weeks; replacing one to three simple Scripts with Functions, 2–3 weeks; a mid-sized B2B build on Shopify Plus, about 14 weeks. Your dates are in the written spec.
Custom app or public App Store app?
A custom app is built for one store: internal tools, ops dashboards, integrations. A public app is listed in the Shopify App Store, with billing, a listing and Shopify's review. We build both, and we've shipped apps that passed review on the first submit.
Our discounts were built on Shopify Scripts. What now?
Scripts no longer run; Shopify Functions replace them. We list what each Script did, rank them by the revenue that depends on them, then rebuild, test and deploy them as Functions in batches. One to three simple Scripts take 2–3 weeks; 15 or more encoding B2B pricing are a 4–6 month project.
Which ERPs and 3PLs do you connect?
NetSuite, SAP, Microsoft Dynamics, Odoo, ShipHero and ShipStation, among others. Every integration syncs both ways, with replay, retries and dead-letter queues, so a failed sync is retried or set aside for review instead of disappearing.
JavaScript or Rust for Shopify Functions?
JavaScript for most Functions. Rust when one nears Shopify's 256 kB Wasm size limit or needs the lowest latency: comparable logic compiles to 80–120 kB in Rust against about 180 kB in JavaScript. We've shipped six Rust Functions to production.
Who maintains the app after launch?
Either your team or us. Each Function ships with its test suite, so your team can maintain it after handoff; or we keep developing the app on a monthly retainer.
Further reading

Go deeper.

Let's build

Ready to get started?

Tell us what you need and we'll come back with a scoped plan within one business day.

Fields marked with are required

The send button unlocks after a quick automatic browser check.