Behind the App: Smile.io

Mikaela Rodriguez
BigCommerce Developer Blog
5 min readJan 18, 2019

Smile.io is an app that lets merchants create branded loyalty programs for their most valued customers. Rewards like a point system and VIP status help bring customers back and turn them into brand advocates. Over 25,000 merchants use Smile.io in their stores as part of their marketing toolkit.

We recently sat down with Alex Willemsma, Sr. Web Developer at Smile.io to get the story behind their development process and find out what’s under the hood of this popular app.

Tell me about Smile.io.

Smile.io helps online businesses build a community of engaged, loyal, repeat purchasers with a rewards program. Over 25,000 online businesses use Smile.io to power their own loyalty, VIP, and referral programs.

The Smile BigCommerce App launched on the BigCommerce Apps Marketplace in November 2014. Back then, Smile was used by less than 1,000 online businesses and we had less than twenty employees. Now, Smile has over 70 employees, over 25,000 businesses using our platform, over 450 reviews on the BigCommerce Apps Marketplace — and we’re a BigCommerce Elite Technology Partner. It’s been a fun few years!

What made you decide to build Smile.io for BigCommerce?

We analyzed several ecommerce platforms when we were deciding to expand our business. We evaluated each ecommerce platform based on how difficult it would be to integrate, the size of the market, the types of merchants using the platform, the go-to-market opportunities, and the opportunity to partner.

With BigCommerce, we saw a great community of merchants of all sizes that we could help. We saw a developer platform that was open and easy to understand. We loved that BigCommerce was a SaaS platform with functionality like webhooks and OAuth. This made our integration much easier to build and maintain when compared with deployed platforms. Being able to get in touch with BigCommerce for support and advice made us more confident in being able to build and support our integration. We also saw a huge opportunity to partner with BigCommerce on marketing and events.

Ultimately, we saw a great partner that was willing to support us while we build, launch, and grow our app with a great set of technical tools to build an integration.

Tell us about your journey building Smile.io.

Since we already had a few merchants using our platform, it was relatively straightforward for us to determine what functionality we should include. We didn’t need to start building an app from scratch. We needed to build a connector that would pull order and customer data into our platform to reward customers for orders, inject a small script into the BigCommerce theme (to display a point earning and spending interface on the front end to customers), and be able to create discount codes on-the-fly when customers spend their points on a discount.

Our engineers Vlad Vanca, CTO Bill Curtis, and I worked together to scope out the technical implementation in a document first. A lot of work was done before we decided on BigCommerce, so when we were ready to go we had an idea of how to approach things.

Talk us through the development process. How did you build it?

The Smile.io tech stack includes a Ruby API, PostgreSQL, and Kafka pub/sub. Our front end is Ember.js and React and we’re running on Heroku with Redis caching and queueing. Other tools include GitHub for version control, Heroku continuous integration for code testing, and Datadog for monitoring, alerts, and analytics.

We originally wanted a Ruby SDK for the BigCommerce API, but back then one wasn’t available, so we built our own. We built our Ruby API library to support specific API functionality that we needed — we didn’t cover the full functionality of the BigCommerce API. Since then, BigCommerce has released a more robust Ruby Gem that handles this.

We then wrote the code to handle incoming customer and order webhooks. We noticed BigCommerce has a really granular breakdown of an order, which we liked. Afterward, we tackled creating BigCommerce discount codes and store credit when a customer spends their points on a reward. We spent a bit of time here.

Once we were able to ingest customer and order data and create coupons, we focused on how to get our scripts embedded in a merchant’s theme. This was during the Blueprint days — before Stencil and the Scripts API — so merchants needed to manually copy and paste some code into their footer. Since BigCommerce has launched Stencil and the Scripts API, installing Smile.io now requires absolutely no copy and pasting of code at all, which is great!

What technical challenges did you encounter along the way?

Most of the issues we faced came from having to integrate our platform with the specifics of BigCommerce. Because BigCommerce order webhooks just contain the ID of the order, we had to add an extra step to our process to fetch the order details. This wasn’t difficult, but it was an extra step.

Sometimes we also had issues with errors not being returned in JSON (which broke parsing), so we wrote some code to deal with this better. Overall, there weren’t too many technical issues. For most of the challenges we had, we were able to get some insight from the team at BigCommerce to work through a solution.

What has success looked like since joining the BigCommerce App Marketplace?

We’ve grown a lot since our initial launch on the BigCommerce App Marketplace four years ago. We’ve tripled our team size, 25Xed the number of merchants using our platform, and expanded beyond just loyalty programs to include power referral and VIP programs. We’ve grown from being the new kid on the block to being the most used loyalty & gamification platform online! We’ve also launched our own Smile Apps platform, as well as an Agency Partner Program. Get in touch with us if you’re interested!

Without BigCommerce, a lot of this growth would not have been possible.

We’d like to thank Smile.io for giving us an inside look into their creative process and chatting with us about what went into building their app. You can learn more and download Smile.io here.

--

--

Mikaela Rodriguez
BigCommerce Developer Blog

Developer Documentation Specialist @Bigcommerce. A human being on planet Earth. https://twitter.com/jmikrdgz