For many, the T-shirt is a perfect canvas for self-expression and identity. Some of us are so passionate about the designs, messages, and meaning conveyed by our tees that we become inspired to create our own. However, actually producing shirts from your own designs is no small task. And turning your vision into a viable business, with challenges such as managing inventory and risk, is even more daunting.
The founders of Teespring wanted to remove the barriers that prevent people from bringing their great ideas to market. In 2011, they developed a technology platform and manufacturing business that enables anyone to launch their own line of T-shirts with the same quality and economies of scale as a major retail brand. Since then, Teespring has helped thousands of people realize their dream and make a meaningful profit to support their hobbies, families, or communities.
All-in-one solution for sellers and buyers
Teespring aims to make business processes easy and low risk for their sellers. A seller’s entire supply chain, including inventory, production, shipping, and returns, is handled by Teespring. The buyer’s experience, including transactions and customer service, is also managed by the company. Product quality is tightly controlled at a company-owned factory, and Teespring has since expanded beyond T-shirts to include stickers, mugs, and tote bags, with more items to come in future.
Building a marketplace on Heroku
Teespring first built their platform as a monolithic PHP app running on AWS. At one point, they decided to re-build the app using Rails and migrated it to the Heroku platform. As the company focused more on evolving their features and user experience, the monolithic architecture became unwieldy and difficult to work with. The engineering team decided to take a service-oriented approach to help them scale.
Although they are moving towards a service-oriented architecture, the Teespring team currently runs multiple Heroku apps that are based on the same code base and tied to the same database. This includes apps to manage inventory, shipping, payments, and customer service. This interim step still allows the team to develop and scale each app independently. Any new features or functionality is built as a microservice, including their API.
Heroku makes it easy to spin up a new feature as a microservice, making our transition from a monolithic to service-oriented architecture smoother. Lee Edwards, VP of Engineering, Teespring
Some of their standalone services running on Heroku include a URL shortener, a stats dashboard, an artwork conversion service, an NPS surveyor app, a handful of Slackbots, and a Shopify app. Teespring also built an interview app written in Go on Heroku that assesses the technical skills of potential new hires.
Some parts of their system still run on AWS, including an image mockup generation service and their data infrastructure, which handles events using an RDS MySQL database. Their data warehouse is Redshift.
To move data from their production app databases into their data warehouse, Teespring uses Airflow, the open source data pipeline tool built by Airbnb. Airflow functions like an ETL tool with a GUI and is capable of moving data from any data source into any other data repository. Prior to Airflow, the team had been using custom Ruby scripts that lived on development machines, which was not optimal. A junior engineer was able to write the Airflow integration in two days using Python and tie in a Heroku Postgres database, as well as Heroku Redis and a custom buildpack.
It’s very straightforward to set up a new third-party service on Heroku using custom buildpacks. This helps us easily test out services before using them in production. Lee Edwards, VP of Engineering, Teespring
We’re a relatively small team, so running our apps on Heroku has allowed us to focus on more important things, such as developing features and improving our processes. Lee Edwards, VP of Engineering, Teespring
Teespring uses a number of Heroku Add-ons to extend their app, including Heroku Postgres, Heroku Redis, and openredis data stores, MemCachier for high-performance caching, Cloudinary for image optimization, Proximo to route traffic through a static IP address, SSL for encryption, and SendGrid for email delivery. To manage their app, Teespring uses Librato and New Relic APM for performance monitoring, and Papertrail for log management.
Engineering efficiency leads to global growth
Teespring has grown quickly in five years. In 2014, one in seventy-five people in the U.S. bought a Teespring product, and the company shipped more than 19 million products globally. The engineering team’s focus on efficiency has enabled them to better support the business by accelerating the evolution of their platform. Heroku has been a big part of this effort. By running their apps on Heroku, Teespring developers can move faster and focus more on innovating new ways to support their sellers and buyers.