Enindu Alahapperuma
Software Engineer
Sri Lanka
I'm a back-end engineer, system administrator, and website security expert.
I have upgraded the Laravel framework to version 12, made significant improvements to the front-end design, and added service pages to the website. This means I am now officially offering my services as a freelancer. Read below to learn more about these updates.
This is the fourth version of my website. In the early days, I used a custom-built static site generator written in Go to generate plain HTML pages, which were then hosted on a basic shared server. At that time, I was not offering freelance services and had no plans to write articles—the website simply served as a personal introduction. You can view the second version of my site on the Wayback Machine by clicking this link. Unfortunately, there is no archived capture of the first version. With the third version, I discontinued my static site generator and migrated the website to the Laravel framework for better flexibility and scalability. You can see the third version here. Several factors influenced my decision to move away from the static site generator.
Those were the primary reasons for abandoning the static site generator. I also had several personal reasons for making this decision.
In the early days, I built this site without any frameworks—it was purely HTML and CSS, without even using JavaScript. However, with the third version, I decided to introduce some structure by using Halfmoon as my CSS framework, Laravel as my back-end (PHP) framework, and minimal vanilla JavaScript. Laravel is a well-established choice, but opting for Halfmoon was an interesting decision. Even today, Halfmoon remains a relatively lesser-known CSS framework.
During my time as a director, I held multiple roles within the company, including that of a senior developer. As a senior developer, I introduced new development procedures and standards to improve efficiency, which played a key role in the company's rapid growth. One of my major initiatives was developing a boilerplate starter kit using the Laravel framework to standardize development. This ensured that all developers followed the same design patterns and standards, making it easier to assign different parts of a project to any available developer. As a result, development efficiency increased by more than 100%. As a director, I made many key decisions like this to enhance the company's productivity and overall quality. For the admin panel design of the boilerplate starter kit, I chose the Halfmoon framework because it was lightweight and used class names similar to Bootstrap. I appreciated its simplicity. At that time, Halfmoon was a separate framework from Bootstrap, which is why I also decided to use it for my personal website.
For the fourth version of my website, I continue to use the same technology stack. I create the design using plain HTML, style it with the Halfmoon framework along with some custom CSS, and enhance it with minimal JavaScript. The Laravel framework powers the back end, serving the final product to clients. While the website itself does not use a database, Laravel utilizes SQLite for its internal operations.
I made significant design changes in the fourth version of my website. The UI was completely rewritten while retaining the same layout, but with a smaller container and some visual enhancements. The theme colors remain nearly the same—I previously used Tailwind v3 colors, and in this version, I switched to Tailwind v4, which offers brighter tones. Instead of the Slate palette for the background and foreground, I now use absolute black and white, respectively. Additionally, I incorporated Particles.js with custom styles to create a blurred background effect. Another notable addition is a logo, which was never present in previous versions. Overall, I made slight updates to the branding. Most importantly, I removed all my previous blog articles—without any specific reason.
In the third version of my website, I used Laravel v10. For the fourth version, I have upgraded to Laravel v12. However, you won't notice any visible differences, as the website does not rely on any advanced features of the framework. I primarily use Laravel for its routing system, controllers, views, and asset bundling.
The server stack remains unchanged. I still use Apache HTTP Server on an EC2 instance to serve the website, with Cloudflare acting as the reverse proxy to enhance both security and performance. For TLS implementation, I use Let's Encrypt. Route 53 handles DNS management from the origin server to Cloudflare, while Cloudflare manages DNS from the proxy server to the clients.
As before, the source code for this website is still licensed under the MIT License, allowing you to modify and distribute it. Contributions to the source code are also welcome. Click this to view the source code.