Live freight pricing at checkout, for 30,000 lb car lifts
A car-lift store needed real delivered freight prices in the cart, a catalog launch that could not break checkout, and product pages that match the admin.
- Headline figure
- $355 vs $795 what a 30,000 lb lift would have quoted with placeholder weights, against the real price. Caught before a customer saw it.
- Built with
- Shopify CarrierService, TypeScript, Fastify, Railway
- Client
- Shopify equipment retailer, kept anonymous
When you sell car lifts, shipping is not a flat rate. A wrong freight number at checkout either loses the sale or eats the margin, and the customer is watching while it happens. Every catalog launch also carried a real risk of breaking the cart for everyone.
Measured on the project. Nothing rounded up, nothing projected.
What I built
A Shopify CarrierService that prices freight live at checkout. ArcBest LTL for the heavy items, UPS for parcels, quoted in the cart in real time. It runs as a long-lived TypeScript service on Railway rather than serverless, because its in-memory rate cache needs a process that stays up. It is health-checked every 60 seconds and critical failures go out as text alerts.
The rails around it. Before any customer saw it, I found 16 products carrying placeholder 99 lb weights. Left alone, a 30,000 lb lift would have quoted $355 instead of about $795. That is the kind of bug you only find if you go looking, and it never reached a customer.
An admin and warehouse console that is the source of record for every freight rate, built in Next.js on PocketBase.
A catalog launch that could not break checkout. 5,281 products across 77 collections went live. While staging it I found that publishing before shipping was configured would have blocked every mixed cart on the live store, a lift and a box of bolts together. The fix was the stage order, enforced in code so nobody can run it out of sequence.
A product page builder. The owner designs a page in the admin and it renders on the Shopify theme within 1 px of the admin at phone, tablet and desktop widths. It is live on the first lifts, with 1,196 automated tests passing in the admin codebase at sign-off.
Data cleanup with sign-off. Duplicate and placeholder spec fields cleared out and thousands of sheet values imported, all with the owner's sign-off.
A prototype AI product assistant that never invents a spec. The model does not state a number. It calls a function that knows the number.
Mockups with sample data. The way the system works is real.
- Sample data
01 / 02The rails caught a placeholder weight before a customer ever saw the quote.
- Sample data
02 / 02The catalog launch runs in a fixed stage order, enforced in code.
This is software where a wrong number costs real money while a customer is watching. That is the work I want: the parts of a business where being careful is the whole job.
Built with
- Shopify CarrierService
- TypeScript
- Fastify
- Railway
- Next.js
- PocketBase
- ArcBest LTL
- UPS
The client is kept anonymous. Every number on this page was measured on the project. Photos are stock and screens are mockups with sample data.