
This article has been in my draft for about a year. And I am glad that it was. A lot has changed that is more relevant now than it was last year. Think of this like a well (1 year) marinated steak that is now ready for the grill. I apologize for the analogy but the rest of the article is great. I promise
Another thing you might notice from now on is my articles will feature more of personal experiences with tech rather just “How to”, “Top 10”… which, if I am being honest, can be done better with AI. Anyway, enjoy.
ARTICLE SUMMARY: Capitalism happened; founders were led astray
In PART 1 of this subject, I talked about how the lack of support for one of my favorite frameworks, Gatsby.js, led me to switch to Astro.js for my personal project. It was not a big setback for me since I had only used Gatsby for my personal project(s). But now think of all the companies that relied on it? What are they supposed to do?
Programming languages, frameworks, and libraries come and go. Only a few stand the test of time, while only a select few refuse to die (Looking at you, PHP and Ruby on Rails). In this post, I would like to talk (reflect?) on how our future, company, and goals should and should not influence our tech stack.
Denial and Acceptance, I guess
I wondered, “What the hell happened to Gatsby?” in my previous article. The simple answer is Capitalism. Capitalism happened. Now that I think about it, I had not accepted the fact that Gatsby was dead. You ever look at someone, a dog, you know is on their last legs but somehow has not accepted their current fate? That was Gatsby for me. I was in denial so much that I refused to move to their direct competitor, Next.js, to rebuild my website.
I even wonder what I would have done if I had built my client’s websites with Gatsby. Imagine the pain and time I would have wasted to port everything over to a better or more stable alternative. Mind you, this was before things like Claude Code or Codex were easily accessible. They were there, but not cheap, and I know for a fact that I was not going to be wasting money on rewrites that could have been avoided.
“But Max, you didn’t actually use the site beyond your personal website; what is the big deal?” some of you might be asking. That is beside the point. Don’t look at it from my perspective. Think of that startup which was trying to get on its feet and put its trust in Gatsby! What about that company that could not afford downtime from version upgrades or broken packages? What are they supposed to do?
It is frameworks like these that taint the image of other languages. “PHP is trash!” is what people used to say until Laravel came along the way. It was not the language; there just was not someone who actually saw potential in what PHP could be. “JavaScript is trash!” even though it’s partly true, but people still tolerated it until ES6/React came along, and now it is basically everywhere.
And since React is a library, it had to rely on Gatsby to do most of the heavy lifting, only for it to disappoint both React and Gatsby’s users. Like seriously. We can’t be doing this.
At this point, it is not even about Gatsby. It is about technologies (and companies) that sell you a dream. A dream that they cannot afford to fulfill, but they still go ahead anyway by luring in investors and people. And what do they get in return? A middle finger.
Okay, okay. Rant over…for now.
Codium → Windsurf → Devin, what are you, really?
For those who might not know, I was very reluctant to adopt these agentic coding VS Code forks (no pun intended, I swear). It took my boss to convince me to try and use Windsurf. There was a deadline to meet, and I will admit, at the rate that I was working on the current task, I don’t think I would have finished in time.
The main point here again is pivoting. Codium to Windsurf was great growth. From a cli/tab auto complete extension to a whole company competing with VS Code. I respect that, truly.
I did not like the (re)branding that came with it, however. Look at Cursor: same name, same brand, different products, same goal. I have no argument with Cursor because they have always focused on the money. Windsurf started as a cheaper and direct competitor but offered more! I think they still do in some areas. The final nail in the coffin for me was when they got bought by Cognition. I knew they were going to sunset the IDE + brand at some point. I expected the price hikes. I was two steps ahead, yet somehow, the reality still hit me hard.
Just like Gatsby, I made the mistake of doubling down and putting trust in Windsurf. I love them though. I still use codium auto complete for Neovim as well (when it stops working, I will be ready, I promise). I still use Devin when I don’t feel like Viming (Viming, is that a real word?).
At this point, you will realize that I have attachment issues. Don’t we all? Same thing goes for companies. Companies are run by people, and people have preferences, and just like me, some people are attached to technologies. Why do you think almost every bank in Malawi is sitting on .Net (Microsoft) infrastructure? Don’t tell me because it is better—that is subjective. Banks choose .Net/C# because it was available, convenient, and stable at the time, and probably what they learned in school. It is what they are comfortable with. Same way I was comfortable with Gatsby. There is nothing wrong with that.
What is wrong is Microsoft waking up one morning and announcing that they are sunsetting .Net or Azure, which I believe would be illegal as well since bigger and more companies have invested a lot in it. I could be wrong though. Anything is possible.
Sometimes It Works Out
A very good example would be Next.js. It came out after Gatsby. If anything, I believe they borrowed heavily from Gatsby and fixed what did not work for them; the rest is history. If I had jumped ship to Next.js the moment it was first announced, I don’t think I would be writing this article.
I would probably rant about how React on the Server is and will always be a bad idea. For those who know, we can all agree that Vercel had it rough in 2024 and 2025 due to all the vulnerabilities they faced.
Another argument would be to blame it on the AI slop that is being shipped. I am still skeptical about Flutter. A game engine disguised as a framework for mobile apps is something I am not ready to trust…Especially from Google.
So, what have we learned, class?
If I have learned one thing, then it is to stick with what has been tried and true. And in most cases, these are the boring stuff. These involve spending the time to build the solution yourself—provided you have the resources and time, the latter being something we can make along the way—rather than relying on SaaS, BaaS. “What do you mean, Max? What are you trying to say?” This is what it means:
- It means going for Laravel because, let’s be honest, those guys don’t complain. I have yet to hear the PHP and Laravel community break down on X about what they are using.
- Choosing the safer route means sticking with UIKit for iOS development even though SwiftUI was the shiny thing at the time.
- It means sticking to Native solutions for mobile development before pouring all your resources into Ionic or Capacitor
- It means sticking with React Native when, at the time, Expo was unstable but somehow seemed right. But I would argue that Expo has had its stability since SDK 52/53. I could be wrong, but that is just how I see it. Expo/React Native has been so smooth that it feels wrong to bring up issues from 2018.