Technical details
If you are here, I guess you want to know more about the technical details of this website.
Compared to the first version, I have changed a lot of things. First of all I have upgraded Laravel 5 to Laravel 10. This step was mandatory, because I updated the PHP version to 8.3 which is not compatible with Laravel 5. Yes, I have a web server that I manage by myself.
Ok, at this point you might ask yourself: "Why did he choose to use Laravel instead of Next.js/Nuxt.js if he prefers working on the front end side?" The answer is simple: I'm not a big fan of these tools. To be more precise, I like the concept of "separation of concerns": data has to be manipulated, stored and retrieved by the back end and rendered by the front end. Moreover I do not need to have reactive UI.
Anyway, getting back to technical details, I have exploited this refactoring to rewrite the whole application:
- Dropped MySQL in favour of SQLite
- Removed useless pages and routes
- Removed Bootstrap in favour to a minimal custom SCSS code
- Improved Accessibility: semantic HTML and ARIA data attributes
Dropped MySQL in favour of SQLite
Being a simple web application, which doesn't require to have users table or complex data, I have chosen to get rid of MySQL. With SQLite I can have all the data stored in a simple .sqlite file that can be managed easily without setting up a SQL Server. Moreover, I do not have to create a dump for backing up data, I just need to commit the database file and keep tracking of changes.
Removed useless pages and routes
The old website had some pages that I decided to remove. Unfortunately most of the projects I have worked on, several years ago, have changed. For this reason I thought it was better to get rid of them, but I'm planning to create a "Portfolio" section in the future, for exposing both my personal projects and some fresh stuff I worked on.
Removed Bootstrap in favour to a minimal custom SCSS code
This has been another significant change. The previous version of the website was coded by using Bootstrap for the front end part. Since I had a unique .css bundle, built with a lot of useless code, I have preferred to remove Bootstrap in favour of a customized SCSS code. In fact all the CSS you see is built from scratch. No components, no utility classes: just the things I need to have. Moreover I've created different bundles depending on the page, in order to serve the most useful code as possibile and improve the user experience.
Improved Accessibility: semantic HTML and ARIA data attributes
The old website was coded in 2016. At that time I did not pay attention to web accessibility (to be honest I did not have any clue about it) but during the last years I have understood how much is important to give to anyone the best possible experience. This is what pushed me to develop the user interface of the website by using semantic HTML and applying ARIA attributes to improve the experience on screen readers.