Lyricdle: How Ignoring the Terms & Conditions Killed My Viral Game

Karim Kaylani
8 min readJul 30, 2022

Let’s set the scene: It’s the beginning of summer after my second year studying computer science at UC Berkeley. I was experiencing whiplash from the sharp transition from late nights studying and grinding practice exams to… quite a bit of free time. And it’s during this time that my budding love for wordle-type games becomes an obsession.

Worlde-type games?

You may have heard of Wordle — the daily word puzzle game that changes answers every day, keeping you coming back for more. This same format has become a bit of a trend and it’s been applied to everything from countries to math equations. I had my list of favorites, mostly found from “Wordle TikTok” creators, and started my days going through each of them one by one. There was one game that really stuck out to me called Heardle, in which you guess a song based on hearing 1-5 second snippets from the beginning of the track. The idea of combining something music-related with the Wordle format greatly intrigued me.

At the same time, I also thought it’d be fun to learn how I could make one of these websites myself from scratch. So, I challenged myself to build Skordle — a Wordle clone for my girlfriend (a fellow wordle nerd) with the twist being a custom word bank featuring words that were relevant in our relationship.

One day, probably after a round of Heardle I got wrong, I thought to myself: “If only there was a way this could be more personalized to the music I like”. And with no hesitation whatsoever, I jumped right in.

Here was the plan: a game in which you connect your Spotify account and guess one of your top songs using only the first couple lines of lyrics one at a time. Your score would be equivalent to the number of lines it took for you to get the correct answer. I settled on the name Lyricdle which, admittedly, could’ve used some work. And I was off.

Did I have any idea if this was possible? No. Did I start building it immediatley anyways? Yes.

Thankfully, I had my fresh knowledge of building Skordle as a foundation. I decided to use the Flask Python framework for the back-end of the website, which would handle the Spotify authentication, picking the song, and searching for the lyrics via the Genius API before sending it to the front-end powered by good ol’ Javascript, HTML, and CSS. All the code is found on my GitHub in case you’re curious in taking a deeper look.

I had never been so passionate about a project in my life. Any moment I wasn’t actively building it, I was probably thinking about a certain design decision I had to make or how to fix a problem I was facing in the development process. Within a few days, I had the basic website functionality working and after a week it was… mostly playable.

First Working Version of Lyricdle

At this point, I felt confident enough to get the domain lyricdle.app, send it to some close friends, and post the game on my Instagram story. Much to my delight, I got a lot of “this is awesome!” replies. And of course, being an early version, some “it’s completely broken for me”.

So, I kept working on it. I fixed every bug I could find (including an annoying one where lyrics were randomly translated to different languages) and did lots more polishing and redesigning.

Over the next few weeks, I maintained a pretty consistent user base of about 90 Spotify logins per day. I continued to receive positive feedback from all sorts of people, with many adopting it as part of their daily routine and exchanging scores in their group chats with friends. This, combined with my continued updates and redesigns, made me feel very satisfied with the state of the game — and it made me wonder if it could expand outside my bubble of mutuals.

Updated & Redesigned Version

To test this theory, I got the idea to share the game with some of those aforementioned Wordle TikTok creators, in case they were interested in checking it out. To my surprise, I got a reply from one of the biggest ones out there, @dailywordle, who has nearly 500,000 followers, saying she enjoyed it and would “probably play it for a video”.

At this point, I was feeling equal parts excited and panicked. So many people are going to try it! What if everything breaks and no one can actually play? The only thing that seemed to calm me was working on the website even more. I do a few more optimizations and play the waiting game.

A few days pass and I’m out in the city celebrating SF Pride with some friends (I promise this is relevant). As I passed through a particularly large and crowded group of people, I come out the other end with an empty right pocket— I had been pickpocketed. Not only did I just lose an expensive phone with no theft insurance, but I also was flying home the next day and very much needed a replacement. After a long day and with no other options, I headed down to the Apple Store at Union Square, got a phone, and finally reached my apartment. After setting it all up, I mindlessly and tiredly scrolled down TikTok until I hear the words “New game this is called Lyricdle…” and suddenly crash back into consciousness. I had just seen this TikTok which now has almost 80,000 views:

