DEV Community

loading...
Cover image for Blogfinder - submission post for the DO hackathon

Blogfinder - submission post for the DO hackathon

deb17 profile image Debashish Palit ・3 min read

What I built

The BlogFinder web-app has a simple aim - to publicize personal blogs.

Say you have a blog that you've built with care. You don't want to migrate it to sites like Medium, Blogger or Hashnode and use their platforms. If you want to maintain the blog and need viewership, then this app will help you.

It's not just a list of blog sites. It shows you the summaries of the latest posts made on the personal blog sites of all its users. The main attraction is the Explore page which gives a combined view of the feeds and the entries made manually.

Additionally, this site is a social platform where users can follow and like each other, and view profiles.

Category Submission:

Random Roulette

App Link

https://blogfinder-kesza.ondigitalocean.app

Screenshots

Index page

Explore page

Description

There are two ways in which the app achieves its goal. Firstly, when a user submits his/her blog url, the RSS feed, if any, gets detected. This is used to pick out the latest post summary. The other way is by making manual entries of blog summaries on the site, which show up on the Home page (apart from the Explore page).

The challenging part of the design was scalability. What happens when the number of users grows and there are hundreds of feeds? Not to worry - Async to the rescue. I chose the Python Quart framework to make async requests to fetch feeds. By using coroutines, the app can scale up to a high number of simultaneous requests. The feeds are cached for a duration that is configurable.

Link to Source Code

https://github.com/deb17/blogfinder

Permissive License

MIT

Background

I am a self-taught developer. I have a personal site and blog. But the blog is not successful. I had a look at the popular options available. Hashnode came closest to what I wanted. It allows custom domains, but still you have to write on its platform. So I came up with this idea of popularising blogs of developers like me.

How I built it

This app is built with Quart (asynchronous Flask), Vue and Bulma. Quart helps in making async requests to fetch feeds. Vue is used to make an api call to the server to get the posts - a process that takes some time - and to easily handle the JavaScript needed to render them.

Building the app with Digital Ocean's App platform is thankfully not complicated. I just had to provide my docker file and tweak the yaml spec. Also it's nice to get a free and secure domain.

Please note that the demo app features some example blogs. The blog owners are not using the site.

Additional Resources/Info

  • There is an old Python cookbook recipe of 2004 which does a similar thing. It builds an RSS aggregator with the Twisted framework. This shows that my idea behind the app is feasible. I have, of course, not used any of its code.

  • Log in with username 'deb' and password 'pass123', or create new credentials.

(Cover) Image by Sophie Janotta from Pixabay

Discussion (0)

Forem Open with the Forem app