Bubblegum Balloons is a Farnborough-based balloon decor and event styling business. We built and look after their full e-commerce platform: the storefront customers buy from, the API behind it, and the integrations that keep their operations side running.
The customer-facing site is a Nuxt frontend talking to a Laravel API. Orders go through Braintree for payment, get tagged with delivery details, and flow into the back-office systems the team runs the business on. A few bits are worth flagging.
In-browser product customisation. Many orders aren’t off-the-shelf. Customers personalise the colour scheme, the lettering, the works. We built the customisation flow on Konva (an HTML5 canvas library) so customers see exactly what they’re ordering as they build it, in the browser, no upload-a-mockup round trip.
Distance-based shipping. Flat delivery zones didn’t fit a business serving customers across the south-east. We rebuilt the shipping engine to price by actual distance from the warehouse, with the frontend resolving postcodes to lat/long at checkout. Customers get a fair quote up front; the warehouse can route deliveries sensibly.
Custom integrations with the tools they already use. Most of the operational side runs through software Bubblegum didn’t want to give up, and that didn’t natively talk to each other. We built bespoke integrations to bridge them:
- Linnworks for order management and inventory. Orders land in Laravel, sync to Linnworks for picking and dispatch, with stock levels and fulfilment status flowing back the other way.
- GFS for shipping. We built a custom API wrapper so labels get generated and tracked from inside the Laravel admin, not through a separate portal.
- Xero for accounting, with a twist. Bubblegum quickly outgrew Xero’s 10,000-transactions-per-period recommendation, so a 1:1 sync was off the table. We built an aggregation layer that rolls up transactions by day before pushing them across. Accounting team gets the figures they need; Xero doesn’t fall over.
A separate warehouse scanner. In late 2024 we built a tiny Nuxt progressive web app for the dispatch team to scan barcodes at the packing bench. It pulls live order info out of Linnworks, shows fulfilment notes, copies order IDs straight to clipboard. A small tool that did away with a lot of context-switching for the team that ships everything.
The site is live, busy, and worked on most weeks. The platform now spans three connected codebases (the API, the storefront, and the scanner) plus the integration layer that keeps the rest of the operation in sync.