Building a 9GAG clone over the weekend:


My fiancé recently showed me a picture on her Instagram feed. It was a Chihuahua behind a pizza with the caption “Yes I’m into fitness, fitness whole pizza in my mouth.”

She had recently discovered and subscribed to 9GAG and was loving their feed. I tend to checkout /r/funny so I’m usually a few days ahead of 9GAG. When she showed me the picture, I told her I’ve seen it and tried to introduce her to reddit. She thought it was too much work for funny pictures and decided to stay with 9GAG. “I’ll wait a few days for whatever’s on reddit to shows up here.”

I thought to myself, how much work would it be to clone 9GAG. To create a feed that automatically updates off reddit and shows it on a platform very much like Instagram. Turns out, not much work at all. The good folks at reddit allow you to grab a JSON format of everything on the site. All you have to do is end your requesting url with “.json”. Check it out for yourself, it’s awesome. This made the hardest part, aggregating data from reddit, rather trivial.

Using the following I managed to get a prototype up and running in a few hours:

  • Rails on the backend, used to build a REST like API
  • AngularJS on the front, everything is a single page app
  • Heroku for hosting, no hassle deployment and easy setup
  • Amazon S3 for storage
  • Paperclip gem for attachments
  • ng-infinite-scroll for infinite scrolling

The biggest challenge was with Facebook’s scraper and angular not playing nice (more details, also more on this later). Also picking a name and a domain for the site took much longer than it needed. However overall the project was a lot of fun and I plan to add more features to it along the way.

Here is the site: endless fun! check it out, then check it out again in ten minutes 😉


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s