Not only had she played my game in front of all of her Wordle-loving followers, but it also… worked! And she even gave a singing performance at the end. I checked the timestamp and noticed it had been uploaded over 4 hours prior, when I didn’t even have a phone to check in. Were people actually playing? Was the site even working?

I rushed to check and sure enough, it was exploding. Hundreds of requests poured in for all types of songs and it was seemingly holding up okay! But I was not prepared for what would happen the next day, when another TikToker with a large following made a video–and this one would ultimately get more than 213,000 views:

At this point, the website was absolutely skyrocketing, I was getting well over 1,000 users every 30 minutes. While this was all happening, I was at the airport and I found myself sitting at the gate trying to optimize the website as much as I could before boarding — including fixing a very obscure bug that I found just a half hour before getting on the plane.

On top of the explosion from this TikTok, the website was growing naturally in other ways too. For example, on Twitter, where many people were sharing their thoughts and posting their scores.

Over the next few days, I received over 40,000 Spotify logins and 62,000 website visits from over 140 countries around the world, countless positive messages, and an immense amount of requests to support Apple Music (which I had to repeatedly mention was not possible).

This was a brand new experience for me. I had never had so many people engage in something I had built completely on my own from scratch. A creation that was just an idea a mere weeks ago had become something that tens of thousands of people were actively playing, sharing, and enjoying every day.

The morning after hitting my new daily max Spotify login record (18,488 users) and with no sign of slowing down, I awoke and did my almost obsessive routine of checking the logs to see how the website was doing. And much to my horror, I was greeted with an absolute wall of errors. Tens of thousands of people trying to sign in and getting rejected — my absolute worst fear. I kept seeing this error: User not registered in the Developer Dashboard and my heart sank.

For some background, on the Spotify Developer Platform, you must register your application in order to allow users to connect their accounts. By default, you are placed into a Development Mode, which restricts your user base to a small amount of pre-registered users. If you would like to extend your application to a wider audience, you have to submit it for review. From there, Spotify manually reviews the application and gives approval if it follows its Developer Policy. I hadn’t really looked into this and falsely (let’s be honest, idiotically) assumed that this was only necessary for applications that retrieved more sensitive user data. My website was only retrieving a user’s top songs, not who that user was, nor changing or controlling anything with their account. This assumption was backed up by the fact that I had been running the application for nearly a month with no issues whatsoever. So I can only assume that the reason my website was ever working at all was because of a glitch on Spotify’s end that allowed me to make requests as if I was an approved app. I suppose the immense and sudden spike in logins alerted Spotify of this problem and they fixed it — essentially killing my website.

I quickly whipped up a custom error page, submitted the application for review, and painfully waited while trying not to think of the tens of thousands of people actively getting barred from my website. But then the next morning, I got this bombshell of an email.

I stared at this in utter shock. I had done all this work for something that wasn’t even allowed? I checked the Developer Policy myself and sure enough, it was right there clear as day.

At this point, I had accepted defeat and made this page explaining the situation and thanking everyone for playing.

Of course, it was a devastating hit at the time. It was so rewarding to see the public embrace something I’d created, and suddenly it was over–without a chance to realize its full potential. Thankfully, I received dozens of encouraging emails ranging from “Can you please find some other way?”, “The world is unfair”, and my personal favorite, “thanks for making this cool thing I enjoyed, I wish you the best of luck”.

Despite the premature shutdown, I look back on the experience as a whole very fondly. Not only did I learn and improve my skills in building and hosting websites, but I also got to create something that tens of thousands of people played, enjoyed, and shared with their friends. Maybe it even made their days a little bit better. It’s easy to say the moral of the story is to do all your research ahead of time but had I done that, there’s a good chance Lyricdle (and this story) would’ve never existed. I think there’s a beauty in doing something purely fueled by passion and the desire to have fun, even if it doesn’t necessarily pan out in the long term. For me, nothing embodies that more than Lyricdle and I wouldn’t have changed a thing.

Thank you for reading and here’s to whatever is next :)

– Karim

--

--