Skip to main content

Command Palette

Search for a command to run...

You Probably Don’t Need a Framework

Because not every website needs a build step

Updated
6 min read
You Probably Don’t Need a Framework
A

I’m Ayotunde and I love all things about Christ and the gospel, tech and life generally. I’m a software developer trying to get better everyday

Somewhere along the way, building a website started to feel like assembling furniture with power tools, a manual, and three dependencies you didn’t ask for. Frameworks are incredible pieces of engineering, but not every site needs them.

For many websites, plain HTML, CSS, and a sprinkle of JavaScript already do the job. They load faster, break less, and come with accessibility baked in by default. This isn’t a call to abandon frameworks altogether. It’s a reminder to choose simplicity when it’s enough, and complexity only when it earns its keep, and I think that starts with being able to tell the difference between a website and a web app.

Many of us are fond of frameworks, so we forget to keep things simple. A simple landing page doesn’t need the overhead of React and its node_modules. I’m not going to lie, it’s fun having a simple page application (SPA) for your apps, but fundamentally, we do not overdo simple things like building a website.

Starting as a developer, one of the key principles I learnt was K.I.S.S. (keep it simple, stupid), but I mostly applied it to the code I wrote. As a software engineer, I have begun to take that beyond just written code into architectural design (though I still struggle a bit because I want to create “scalable” systems).

Building my portfolio website is something I put off for way too long. I always knew I wanted one, but I couldn’t quite figure out what I wanted it to be. I looked at countless designs, case studies, and ideas from others, but none of them really clicked with me.

I even had a version designed by my friend, Ibukun. It’s still sitting rent-free in my Figma account 😂. It’s genuinely beautiful, but for some reason, it still wasn’t enough to push me into writing code or even paying for a domain name.

On Thursday, I came across a simple personal website and found the motivation I needed. I spun up a new React project with Vite, and to my greatest surprise, a whole lot had changed in the frontend world. I mean, I was updated to the point of knowing that create-react-app was obsolete, but why didn't anyone tell me that Vite now uses a different command? I wasn’t even informed that React Router was a bit different, either, and that installing Tailwind and running npx tailwind init were no longer necessary with Vite.

This just showed me that frameworks will always change, even when trying to achieve the simple task of rendering a website. Anyways, I was able to build my “simple” website, and I absolutely love it 🥰, but I still felt it was an overkill.

Then Friday came, and I came across a talk by my friend (Jemima Abu) titled I Can't Believe It's Not JavaScript!, which she delivered in Japan, where she talked about doing some fantastic stuff with just HTML and CSS. It was amazing because many of the things we needed JavaScript for could now be done with just HTML and CSS. You should check it out, plus Jemima is a really fantastic frontend developer.

You know that moment when you watch a motivational video on YouTube and suddenly start questioning all your life choices? That was me after watching Jemima’s talk.

I found myself asking: How much have I missed since I went knee-deep in servers and quietly neglected accessible HTML? What’s changed since I stopped being a full-time frontend engineer? Can I still build things without leaning on frameworks?

Those questions stuck with me, and the answer felt obvious… it was time to go back to basics. Back to learning (and relearning) HTML and CSS.

These days, we focus more on a website's functionality than on its accessibility. And, to be fair, I was guilty of this, too. I had forgotten about all that and got stuck in my head with over-engineering and “building scalable web applications”.

I decided to return to building websites without frameworks — really leaning into the basics again and reminding myself what the web can do on its own. Over the past weekend, I put that into practice by helping a friend (Joshua Chinaecherem Nnamani) build a simple website, without reaching for a framework once. You can check out the website here. The goal was to keep things relatively simple, yet do them well.

That somehow turned into over 10 hours split across a Google Meet, a WhatsApp call, and a “code with me” session in JetBrains WebStorm. Honestly, it was a lot of fun. Everything we did was refreshingly traditional, right down to deploying the site on cPanel 😂.

This was as simple as we wanted it to be, and we were delighted with it. Of course, there were a few bugs which are yet to be fixed (at the time of writing this post), but at least it was a fun one.

Now, don’t get me wrong, frameworks are lovely and amazing. They have made building complex web applications much easier with less code (even though there’s so much code to write) compared to having to create the same web applications with vanilla JS. Still, we must keep things really simple for the sake of the web.

Accessibility is another essential part of the web that we often overlook. It’s easy to focus on features and functionality, and that’s not a bad thing, but we sometimes forget that we don’t actually know who’s on the other side of the screen.

Using the correct HTML elements and attributes, loading fewer JavaScript files, respecting reduced-motion preferences, and offering colour themes that match user settings all go a long way toward making the web usable for more people. At the end of the day, no matter what framework we reach for, whether React, Angular, Vue, Svelte, or whatever comes next, we are still building with the same fundamentals: HTML, CSS, and JavaScript.

It is also essential to understand the basics and avoid becoming overly reliant on frameworks and libraries, because at its core, the web is still just HTML, CSS, and JavaScript. When we depend too heavily on frameworks, we risk tying our skills to a specific tool, and before long, picking up a new one can feel harder than it needs to be.

In a bid to relearn basic web development, I may be learning in public, or might just tutor some people over a few weekends, so two birds (or more) can be killed with one stone. Feel free to let me know if you're interested, and I may consider it (no promises 😜).

Remember, keep the web simple. Make it accessible. HTML, CSS, and JavaScript are already a framework. They’ve just been around long enough that we forgot. Only reach for other frameworks when they solve real problems. Otherwise, let the platform do the work

T

I can remember the same happened when we were trying to work on a project I was on and needed your assistance with some things. You had to go back to the docs file just to spin up a simple react project(or was it nextJS)

More from this blog