What lies behind the cost of your new clothes? Most of us have no idea that a typical luxury t-shirt sells for $50, but actually costs $7.50 to produce. Where does the rest of our money go? Today’s fashion consumers are becoming smarter and more aware. We want to know where our clothes come from, how the markup is factored, and whom our money supports.
Everlane was founded on the concept of supply chain transparency. Their mission is to offer consumers well-designed, high-quality clothing and accessories at an approachable price point, while sharing the true cost of markup for every product. The company is dedicated to redefining the fashion supply chain by taking a hands-on approach—cutting out middleman vendors and working directly with factories around the world. Everlane’s price point for that $50 t-shirt: $15.
Choosing Heroku to build an e-commerce stack
Everlane has been running on Heroku since they first began development in 2010. The company made a strategic decision to build their entire digital business in-house, including e-commerce and back office systems, rather than use out-of-the box solutions. The Heroku platform’s flexibility and scalability has supported them every step of the way.
We’ve been on Heroku from day one. We expected to shift to a better tool at a later point, but there just hasn’t been anything better than Heroku. Heroku has grown along with us, which has been fantastic. Danny Greg, Director of Engineering, Everlane
Everlane is running 20+ apps on Heroku using a single-page application architecture, which enables a fast user experience. The apps are built in Rails, use React on the front-end. Previously, the team had used Chaplin, an HTML5 architecture based on Backbone.js, before transitioning to React. The engineering team also used Rust to build a tiny app that drains metrics data out of Heroku and sends it up to Datadog, their monitoring and metrics service. The app runs on a 1x dyno and uses a surprisingly small amount of memory.
When it comes to data, Everlane runs a MySQL database on Amazon RDS. The team built another app on Heroku that takes production data, strips our user information, and bootstraps their dev and staging databases, as well as their Review Apps. It allows them to pin particular data dumps to certain commits, so it can provide the right database state for developers working on a new branch.
For queuing, Everlane uses Heroku Add-ons Redis Cloud and Heroku Data for Redis along with Sidekiq to distribute jobs to worker dynos. For caching, they use another Heroku Add-on MemCachier, as well as run their own fleet of high-availability Memcached machines, which helps keep their median response time at 80ms. Nine different worker types can scale independently and move jobs out of the main request chain quickly.
The engineering team practices continuous delivery and use Heroku Pipelines and Review Apps to help streamline their process. In the past year, they’ve significantly accelerated their deployment rate.
Deploying to Heroku is fast and easy. Heroku enables our team to deploy 50-100 times per week to production, which for a team of 10 engineers is impressive. Danny Greg, Director of Engineering, Everlane
Everlane’s deployment process uses branch deploys that enable the team to evaluate performance in a production environment before it gets merged to master. They use a Ruby Gem called Scientist to run two versions of a particular Ruby method in parallel, a control and a test version, to help test branches using actual production traffic. Quite often the team will initially roll out branches to their admin app first, which only affects a small sub-set of users, before deploying to their main production environment.
Heroku is our ‘ops team.’ Compared to hiring DevOps and owning all the infrastructure responsibility, Heroku just makes it so much easier. Danny Greg, Director of Engineering, Everlane
Global expansion on Heroku
Over the past six years, Everlane has built and scaled a successful e-commerce business on Heroku. The platform’s support for rapid deployment and continuous delivery has enabled the engineering team to move as fast as possible. With Heroku, Everlane can easily respond to new business requirements and quickly address demand and partnerships in new markets.