Turning Spotify Listens Into Physical Postcards for Noah Kahan

Greetings From Stick Season

Lee Martin
5 min readNov 27, 2023
Noah Kahan

Reposted from my dev blog: leemartin.com/greetings-from-stick-season

When Alexander Coslov first reached out to me last year about helping out with Noah Kahan, he made an extra effort to express just how special this singer-songwriter from Strafford, VT is. At the time, the song “Stick Season” was beginning to go viral on TikTok and it was becoming clear that Noah had a hit on his hands. His emotional love letter to New England struck a chord with everyone from that region but also anyone who has had bouts of grief, depression, and loneliness. Flash forward to this summer and Noah is releasing the deluxe version of Stick Season. That same raw emotion can be found in the deluxe but now it is paired with even more optimism for the small town and its people. Growing up in Chauvin, LA with a population of 2500, I know I personally have those feelings of “why am I here” paired with “why would I want to be anywhere else.” I’m “Homesick.”

So, what do you do to celebrate a beloved release in which every track feels bigger than life?

First, you hire Mikey Lavi and Dylan Fant to conceptualize and illustrate a series of incredible vintage postcards for each of the songs. Then, you develop a Spotify application that can determine which song off the deluxe closely matches a fan’s listening history. That postcard match is then pulled off a 3D modeled convenience store postcard rack and presented back to the fan. The only thing left to do is use Lob to put that postcard in the mail so it actually shows up at the fan’s doorstep.

Sadly, we’re all out of physical postcards now but you can still get a digital one on the experience. Read on to learn how this application came together.

Spotify Integration

Greetings from Stick Season!

In order to identify which song off Stick Season is most closely related to a user’s Spotify listening history, we use the Spotify Platform and in particular the audio features associated with each track on the service. By comparing all of the audio features of a user’s top recently streamed tracks with all of the audio features of the deluxe album, we can roughly determine which song is most similar to a user’s listening habits. It isn’t perfect but I don’t think it has to be and in the end we also offered fans the ability to change their selection if they liked another song or postcard design better. For more info on building a Spotify algorithm like this, check out the dev blog for this past project for Florence & The Machine where I use a similar mechanic.

Three.js Postcard Rack

As soon as I heard about this project concept, I envisioned a convenience store postcard rack sitting in the middle of a cold forest scene akin to the Stick Season aesthetic. And while I did not end up modeling a forest scene, I did indeed build a Three.js powered postcard rack to reveal a fan’s postcard (and allow them to choose another if they wished.) The wire rack each postcard sits in was modeled in Blender but everything else was composed with simple Three.js objects, such as planes, cylinders, and circles. Hammer.js was brought in to add cross-device interactivity, allowing fans to drag and spin the rack, and tap to select a postcard from it. All of the subtle animations and camera adjustments were powered by Greensock. Rather than go into great detail on it’s construction here, I recreated a version of the rack on CodePen so you can dig into the complete solution. It’s so fun to build these delightful components in Three.js.

Shipping Postcards with Lob

In order to ship our postcards dynamically, we required a service which would allow users of our app to submit their mailing addresses, along with their postcard choice, and then have their card printed on demand and shipped to them. There are a few services which can accomplish this task but Lob was suggested to me on Twitter due to it’s well-documented API and it is what we ended up going with.

I rolled together a heavily tested mailing address form using vee-validate and yup. Then, I wrote a Netlify function which would accept the address from this form and create it dynamically within Lob’s platform.

const address = await Lob.addresses.create({
name: 'Noah Kahan',
address_line1: '210 Stick Street',
address_line2: 'Apt 100',
address_city: 'Strafford',
address_state: 'VT',
address_zip: '05072',
address_country: 'US'
})

We could then create a new postcard by passing in the user’s address along with the Republic Records from address (passed in as an environment variable ID below.) In addition, we provided PDF links to both the dynamic card front design and standardized back design, both of which were designed around the Lob provided guidelines. And, that’s it. The card was now queued up in Lob’s system for printing and shipping.

const postcard = await Lob.postcards.create({
to: address.id,
from: process.env.LOB_ADDRESS,
front: 'front.pdf',
back: 'back.pdf'
})

Noah has some incredibly rabid fans so in order to try and prevent users from requesting multiple postcards (and give everyone a fair chance to receive one) I put together a simple DynamoDB which kept track of which Spotify users had created a postcard. Naturally, that didn’t stop users from creating multiple Spotify accounts 😅 but it helped.

Impact

This campaign completely crushed all of our expectations and is a testament to just how far Noah has come as an artist. From a viral TikTok walk-through of the activation to sending 50k postcards in less than 12 hours, we still cannot believe how this all turned out. Personally, I’ve just really enjoyed watching Twitter to see fans receive their postcards (printing errors and all.) Thanks to all of the fans who participated in this and apologies to any fans who weren’t able to receive a postcard. I’m hoping we print more in the future.

Acknowledgements

Thanks so much to Jacob Lawrence, Alexander Coslov, Tim Hrycyshyn and their respective teams at Republic Records and Mercury Records for another incredible opportunity to build something special for Noah and his fans. And, once again, congratulations to Noah Kahan for all of the well-earned love for this very special album. You’re gonna go far. Stick Season (We’ll All Be Here Forever) is out now.

--

--

Netmaker. Playing the Internet in your favorite band for two decades. Previously Silva Artist Management, SoundCloud, and Songkick.