Why Code abandoned Firestore, Google Cloud Functions, and Cloud Task queues and moved all Shopify app development to Gadget
The problem
For 15 years, the development team at Code has been building exceptional full-stack applications for their clients, and five years ago, they decided to begin working almost exclusively in the Shopify ecosystem.
Initially, they wanted to offer everything from themes to custom app development. But the team quickly learned that when it came to custom solutions, most of their clients were looking to move data between their ERP, PIM, or warehouse management systems. But building custom integration apps still required all of the same resources as a major app build.
Skill wasn’t the issue. The developers at Code were well-versed in both backend and frontend development, and they had been working with complex systems for years. The problem was custom backend development required a lot of time and money, for both Code and the merchants they worked with. The margins they were seeing on their custom app development simply weren’t sustainable.
At first, they explored integration tools like Celigo and Alumio, but it quickly became clear that for Shopify Plus merchants, the cost to move that much data wasn’t worth it for clients. “The thing is, the integrations you can build with these iPaaS solutions are fairly straightforward. But with little room for optimizations, they result in slow and bulky integrations while still costing €10k a year for a simple setup.” Wouter Monkhorst, CEO and Co-Founder at Code, said. “For this kind of performance, the costs were just too high, and clients didn’t want to pay that.”
The alternative to an iPaaS provider though, was Code building the integration themselves. Before they began using an iPaaS, the team would spend weeks, or sometimes even months, building projects from scratch on Google's Cloud Platform, using tooling such as App Engine, Cloud Firestore for the DB, Cloud Functions, and Task Queues. And all of these integrations would then require ongoing maintenance and attention. Clients didn’t understand why the cost was so high for what they considered to be a simple solution. To them, it was just a matter of sending data from one platform to another.
After dealing with friction on enough projects, Wouter came to the conclusion that unless they could find a better way to manage the time, cost, and maintenance of the integrations, it simply wasn’t worth it. They had enough to keep them busy with work on Shopify themes, so that became their core focus.
That was until Wouter came across Gadget. When he first saw a demo of the platform, it reminded him of when he had spent time building a tech stack using similar principles years before. “I thought to myself, if this works the way they say it does, then it’s going to be an incredibly powerful Swiss army knife for us in Shopify development.”
The solution
To make sure using Gadget would make sense for the agency, Wouter asked Patrick Watzeels, Senior Solutions Architect at Code, to try building something simple with the platform. It took just a few hours of exploring for Patrick to know that Gadget's full-stack app development platform would be a game-changer for the Code team.
As an initial project, the team decided to move one of their existing integrations to Gadget to put it to the test and see how it might actually affect running costs. Code offers a returns app to clients that handles returns and exchanges for the Shopify merchant. When they originally built the integration using the iPaaS, it had taken a few sprints of work. With Gadget, it took them just one sprint to migrate the app off of the iPaaS, and they immediately noticed a difference. Running on Gadget resulted in their clients paying just a fraction of the running costs. “After this success, we are continuously using Gadget to create apps that provide custom integrations and functionality for merchants and their Shopify stores.” Wouter said.
With Gadget, the first time a sync is run to connect to Shopify, the platform will automatically populate the database with all historical data for the desired scopes, and instantly set up the necessary models and tables. With the built-in connection between Gadget and Shopify, Code had all the data they needed in just minutes, in a format they could easily customize and build with.
Gadget would even automatically manage the rate limit saturation and optimize syncs based on a store’s rate limit, to balance it across multiple resources. And because REST and GraphQL rate limits are independent of each other, Gadget would max out both (when appropriate) to accelerate a sync. Code didn’t have to worry about delays, and they could focus on building.
The iPaaS provider, on the other hand, could take up to 6 hours to sync large amounts of data, and they would still need to do a lot of work to make it usable. Wouter explained, “The iPaaS tended to be cumbersome. The biggest downside was we didn’t have memory with these connectors. We needed to do a lot of workarounds and jump through hoops to get it actually working.”
Wouter explained, “It felt like Gadget was the Ferrari of integration tools. The other iPaaS platforms were like the slower version, and Gadget was the speedy solution. When we saw the performance, we just said, let’s go for it.”
The results
With a reliable, sustainable way to build and ship projects for their Shopify clients, Code now does all of their custom development exclusively on Gadget.
Because Gadget gives the team all of the infrastructure they need in just a click, as well as a built-in Shopify connection, they’ve been able to replace both GCP and their iPaaS provider with a single full-stack solution. This also means they once again offer custom development to their clients, only now they don’t need to worry about spending all of their resources building and maintaining a handful of projects.
They’ve also seen a definite improvement in client relationships. When working with Shopify Plus merchants, many of them were dealing with hundreds of thousands of SKUs, and it was the sheer volume of data being synced — without the ability to optimize — that would cause the iPaaS solution to lower the value for the client. “It is frustrating for a merchant to pay close to €15,000 every month for a sync that takes over 6 hours to complete. With Gadget, we can create a more intelligent and faster sync at a much lower running cost.”
Wouter says that because they’ve slashed running costs, it’s been much easier to take on new projects, knowing they won’t have to have those uncomfortable conversations months or years down the road. With Gadget handling the scaling and most of the maintenance, Code doesn’t have to worry about using up their development hours.
“With Gadget, we easily save at least 50% of the time it took to build the same things with iPaaS and GCP,” Wouter says. “Costs are now much more predictable, whereas before there would be times when costs would spike because you would have to update all of the underlying infrastructure every few years. With Gadget, everything scales.”
For Code, when it comes to backend development Google Cloud Platform required too much setup and iPaaS products were too expensive, but with Gadget, they’ve found the right fit. The team can provide their clients with the custom app development they were missing. And last but certainly not least: their devs love working with Gadget!
About the agency
Code has been building custom development solutions for 15 years now, with 5 years of experience as experts in building and writing for Shopify. They were the first official Shopify Plus Partner in the EU, and they have been building cutting-edge online shopping experiences ever since.