A multi-application ecosystem automating orders, production, warehouse operations, and delivery for an Australian cold-pressed juice brand.
Five separate operations — customer ordering, production planning, warehouse picking, delivery routing, and Shopify sync — ran on disconnected spreadsheets and manual handoffs. I designed and built one connected platform: a customer app, an admin dashboard, a warehouse portal, and a driver app, all reading from the same live inventory and order data.
By replacing fragmented communication channels with a unified ledger system, we consolidated client communications and eliminated human error. Order status changes seamlessly trigger updates throughout the pipeline, enabling real-time operation at every scale.
Allows users to order juices, customize recipes, and manage subscription bundles easily on the go.
No visibility into delivery timing or recipe customization options.
Consolidated control center to manage orders, customer accounts, custom combos, and view sales reports.
Manually cross-checking Shopify order lists against physical stocks.
Dedicated interface for managing recipe batching, production planning, and picking workflows.
Printing separate Excel sheets for every production run, causing mixups.
Simplifies route assignment, customer address navigation, and real-time delivery status logging.
No live tracking; routing and dispatch happened over manual phone calls.
Built on a modern stack utilizing Next.js for high-speed portals, Node.js microservices for background jobs, and a centralized PostgreSQL ledger for atomic inventory synchronization. Shopify webhooks are processed asynchronously via a serverless queue system, ensuring real-time sync with zero concurrency conflicts.
A single profile for billing records, subscription settings, custom recipe requests, and delivery schedules.
Real-time two-way synchronization of order placements, inventory updates, and bundle refunds using webhooks.
Unified live ledger that tracks ingredients and bottled juices to prevent oversells across all frontends.
Recipe configuration tool detailing specific ingredient weights to automatically calculate raw requirements.
Aggregates upcoming orders into single production runs, estimating ingredient usage prior to raw procurement.
Automated checklist for pickers showing location codes, inventory levels, and batch stamps.
Smart driver routing layout with location mapping, distance optimization, and status tracking.
Builds combos where stock deduction occurs dynamically at individual item levels upon customer checkout.
Generates printing-friendly PDF and Excel sheets specifying clean recipes and delivery routing reports.
"Keeping four applications and a live Shopify store in sync without conflicting stock counts was the core engineering problem."
Because orders stream in dynamically from the public Shopify store, the warehouse picking sheets, driver routing tables, and ingredient lists could easily end up operating on outdated information.
To solve this, I designed a centralized inventory ledger system. Rather than having each app query database snapshots directly, every system writes transactional mutations atomically through a centralized service. This resolved concurrency issues entirely and guaranteed that pickers, customers, and admins are always aligned on exactly the same live figures.
By replacing legacy paperwork processes with an elegant, responsive React and Node.js infrastructure, The Juicist transformed their daily logistics from a source of friction into an automated growth engine.