I am working on a proof of concept for a public event aggregator which will allow users to search for events from multiple sites.
I decided to use vanilla PHP for the aggregator due to simplicity. While I haven’t worked with PHP in a while, I remember PHP being relatively straightforward to setup and deploy. PHP is well tested due to decades of development, and it is still widely used, which is another indication of it’s usefulness. The aggregator will work by retrieving data from multiple sources and then converting it into HTML, which is a great fit for a PHP proof of concept.
An added bonus of using vanilla PHP is that there is a variety of great documentation, which is mostly been written before AI generated documentation became widespread.
While this setup isn’t optimal from a performance perspective, it does allow for improvements to be easily added. One option would be to use PHP in memory caching to cache data. Local sites could also be configured to call a PHP API endpoint to submit updates to the aggregator, which would run a separate script to save data to the cache. A database could also be added later.
A PHP framework such as Laravel, or a framework in another language such as Ruby on Rails, Django, or Spring Boot can be more powerful when it comes to additional features such as handing use authentication. From an engineering perspective, I think Java is a better language for a backend, and one could say the same about other languages.
Higher engineering quality is important for software where security and avoiding bugs is more important than codebase accessibility. Examples include software running on medical devices, or a security software used to control access to government buildings. An accessible codebase could make it easier to find and exploit security flaws, and lower quality software increases the risk of bugs.
However, I think vanilla PHP is a better solution for an aggregator website despite lower engineering quality. Setting up an aggregator website using Java involves additional complexity when compared to PHP for deployments. When deploying the Java API for dmvboardgames.com, I had to setup a Docker container and logic to start a server, which was not necessary with the way Digital Ocean supports PHP deployments. When learning PHP, I also remember being able to upload PHP files to a shared hosting server on bluehost.com and have them run without any additional setup. There is also the additional complexity of setting up another server or the Java server to serve HTML.
The aggregator proof of concept is to demonstrate the decentralized in event hosting platform I am working on. One key goal is to get more people involved with making websites for in person events. The aggregator code is open source, and I want people to use it as an example to build their own event websites.