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.
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.
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.
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.
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.