Skip to content
All projects

Shopify app · my product · 2026 — now

Service Ops

A repair-shop operating system inside Shopify. Configurable tickets from intake to delivery, deposits through Shopify checkout, customer status pages, and AI-assisted intake and drafting.

Visit Service Ops
Status
Live on the Shopify App Store
Pricing tiers
4 — free to enterprise
Runtime
Cloudflare edge stack

The problem

Shopify is excellent at selling products and has no concept of taking someone's belongings, working on them, and giving them back. Every repair shop, tailor, cobbler and jeweller running on Shopify therefore runs the actual business somewhere else — a notebook, a whiteboard, a spreadsheet, a group chat.

The cost of that gap isn't the tracking. It's the phone calls. A shop with fifty open tickets spends a real part of its day answering "is it ready yet?"

What I built

A ticket workflow with customisable status steps, so a bike shop and a dry cleaner can both describe their own process rather than adopting mine. Intake forms are custom per shop, staff notes carry an audit trail, and every status change is recorded.

Deposits and payments go through Shopify draft orders rather than a separate payment integration — the money stays in the merchant's existing Shopify reporting, which is what makes the app adoptable rather than another silo.

Each ticket gets a shareable public status page. That single feature is what removes the phone calls.

Shopify POS integration supports over-the-counter intake; storefront blocks let customers request service or check status without leaving the shop's own site; AI-assisted intake and drafting reduce repetitive staff work on higher tiers.

Architecture

Entirely edge-native: React Router on Cloudflare Workers, D1 for relational data through Drizzle, R2 for attachments, and Workers AI for drafting features. There is no origin server, which keeps the infrastructure small enough for a genuine free tier.

The app is multi-tenant from the first line — one Worker serves every installing shop, with per-shop isolation enforced at the query layer and Shopify identity carried through each request.

I also built the billing, plan limits, App Store review flow, deployment pipeline, support tooling, and the public customer-facing surfaces rather than treating them as separate handoffs.

Where it stands

Live on the Shopify App Store across four tiers, from a free plan at 20 tickets a month to an enterprise tier with white-labelling. I own architecture, UI, billing, App Store review, support and marketing.

Built with

TypeScriptReact RouterCloudflare WorkersD1DrizzleShopify Admin GraphQLShopify POSWorkers AIAI-assisted workflows

Want to talk about work like this?