# Top Wheels Auto: Operations platform for a wheel shop

A custom order-management system that runs a wheel refurbishment shop end to end, from intake and pricing to paint recipes, shop-floor tracking and customer handover.

*Claudia · Top Wheels Auto · Romania · 2024 - present · 2 months, then ongoing*

## The brief

Top Wheels Auto refurbishes alloy wheels: painting, sandblasting, straightening, diamond-cutting, tire service. The operation had outgrown its tools. There was no single source of truth for orders, pricing was calculated by hand, paint stock was tracked informally, and there was no clean way to keep customers updated.

They needed an internal platform covering the full order lifecycle for every role in the shop, managers, painters, sandblasters and tire techs alike, plus a migration of years of client and order history from their previous system without losing anything.

## What we built

- **Order lifecycle.** role-specific views, duplicate-proof creation
- **Pricing engine.** configurable matrix, editable without code
- **Paint recipes & inventory.** real stock draw-down with audit history
- **Client CRM.** years of history migrated, typo-tolerant search
- **Customer notifications.** SMS, WhatsApp, email with signed handover PDFs
- **Printing pipeline.** cloud PDFs and shop-floor label printers
- **Performance dashboards.** per-member shop-floor output
- **Role-based access.** 5 roles, field-level permissions on the server

## How it works

A Next.js app backed by Supabase, with business logic split between API routes and database functions and row-level security guarding every route. Orders are created through an idempotency layer so serverless retries can never duplicate them, customer links are encrypted and work without a login, and notifications and printing run through queues to the shop's real hardware.

## Stack

- **Frontend:** Next.js, TypeScript, React, Tailwind CSS, Radix UI/shadcn, TanStack Query, Recharts
- **Data:** Supabase, PostgreSQL, Row-level security
- **Comms:** Twilio SMS + WhatsApp, Resend, SendGrid
- **Ops:** PrintNode, Zebra Browser Print, AWS S3 + CloudFront, sharp, jsPDF, Netlify

## Numbers

- **2 yrs** up and running, and counting
- **60k+** datapoints processed monthly
- **5** staff roles with field-level permissions
- **31** API endpoints across the platform
- **3** customer notification channels
- **38k** lines of TypeScript shipped

## The hardest part

The zero-downtime data migration. It meant moving years of client and order history between two completely different data models while the shop kept operating, and we did it in phases, fully scripted, with a multi-tier matching strategy for reconciling client records and a rollback path at every step.

The other piece we are proud of is how bulletproof order creation is: on serverless infrastructure a slow request can time out and get retried while the original quietly completes, which would mean duplicate orders. We engineered that away with an idempotency layer, where each submission carries a unique key and a retry picks up the original in-flight request instead of creating a second order.

## What the client said

> "We used to work with paper records, and now everything is much simpler and better organized. Our stock and job records are always up to date, we can see each client's full history, generate reports in seconds and send newsletters straight from the app. It has helped us save time and run the business far more efficiently."
> Claudia, Romania, rated 5/5

More work: https://dock30.com/work

## Contact

- Email: crew@dock30.com
- Book a call: https://dock30.com/contact
