Wrote on

PHP, CodeIgniter, Laravel, Vue, React, front-end… or how I changed my stack over the course of time

Also: Keep up to date with the fast-paced changing scenery of the tech world.

Back in 2012 when I got my first programming job right after I graduated high school, I did not have any experience with PHP frameworks, I’ve mainly used plain old PHP for my freelance websites and the only thing closer to a framework back then was WordPress. I was quite good with WordPress but it was far behind what a framework means.

So when I started the job, I had a few months of paid time to actually start learning CodeIgniter. It was the hot thing in the PHP world back then. CI was ok, introduced me to a couple of OOP things but it was all over the place, not really well structured, and did not follow the best practices.

In the same period, I discovered Laravel 4, around 2013 in the autumn. My initial thought about it was “eww, I don’t like it, it is trying to rewrite how PHP works, what’s up with all those View::make and Route::get calls, why is everything different than standard PHP. So I did not spend any time learning it right away. I even thought I need to install a separate PHP extension to run it, which was not the case.

Anyway so, we had an internal project at the company I was back then called Tag Economy, an online app written in CodeIgniter over the course of 2012-2013. It was mainly an app for tracking personal spending habits, grouping payments by tags and you could see a lot of graphs based on the entries. The app was working but it was mainly used just by us working at the company and a few friends.

After watching some Laravel 4 tutorials I thought “hmm, what if I would try to replicate Tag Economy in Laravel?”… so I did! I was able to build 90% of the app in a single evening.

The routes.php file from the Tag Economy Laravel 4.2 edition

The way the framework worked and was structured got me hooked up and I immediately began a fan of Laravel. Since then, 7-8 years ago I am up to date with each release of Laravel, I study all the things about it and so on. There’s really no way back from Laravel. I even was forced to use Yii on a project because the client requested it, but nothing was like Laravel.

Back then, it was the jQuery era, so the JavaScript I wrote was using that… and mainly Laravel Elixir for bundling code to browser. You know, back when gulp was still a thing. Yep, I am that old that I worked with Gulp and Grunt.

In 2016, with the 5.3 release of Laravel they started to use Vue.JS and after I watched tutorials and code examples for Vue, I was sold. I really liked the idea of reactivity and doing stuff the Vue way. I was actively working with Angular right then on a big app, doing the front-end for that app as a full client-side, but Vue.JS was like fresh air, a different approach.

So I dropped Angular and for a new project, I pushed the idea of Vue.JS, and for most of the projects that is what we used at the same company I was hired back in 2012. I liked working with Vue and I tried to use as little of jQuery as I could.

In 2017 I started working as a side-job freelancer for what was to become the second job I had, a consulting company in Canada. It was part-time but what I like about this is that it was a Laravel project with version 5.4 and later 5.5. At the main job, we mainly worked with WordPress and I was almost full-time on that Angular app doing little to no advanced backend projects, so I had to keep up with Laravel in my free time. Doing that Laravel project as a side-job was relaxing and something different.

The part-time job slowly changed to my new full job, I started working for the consulting company Meevo in 2018, February 1st. Being the single, thus main, full-time lead developer here I was able to do a lot of tech stack choices. From the first project in 2017 and for the next almost 2 years I used Vue.JS as the main front-end framework. I had a few different projects too where I had to use imposed technologies like AureliaJS and that was ok, but my “first love” was still Vue.

I can’t really remember when I started switching to React, on what job project, but it was because I build an application for a friend that was an API and a front-end for which I’ve chosen React so I could learn it. It used the class-approach React, so not the new hooks simply because hooks did not exist when I started the app. I really liked React and started to use it on job projects to see how it compares to Vue. What I mostly liked about it was that it felt more “mature” and had more extensions built by the community than Vue.

So I started to use React around early 2019. I still had simple projects with Vue but I preferred working with React and mainly the hooks version of it.

It was around that time that I also learned GraphQL and I loved the idea of it. You see, I always am an early adopter and I tend to stick with technology as long as I can.

Nowadays, I feel like I could do anything with React. Simple websites, complicated, web apps… anything. In fact, I now have a front-end only job and all day long I write React code.

I am again in the period of my life when I work with PHP and Laravel on my own to keep up to date with the changes, PHP is in its greatest moment so far and it is not going anywhere. I learn new features introduced in new versions, I try to use those in real life, and works out for me.

The main idea I have in the ending of this article is this: use whatever works out for you, it is a good approach. But when a lot of people in your industry tend to favor one thing over another, it might be a good idea to check out that new thing and don’t stick with a thing until it’s obsolete. Technology changes a lot and even some Laravel influencers that tend to promote Vue in the past nowadays switched to React.

In an industry that changes a lot, you have to keep up to date with things. Learn new things at least briefly so you won’t be left out completely. I play with new frameworks, JS or PHP, you name it. It’s never too much to create a new playground project and explore a new thing. I have tons of folders in my Code-Playground folder on my PC with new things: JavaScript full-stack frameworks, development builds of Laravel and other mature frameworks so I could play with new things before it appears in stable build, small projects in Next.js, Nuxt.js, Svelte, Stimulus, Remix, WordPress plugins and so on.. IT almost forces you to learn new things to stay alive.

Be careful though not to enter the framework fatigue zone where you use a new framework/thing for every project you start. Choose your sharpest knife, the one you know the best and you spend less time doing things, especially when you’re on a time-sensitive project.

So there you have it, a brief history of my used tech stacks, I wanted to write this, especially for myself so I could remember my progress and have it documented.

Backend: PHP -> play with toy Ruby projects -> CodeIgniter -> Yii -> Laravel. Also a lot of WordPress. (BTW I just ordered my first WordPress T-shirt after years of working with it).

Frontend: Vanilla JS -> jQuery -> Angular -> Ember -> Vue.JS -> React

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Copyright © 2024 all rights
are not
reserved. Do whatever you want, it's a free country.
Guess it's obvious, but the theme is created by myself with Tailwind CSS. You can find the source code here.
I still use WordPress 🧡. The theme is custom Laravel though 😎.