Published on

Replication as a Learning Method

In both music production and web development, I’ve often made the most progress when purposefully trying to replicate an existing piece of work.

For music, this means creating an instrumental remake of a song I really like. For web dev, it’s cloning an application I use often.

At the start of 2020, I decided to learn React, and I chose to build a Twitter clone.

The first iteration was a basic CRUD app with a Firebase backend, allowing users to post tweets and view all other user’s tweets. I then added more features, learning how to implement them in React as I went.

I added profile management with a bio and profile picture, the ability to “Like” tweets, and then added media support to allow for tweeting images.

I haven’t worked on the application in a while, but I have React Native on my to-learn list and I’ll likely start by building a mobile version of the Twitter clone.

And because Twitter is a mature product, there’s no shortage of features I can add. Right now, every user sees all other users’ tweets and there’s no ability follow other users. I could also add search, retweets, direct messages, etc.

With each of these features, there are likely parts of the implementation that would require me to go deeper into React library, NoSQL databases, and Firebase.