Inspiration

Millions of people read Medium, a website that curates user generated articles, every single day for tech/political/artistic/educational/miscellaneous news and updates. Unfortunately, Medium supports only a limited API, and since all the content is user-generated, there is no way to listen to the articles podcast-style while on the go. Thus, I decided to build a mobile app to take care of this.

What it does

The app scrapes and parses Medium's website, and then runs a text-to-speech conversion, allowing users to listen to Medium articles on the go. This is also quite helpful for those with accessibility concerns. The app has a dedicated interface for displaying trending stories and also enables searching for articles of interest.

How I built it

I built this using React Native for the mobile app itself, and I implemented a scraping and parsing system written in python that is hosted using Amazon Web Services' Amazon Lambda. I also used Amazon Web Services' API Gateway to make my Lambda function accessible via an endpoint that my mobile app could access.

Challenges I ran into

The biggest challenge for me was figuring out a way to host the processes that would scrape, parse, and return data about Medium's website to my mobile app. Fortunately, Amazon Lambda provided exactly the sort of functionality I needed, and after experimenting with it for a little while, it ended up being the perfect solution. In addition to this, I had to hack the text-to-speech software to allow for a good listening experience.

Accomplishments that I'm proud of

I'm very pleased that I and others will now be able to listen to Medium on the go! I get a large portion of my news from this website so I'm excited that I can now also consume that information audibly. Also, I'm incredibly happy that I now have a thorough understanding of AWS and Amazon Lambda in particular that I can draw on for projects in the future.

What I learned

I learned a lot about serverless computing through AWS Lambda, how to work with text-to-speech conversion on a mobile app, and how to carefully scrape and sanitize user-generated data.

What's next for MediumPlay

Now that I have constructed this initial framework, I see no reason that I can't build this out to support lots of other interesting content-driven sites that people want to listen to instead of reading. After some scaling work and security improvements, I'm going to launch it to the app store!

Share this project:

Updates