Low-code analytics with James Devonport of UserLoop
James Devonport chose to build UserLoop on a no-code platform so he could quickly respond to customer feedback. Read how he found and implemented Tinybird on his journey to building the number one eCommerce customer intelligence software.
Tinybird: Hey James, and welcome to Developer Q&As with Tinybird. Let’s start by hearing a little bit more about you.
James: Sure thing! My name is James Devonport, and I’m the founder of UserLoop, the complete platform for eCommerce customer feedback. I live in Brighton and I’m pretty active on Twitter (@jamesdevonport) and LinkedIn.
Before founding UserLoop I did stints in both eCommerce tech and AI, and now with UserLoop I’m sort of bringing those together.
Tinybird: Tell us more about UserLoop. When did you get started, and what’s the mission?
James: I started UserLoop by myself in 2021, and my goal is pretty simple: to help Shopify merchants better understand who their customers are and where they are coming from.
UserLoop helps Shopify merchants better understand who their customers are and where they are coming from.
UserLoop helps these merchants capture feedback at every stage of their journey through several touch points and engagement styles, ranging from AI-generated surveys to post-purchase video reviews.
Ultimately, UserLoop is about connecting merchants to zero-party data directly from their customers so they have a very high degree of confidence in the channels that are driving sales, and the aspects of their site and products that are helping drive higher conversion rates.
Tinybird: What problem were you trying to solve as you built UserLoop that ultimately led you to Tinybird?
James: UserLoop is built primarily on Bubble. It’s been an excellent no-code platform for me to take my ideas and iterate them quickly based on customer feedback.
Of course, it does have some limitations, and one of those is latency when querying large datasets. I have had some very large customers sign up for UserLoop (yay!) and in order to run analytics for their stores we were querying hundreds of thousands of rows of data. Bubble can struggle when handling data at that scale in a timely manner, and so the UserLoop UX was starting to deteriorate for those larger customers.
UserLoop is built primarily on Bubble, which helps me iterate quickly on customer feedback. But it struggled with handling analytics on large datasets.
Tinybird: What’s the current architecture? What tools do you use?
James: Well as I mentioned the core of the product is built on Bubble, and it’s likely to stay that way, as the ability to quickly iterate features based on customer feedback has been pivotal to my success so far.
That said, I’ve also incorporated things like HookDeck for webhooks, OpenAI for AI-powered survey generation, Mux for video processing, and most recently Tinybird to support our user-facing analytics.
Here’s a look at how everything is roughly structured:
Tinybird: How did you hear about Tinybird?
James: I started looking for better user-facing analytics solutions, and naturally I took to Twitter to ask the rest of the Bubble community about options.
I quickly got a reply from Ab Advany, a fellow Bubbler and Tinybird user.
That was in early March, and before the month was out I had moved all my analytics over to Tinybird.
Tinybird: Why did you end up choosing Tinybird?
James: First and foremost was the cost. We’ve hashed this out ad nauseam amongst the Bubble community, but Bubble recently changed their pricing to bill based on “workload units” or WUs. It’s essentially a compute-based model. And the problem was my analytics were becoming not only slow but prohibitively expensive.
I like to be able to keep as much of the workload for my app on Bubble, but in some cases, it makes sense to shift things to an external platform. Tinybird was one of those cases.
Tinybird allowed me to run complex analytics over millions of rows of data, then publish those as APIs that I could consume from within Bubble. I was able to effectively push that workload out to not only improve performance but also reduce my costs.
By moving my analytics off of Bubble and on to Tinybird, I not only improved the performance through much faster queries, but also reduced my Bubble WUs consumption (and resulting cost) by shifting the workload onto something much more efficient for that use case.
Beyond that, Tinybird was just incredibly easy to use and the support was great. It feels like a superpower when you have this powerful database at your fingertips and the only real skill you need to build something is SQL.
Even then, I’m no expert with SQL. But I was able to use ChatGPT to generate queries that I could plug into Tinybird, and the Tinybird team and Slack community provided excellent support along the way to help me implement and optimize everything.
I was able to use ChatGPT to generate rough SQL queries, and the Tinybird support team helped me optimize them.
In case you’re interested, I wrote about this in my newsletter a couple of months back, and it goes into a bit more detail on how I approached this problem and used Tinybird amongst some other third-party tools to improve our data infrastructure.
Tinybird: Had you tried anything else before Tinybird? Why didn’t it work?
James: I tried a few things including Supabase, Xano, and Amazon Timestream. None of them worked for me. They were either too hard to learn, too buggy, too expensive, or some combination of the three. After trying Tinybird, it blew all of these out of the water in terms of speed, scale, and cost.
Everything else I tried was either too hard to learn, too buggy, too expensive, or some combination of all three. In terms of speed, scale, and cost, Tinybird blew them out of the water.
Tinybird: How do you get data into Tinybird?
James: This is part of why I love Tinybird so much. We stream data directly from the app using Tinybird’s Events API. It’s just an HTTP endpoint and you send it some JSON data and it writes it to a Data Source. It’s so nice to have this powerful database that abstracts both ingest and query as REST APIs, and it makes it much easier to do that end-to-end integration.
I have this powerful database in Tinybird that abstracts both data ingestion and data querying as REST APIs, so the end-to-end integration is so much easier.
Tinybird: What’s next for UserLoop? Any new features? What’s the vision?
James: Our vision and goal is and always has been to be the market leader for Shopify customer intelligence software. We’re doing pretty well on that front, but we never stop improving.
We’re focused on building out a UserLoop SDK and API, adding more AI features, and improving our video survey capabilities. We stay in really close touch with Shopify merchants as we build, so the feedback cycle moves fast!
Tinybird: How does Tinybird factor into those plans?
James: Tinybird is our primary data store, so it’s central to the app. I feel very comfortable that Tinybird is going to allow us to scale the business without worrying about the database. I know it will scale and stay performant and cost-effective.
I feel comfortable that Tinybird will allow us to scale the business without worrying about the database.
Tinybird: Who do you think Tinybird is best for, and what advice would you give them?
James: Tinybird is for SaaS builders who need to ship quickly and scale. It totally abstracts the complexities of analytical databases into concepts that even a no-code developer like me can grasp. If you’re getting started, no matter your level of expertise, I can’t recommend the support team more highly. Alasdair from the DevRel team was a huge help, and the Slack community is really responsive.