3
4 Comments

How we created an internal Spotify Wrapped analogue in less than 2 weeks and almost 0 code.

This is the story of how a team of 3 built an end-of-year summary for a product studio of 200+ people using CSVs and low-code tools. The result looked like this

Maybe it could even be productized, as end-of-year summaries have been quite popular last year.

I will write about:

  1. The concept & how we used Spotify's generative approach to build our campaign (and you can too!)
  2. Everything data — how, where, when
  3. The final result

Here we go!

The concept & generative approach:

Our concept was simple — we wanted to have 2 things:

  1. General data on everyone combined — through a landing page
  2. Personalized data for each person — sent through email and our Slack bot

For the landing page we’ve used Readymag, we just needed to display the data in a nice way.

For the personalized data, we went with Sendgrid for the emails, as we have already implemented that for one of our internal products, as well as Slack bot that we already had within that very product.

Now we’ve figured out the concept, now time to figure out how personalized data should look like.

Here comes Spotify’s generative approach:

Spotify generative approach to wrapped

Essentially, each card for the person is a random mix of:

  1. Geometric figures
  2. Background
  3. Colors for the two above-mentioned elements

You can simply mix and create a lot of unique cards. That’s neat, right?

Here’s the base we’ve come up for our summary:

base images for the wrapped

Now all that remained was to get the data for both the landing page and the personal cards!

Everything data — how, where, when

We’ve used 4 data sources:

  1. Slack
  2. Harvest - time tracking application
  3. Everbase - PTO/HR software
  4. ParaMerch - our internal eCommerce merch store

Luckily the data all was exportable, the only difficult thing is to glue everything together, considering Harvest data had 98k lines.

For that very task we’ve used Retool Workflows and it looked like this:

Retool Worfklows Image
Looks scary, but in reality, it’s pretty simple:

  1. We extract the data from exported Google Spreadsheets tables
  2. We filter the data to adhere to what data we actually want to get
  3. We aggregate the data for each table by project/person in our case
  4. We get all the data from each separate table
  5. We create a new spreadsheet for the new data
  6. We populate the new spreadsheet with the data collected

It worked wonders, considering the Harvest spreadsheet was around 98k lines of data!

What was left is to connect backgrounds, geometric figures, and colors from the previous paragraph with the data from this paragraph!

The end result

Here’s how the personalized card turned out:

personalized card image for wrapped

And that’s how we’ve built the end-of-year summary for our product studio!

posted to Icon for group Ideas and Validation
Ideas and Validation
on January 5, 2023
  1. 2

    Awesome job! It was indeed amazing to see personal stats. Some people are now have goals to compete next year in order to get to top-5 :)

    1. 1

      Right! Thanks for sharing.

  2. 2

    Wow, thanks for sharing, realy helpful!

Trending on Indie Hackers
Why Indie Founders Fail: The Uncomfortable Truths Beyond "Build in Public" User Avatar 139 comments Your AI Product Is Not A Real Business User Avatar 87 comments The Clarity Trap: Why “Pretty” Pages Kill Profits (And What To Do Instead) User Avatar 34 comments Stop Building Features: Why 80% of Your Roadmap is a Waste of Time User Avatar 29 comments I built an enterprise AI chatbot platform solo — 6 microservices, 7 channels, and Claude Code as my co-developer User Avatar 29 comments I got let go, spent 18 months building a productivity app, and now I'm taking it to Kickstarter User Avatar 18 comments