The experiment fails.

One of the reasons for starting the Rabbit Hole project was to learn how to use what the cool kids call a modern framework. As I’m not a cool kid, I prefer to develop websites the old skool way using just the core technologies, most of which have been around since the dawn of internet time.
In the first article I wrote for this blog, I posed the question: Why do I need to use a framework?
Web technologies move fast. If you don’t adapt quickly you're left languishing with the dinosaurs. Despite never really embracing frameworks, I knew I couldn’t avoid them forever and Gatsby, based on React and Node.js, seemed like a good environment for development and hosting. The initial setup was simple and the documentation easy to follow. For about a year my blog lived there happily.
Then I received an email from the Gatsby people. Sorry, they’re now the Netlify people because Gatsby had been taken over and the platform was about to be discontinued. I would have to migrate my site but I needn’t worry, the process would only require a few clicks and when completed, I’d be able to enjoy all the wonderful new features they offered.
I knew where this was headed. However, I decided to play along and see what happened.
Two. That’s how many clicks it was before I ran into the first problem. My site couldn’t be migrated because of... I dunno, I didn’t understand the cryptic error message. Hundreds of warnings listed in a log I was helpfully advised to consult were similarly bewildering. I wasn’t surprised. This is what happens when you put your project in the hands of a second party. I decided to abandon whatever this platform was now called and use one of my own.
A developer who doesn’t know how to use PHP is like a carpenter who doesn’t know how to use a hammer. A quote I once read that perfectly sums up the limitations you'll face if you can't use the basic tools.
Imagine you're a DIY enthusiast and you want to build a table. Not too challenging a task but unless you have specialist skills, your options are probably restricted to putting together pieces that someone else has already made. There’s nothing wrong with that as long as you can get hold of everything you need so the first step is to find a warehouse that stocks it all.
But bear in mind, lots of other people also want to build tables, none of which will be identical to yours, and they may end up looking in the same warehouse. In order to satisfy all potential customers, it would need to be filled with every component necessary to assemble any conceivable table.
Let’s start with the legs. What kind of legs are you thinking of for your table? Round, square with rounded corners, square with defined corners, straight, angled, tapered, smooth, ridged... How long should they be? 50cm, 60cm, 70cm? How thick? What material?
These are just a few properties of one element of a table. How many possible combinations do they make? Your main problem will be locating the handful of items you need among piles of stuff you never knew existed in an enormous warehouse.
You’d better hope the manager is organised; keeps their house tidy and can clearly explain where to find what you're after and how to utilise it. Furthermore, you’d want to be sure they won’t later decide to reorganise the shop floor, discard something you're dependent on or simply close down altogether.
Even if you were to find such a committed custodian for your project, you'd still have to contend with a vast amount of deadweight you’re never going to use, purely for the sake of a few things you do need. This is not a good way to approach a relatively simple job and it wouldn’t be necessary if you possessed the skills to create exactly what you wanted using just the raw materials and 3 or 4 basic tools.
So I’ll ask the same question again but this time it’s rhetorical: Why do I need to use a framework?
You might point out that I'm wasting my time building something from scratch when a smarter person has already done most of the work for me. To which I would respond:
- Have they provided exactly what I want and if not, will they customise it to my requirements?
- Will support be available whenever I have questions; today, tomorrow and for as long as I want to use their product?
- If I sign up for a free service, can they guarantee I won't have to start paying for it on a whim?
Frankly, I don’t believe any marketing fluff which tries to convince me that ‘Yes!’ is the answer to all those questions and a bad experience with Gatsby/Netlify did nothing to lessen my scepticism. They gave me a couple of months notice then simply pulled the plug.
My blog was down for a short time while I adapted it (apologies to my loyal readers) but that was a small price to pay for the relief I felt to be getting rid of a ton of useless code I’d been forced to include, relief that I could once again write a line or two of JavaScript instead of having to install a plugin, a new dependency for the plugin, plus an update to the core dependency that the new dependency depended on.
This is how websites are built nowadays. Largely unnecessary in my view but perhaps I’ve spent too much time working as a one-man band and become firmly entrenched in my own rabbit hole. The failed Gatsby experiment at least demonstrates that I attempt to hoist myself out of it occasionally. I do wonder though, if the evolution of the internet is being shaped by too many people who’ve invested in too many bits of wood without ever learning how to use a hammer.