How Branch Furniture Built a Dynamic Shipping Estimator App with Gadget in Just 4 Weeks
The problem
Branch is an ecommerce company disrupting the $46 billion office furniture industry by making it easy and affordable to create a dream workspace. As a rapidly growing startup, Branch needed to provide customers with accurate, up-to-date estimated delivery dates for their products - a crucial factor in purchase decisions.
"Everyone knows the Domino's Delivery Tracker or Amazon's famous next-day shipping. These features provide transparency and convenience, enhancing the customer experience," Anthony Gordon, frontend software developer at Branch Furniture explained. “With online furniture sales, lead times are often longer, and we needed a way to dynamically update the estimated delivery time displayed on our product pages.”
Branch's lead times can vary widely, with some items ready to ship the next day while others might not be available for three weeks. This variability meant that a static message wouldn't suffice - they needed a dynamic solution that could respond to changing variables in real-time.
Initially, Branch generated shipping estimates on the frontend using JavaScript functions that ran after the page loaded. However, this approach proved unreliable, difficult to troubleshoot, and slowed down page speed . Additionally, their operations and customer success teams had no visibility into when messages were updated or what previous values were, creating challenges when handling customer inquiries.
The Branch team decided a better solution would be to generate shipping estimates on the server side and attach them to variant-level metafields. They first attempted to build this using Shopify's resources for creating custom React apps, but found themselves running into hurdles again and again.
"We continually encountered challenges that made progress slow and difficult," Anthony recalled. "One major issue was getting the update logic on a regular schedule. Another was the enormous complexity of fetching, manipulating and updating such a large, constantly-changing data set."
So they set out to find a way to build their apps that would allow them to easily manage the backend complexities and balance their ability to handle mass amounts of data.
The solution
The team was convinced they couldn’t be the only ones facing this problem, so they consulted friends and colleagues for a solution. A former Shopify employee reminded them of an app development tool called Gadget. The recommendation came just as they were struggling to build new functionality for their shipping update messages.
The Branch team was reluctant to try a new tool, as they had struggled with balancing steep learning curves and short deadlines in the past, but they decided to give Gadget a try. They started by following some of Gadget's step-by-step guides and videos to create an app from scratch, and were pleasantly surprised at how easy it was. "It felt great because Gadget seemed targeted directly at developers like us, who work with Shopify and want to avoid the difficult parts of interacting with the API," Anthony shared.
After completing a few of the tutorials, the Branch team could clearly see how their challenges could be solved with the help of Gadget’s framework and infrastructure, and much of the code they had already written in React transferred over easily with minimal changes. Gadget provided Branch with a hosted, scalable backend and built-in database, eliminating the need to set up and maintain complex infrastructure. Plus, the built-in Shopify connection handled API authentication and data syncing automatically.
Using Gadget's backend framework and triggers, Branch was able to implement the core functionality they were looking for. They would run hourly checks of variables contributing to each product variant's shipping date message, with updates as needed, and provide a user interface for Branch's team to view detailed history of shipping estimate updates, with filtering and CSV export capabilities.
"The ability to set up Scheduled Triggers within Global Actions was extremely beneficial," Anthony noted. "This was a major challenge before we started using Gadget. But within Gadget, we didn't have to write any code to set it up — everything was done within the Gadget editor."
The results
From getting started to full deployment, it took Branch less than 4 weeks to build their dynamic shipping estimation app. The team says building with Gadget was at least 2x faster than it would have taken them otherwise, and they were able to avoid some setbacks that would have proven to be prohibitively costly.
"Some of the obstacles we don't even know how we would have figured out without Gadget, and a lot of the things that ended up shipping only happened because it was clear with Gadget how to make it happen," Anthony explained.
The app has had a significant impact since launch, with the customer success team reporting reduced tickets. It's been a major quality of life improvement for Branch's operations and customer success teams, delivering time savings and operational efficiencies.
Some of the obstacles we don't even know how we would have figured out without Gadget, and a lot of the things that ended up shipping only happened because it was clear with Gadget how to make it happen.
— Anthony Gordon, Branch Furniture
More importantly, the app ensures Branch can provide accurate, real-time shipping expectations to customers, an especially important feature in the furniture vertical.The team is even considering commercializing the app in the future to solve this common pain point for other ecommerce brands.
Beyond the immediate benefits of this project, using Gadget has opened Branch's eyes to new possibilities for optimizing their operations through custom app development.
"This is the first app we've built, and seeing how straightforward it was to tackle something so complex has opened our eyes to the potential for optimizing many other tasks by building in-house apps with Gadget," Anthony shared. "It allows us to focus on solving the problem at hand, rather than getting bogged down with the time-consuming steps of independently setting up an app from scratch."
By leveraging Gadget's platform, Branch was able to overcome technical hurdles, dramatically speed up development time, and create a robust solution that enhances both their customer experience and internal operations. As they continue to grow and innovate in the office furniture space, Gadget has become an invaluable tool in Branch's tech stack.