As a nonprofit coding organization running physical events, a lot of what CodeDay does (in a normal year) requires sending things in the real-world. Broadly speaking, this includes event supplies to event teams, and swag/awards to community members and volunteers.
In our early days, I was shipping merch from my office, and every quarter I’d get together with a couple volunteers to assemble and ship out all the event supply boxes for the upcoming events. Eventually, this started to take up too much time.
This isn’t unique to organizations in STEM education, I had the same problem when I ran a startup. People love to represent the startups they use, so sending swag is a great way to market! I have fond memories from my last startup of walking around SoMa in the mornings, trying to find mail dropoffs that weren’t too full so I could stuff a some shirts in for our customers.
Today I’ll share our journey to a fully-automated swag distribution infrastructure. I believe this is something any startup could quickly replicate, so I hope this can save you time!
The first thing we tried was cutting out steps to get things out the door. There were two types of work I was doing: packaging, and labeling.
90% of people who need swag are getting a single SKU: a t-shirt, a set of stickers, a thank-you letter, etc. So I + some volunteers started by just folding all the shirts and then packaging everything into individual envelopes.
Most of the time was spent on folding the shirts. We’ve recently switched to a printer that will just do this for us, Gorilla Screen Printing in Seattle. Super nice folks, and they will happily deliver individually bagged shirts with size stickers on request.
We kept a database of the final shipping weights of each type of packaged product.
At this time, all our backend infrastructure was in PHP, so we started out by writing a PHP library to build shipping labels for UPS and USPS. Nowadays Easypost can do this for you, but as you’ll see soon, I don’t think this is the best route anymore.
The system worked like this: someone shared they were going to CodeDay on social media and then filled out a form with their address, the system generated a shipping label, and it was automatically printed with the Dymo LabelWriter API. Every morning I’d grab the printed labels, stick them on the corresponding items, and then take it to the mailbox.
(On the supplies side, our event management monolith, Clear, would automatically generate labels for event supplies once a quarter.)
A few months after we started using this library, I came across ShipStation, which provides an easy API for entering shipments, and can batch-print shipment labels from a web UI. It was technically less automated than before, but it was nice to have a way to verify what was being shipped and manually add shipments, so we switched everything over.
This worked fine for a year or so, but eventually the volume increased a lot, and they closed the post office next to our office, so we started looking for a better solution.
To fully automate things, we started looking at 3rd-party logistics providers. These are companies that operate warehouses and employ workers to receive your items, stock them on a shelf, and then pick and ship them when you call an API.
We did some research into a few, which I included at the end, but most providers were focused on e-commerce or larger volumes. We ended out selecting ShipBob because they had the most sensible pricing for this application.
Speaking of pricing, here’s how it works with ShipBob:
All in all, our storage cost was about 1.5-2x what we were paying for a storage locker in Seattle, which feels reasonable to me. We were shipping enough that we had negotiated rates with UPS, so the shipping costs didn’t really change, but for most people that may offset some of the increase in storage.
And obviously this is probably saving a lot of money if you value your time highly.
If you’re going to ship a lot of swag, the pricing won’t work out, and the quality is also not amazing. (Not ideal for something you’re counting on people to wear for marketing.)
We’ve been trying Scalable Press for some of our really one-off items like a “CodeDay professional gamer” beanie we give out for our community gaming tournaments. The interface is really bad, but it can work for these use-cases.
CodeDay’s shipping infrastructure is now fully automated! For example, when a volunteer needs a new staff t-shirt, or some stickers for promotion, they just fill out a form, and a week later, it arrives in the mail. If we need to add something manually, we put it in ShipStation and it gets synced to ShipBob.
Every year, we order a year’s worth of supplies from our vendors and ship them to the warehouse. (Gorilla Screen Printing for shirts and hoodies, Zebra Prints for awards, Consolidated Label for holographic award stickers, Sticker Giant for other stickers, and GS-JJ for pins.)
We can go back to thinking about education! Everything is now magic!