How we got to SPAs, RSC, Remix and why this is all important

The most thrilling days of web development are happening now. We have access to the best tools, making website and web app development an unparalleled experience. Faster, more efficient solutions are being developed monthly, causing the entire field to evolve like there’s no tomorrow.

But it hasn’t always been like this.

About twenty years ago, when I made that first website for the kindergarten where my mother worked, the coolest thing was the marquee effect – that I just recently learned has been deprecated. 💔

Meet Macromedia Dreamweaver, where web development started for me:

Macromedia Dreamweaver 8 Free Download + Serial - Software Free ...

But once I figured I could not only drag and drop things on the canvas, but there’s this HTML view, and some say there’s even a PHP server somewhere that can manipulate and store data, there was no going back.

This is where my history of web development started.


I considered PHP as an extension on top of HTML altough this wasn’t completely true.

I could already create mindblowing static sites using the right amount of marquee (RIP 💔), but tapping into a data source on the server made me feel like Neo.

<!DOCTYPE html>
    $sql = "SELECT username FROM users WHERE id = 1";
    $result = $conn->query($sql);
    echo "<h1>Welcome, " . $user_username . "!</h1>";

I’m not sure if this is how PHP looks today. Hashnode’s AI code generator gave this to me, and it certainly looks like something I wrote!

Using this tech, I built my first SaaS right before the year I went to the university. It was a phpBB-like forum for our middle school. Using the same stack, I wrote an even bigger app used as a nationwide registration system for a national mathematical competition.

I didn’t know what SaaS or being productive as a programmer meant back then because I just dabbled with these things.

15 years later, it’s an absolute yes. HTML, CSS, PHP, and MySQL made me extremely productive. And I haven’t used JavaScript at this time. I used maybe snippets I found on the internet, but I showed no interest in learning it because I didn’t need it.

The apps I’ve built in those years mostly looked like current government websites:

Website Forms Usability: Top 10 Recommendations (2023)

Remember clicking that submit button a couple of times?

Ajax responses, the first spinners

It didn’t take me long to realize the value of Ajax. Suddenly, I didn’t need full page reloads to show dropdowns with different values or to disable a Submit button when the request was already processing.

Ajax improved the user experience by adding a slight cost to the maintenance.

At this time, most of my applications were still 99% PHP, HTML, and CSS. Fast forward 4 years to my graduation.

I learned a whole lot of Java at the university and continued selling websites as a side hustle until I landed my first developer job in January 2012.

JSF (Jakarta Server Faces) was popular then, and the company I worked for was bullish on enterprise Java.

Looking at you, ReponseTaskServerAdapterPropertyObserverSetter.

We built web apps that looked like desktop apps, which were incredibly painful to develop, deploy, and maintain.

They looked like this:

Código Fonte Blvendasee 1.0 Java Para Web Jsf Primefaces Jpa - R$ 89,00 ...

JSF wanted to be a silver bullet; we didn’t use much pure HTML because JSF libraries had components for buttons, inputs, autocompletes, etc. But it was a world full of promises and a horrifying development experience.

The SPA revolution

SPAs came like a savior.

Once we realized we could expose REST APIs on the server and write our entire client in JavaScript, our productivity reached HTML, CSS, and PHP levels again.

The client apps resembled what you would have today in a React application.