Behind the App: Rewind

Mikaela Rodriguez
Mar 15, 2019 · 7 min read

Rewind is an app that gives customers peace of mind by backing up their store data and allowing them to return to a specific point in time should they need to revert changes to their catalog, orders, themes and more.

We recently sat down with the Rewind team to talk about building a backup solution for BigCommerce and what’s next on their roadmap.

Tell me about Rewind.

Rewind is the leading backup solution for business-critical web apps — including BigCommerce. We exist to protect the data that drives a business.

The first iteration of Rewind was built specifically for e-commerce merchants. At its core, Rewind monitors an online store and captures any/all changes as they occur, allowing the store owner to revert almost any change back to the way it was at a specific point in time.

BigCommerce was the second service that we chose to back up. With a team of four people, we spent a little over three months working on the initial release of Rewind for BigCommerce and launched in May of 2017. Within the first two months, we accumulated over 200 installs and were confident that we had made a decision that was going to impact the direction of our team.

Fast forward to today, we have eclipsed the 200 install mark, protecting data for over 8,000 businesses, and we have grown from a team of four people to over 20. We believe in the value we bring and heavily subscribe to the mantra that customer service is an attitude and not a department. We care deeply when our customers experience a data disaster and are committed to helping them recover as best we can and as quickly as we can.

Why did you decide to build this app?

The brilliance of platforms like BigCommerce is that they build and support their large community through webinars, email outreach, public forums, and social media. We took full advantage of these resources. It didn’t take much digging to piece together common threads around data disasters and to validate that there was a need and a market for a backup solution.

Using the Community and social media, we reached out and talked to BigCommerce customers to understand their specific use cases and pain points. We also talked to people at BigCommerce. These conversations lead to our first prototype of Rewind for BigCommerce and further helped to validate the idea.

Tell us about the journey to build the app.

Rewind started off as a hobby project. Once we decided we were going to build a prototype, we devoted a lot of hours in the evenings and weekends to cobble together something that we could get out to customers.

We drew a lot of inspiration for Rewind from Time Machine, Apple’s solution for desktop backups. We believe that the appeal of Time Machine is its simplicity: Step 1 is to turn it on, Step 2 is… well, there is no Step 2! You know it’s there when you need it. The rest of the time you can forget about it and focus on your work.

Like Time Machine, Rewind offers very little in the way of configuration. We want customers to feel confident that all of their data is being backed up and that we can help bring it back when necessary. We don’t expect them to be backup experts or IT professionals — small business owners have enough on their plate as it is. This is reflected in all of our marketing.

In the beginning, we spent a lot of time figuring out how to store the backup data in a way that would make restoring it easy. This was important because we learned pretty quickly that people were willing to wait a while for their backups to be complete, but not to restore them. In a moment of panic, they expect their data to be restored almost instantly.

To this day, we scrutinize the system to improve the restore procedure and we continue to strive for simplicity with every new feature.

How did you build it?

There’s a lot of technology powering Rewind: it’s built with Ruby on Rails, React, and several Amazon Web Services. It’s hosted in multiple data centers throughout the world to help with scale and compliance with regional regulations like GDPR.

In the early days, we deployed Rewind on two AWS EC2 instances. Today, Rewind is deployed on over 50 AWS EC2 instances (across fourAWS regions), a handful of Docker containers running in AWS Fargate, and a handful of serverless components in AWS Lambda, all of which are managed using Terraform.

The core backup and restore engine in Rewind is built on top of the public APIs that are exposed by the platforms. As an example, we use every endpoint in the BigCommerce Catalog API to ensure that we have as much of our customers’ product catalog backed up as BigCommerce allows.

In addition to the public APIs, we rely on webhooks to tell us when items are created, updated, or deleted. This helps us keep track of each change and allows us to revert almost any change that has happened.

If you believe all the things you read on the Internet, you would think that both Ruby and Ruby on Rails are losing popularity in recent years. From our point of view, this isn’t the case at all. Both of these technologies have amazing and active communities; we’re pumped about the recent enhancements in Ruby 2.6 and the coming changes in Rails 6. Amazon certainly doesn’t look to be slowing down on their innovations either. The recent improvements in serverless mean great things for us and we are really intrigued by the services they are launching in the machine learning space.

What technical challenges did you encounter?

Building Rewind did not come without some challenges. The three biggest problems that we had to deal with were API rate limits, working with changing APIs, and managing unpredictable volumes of webhooks.

Part of our work to make fast and efficient backups and restores is finding ways to optimize our API calls within the limits imposed by the platform. In the case of BigCommerce, we had to deal with different rate limits per store. After struggling with this for a while, we reached out to the good people at BigCommerce who were very willing to listen to our comments and worked with us to develop the best way of interacting within the limits they imposed.

Another challenge that we faced was figuring out how to manage changes to APIs. As an example, BigCommerce is in the process of rolling out the third version of their RESTful API, but many of their stores still work with a data model that is built from their v2 API. We’ve had to bridge the gap from one version to the other, making our BigCommerce solution the most complex out of all we have done to date.

The last big challenge we faced was around finding a proper way to process the unpredictable volume of webhooks that we could receive, such as around Black Friday/Cyber Monday. We wrote about our solution to this problem on another platform to help other developers, and it has become our most popular engineering post.

In addition to these challenges, we’re in the process of making a big change to Rewind that will impact the vast majority of our customers: we’re consolidating the different customer-facing front ends of Rewind into a single user interface. From a technical point of view, this is a risky move as we are trying to design a single interface that will play nice with data coming from multiple platforms. From a business point of view, it’s huge because it marks the first step towards taking Rewind in a much bigger and bolder direction. We are taking the idea that Rewind is an app for BigCommerce and we’re turning it on its head to say that Rewind is a backup service that supports BigCommerce and other platforms. It’s a subtle change that opens up a world of opportunities for us.

Tell about success post-release.

The first installs came from organic traffic on the BigCommerce app store. Since credibility is everything in app stores, we put a lot of effort into providing exceptional customer service and then kindly asking customers to leave us a review. From there, we started bringing more people to our app store listing through inbound marketing. More recently, we invested in producing a high-quality customer testimonial video to up our credibility even more.

Since becoming a BigCommerce Elite Partner, we’ve been working very closely with Marissa Moretti, our amazing Partner Manager, and other great people at BigCommerce to raise awareness about Rewind internally and to reach more BigCommerce customers. The BigCommerce team has been incredibility supportive of us and they have a lot to offer to developers who want to build on their platform. We believe that this is something app developers should earn over time, after proving that their technology works, that they’re invested in the BigCommerce Community, and that they provide great customer service to merchants.

Finally, What’s Next for Rewind?

We are looking at ways to bring even more value to our customers from the data we have backed up. An example of this is a feature that we recently launched in beta: Rewind Alerts. With Rewind Alerts, customers can set up thresholds on their data that will tell Rewind to alert them when one of the thresholds is breached. Our e-commerce customers are the first to beta this feature and they are using it to be alerted when a large percentage of their product catalog has been deleted or if their product prices have changed dramatically.

On a bigger scale, we’re expanding to cover more services that BigCommerce customers use to run their business. Since launching Rewind for BigCommerce, we’ve released support for QuickBooks Online, and have recently released support for MailChimp. We have plans to triple the number of services that we backup over the next year.

We’d like to thank Rewind for sharing their story and giving us an inside look into their development process. You can learn more and find the Rewind App in the BigCommerce Marketplace here.

BigCommerce Developer Blog

News, tips, and stories for developing on BigCommerce