I have been shopping around for an RSS reader. I prefer a self-hosted solution since I am not in the mood to pay for a feed search functionality. I did find one called Miniflux. It is a small and no fizz RSS reader. Miniflux is easy to set up and even comes with a handy docker deployment guide. So what is the problem? Go is the language of choice in the Miniflux project. I am not a Go developer and don't have the time to start learning it this moment.
So I widened my search, and as luck will have it, I was watching a video from the Traefik community, and the open-source feed FreshRSS came up. Now the good thing about this is - FreshRSS is built in PHP. So I am excited, if anything goes wrong, I can at least fix it. I could drill down into the source code to see what is going on.
I currently run my blog using Docker, and so I am thinking of running FreshRSS. I then visit the Github repository, and it looked busy. So this is a good thing that the project is still active. While scanning the GitHub repository, I noticed the absence of a composer.json file. I find myself questing why there isn't a composer.json file? Is this modern PHP at all?
How old is this project?
I found myself being a bit judgemental on the project structure since I didn't see a structure that looked like "modern-looking" PHP application structure. And to make it even more interesting, the project had all libraries downloaded right into the project. No composer to manage dependencies?
When I step back and look at how long the project has been going and the breath of functionalities you get from out of the box, the thought of writing own RSS feed was put to the side right away.
So why was I initially judgemental of the project because it didn't start with a composer.json and an src folder location for all your code? Why did I find myself drifting into that sphere of content? What happened to just enjoying the fun from enjoying a software that served a purpose.
One of the rewards of being in the Software Industry is seeing how ideas move from concept to actualisation. I remember when I started learning to code in QBasic, and I read a chapter (No internet then, we did it in books) on Random File Access. I was so inspired, I spent a few months trying to build an Airline reservation system. I wanted to implement the simple task of allocating seats to checked-in passengers in a fictitious airline. The code never wholly worked, but the reward of getting something that worked reasonably was a good feeling.
Today when we write code, there is this salient expectation of using the best practice. There is an expectation that code should conform to specifically agreed patterns blessed by the software community. These expectations take the fun out of creating.
I read an article recently (can't find the link at the moment) that frowned on the whole push for architecture, designer patterns etc. I did not support the points made in the article at first, but now I think I get what the author meant. Sometimes you have an idea, best to let the juice flow. When you have a successful product at hand, we can get back to cleaning it up and using whatever architecture we so desire. If however, you are productive with putting things in their "right" positions, then do what makes you happy. What matters most is the creative process.