written on 2026-03-05 by aedhonk
print("hello, world!")
I’m quite sure it’s the main way we all start. Well, in Python at least.
I usually struggle to find a way to start a personal project. For me, it usually goes one of two ways. Either I find a topic or project I really want to work on, or I find a tech/language/framework I really want to test or learn. In both cases however, I find it difficult to really stick to it.
In my last job I learnt that “one cannot do everything at once”, or at least without sacrificing a lot. But for a personal project, the temptation to just run through every resource or even just start to code without thinking is sometimes too great.
This website for example. I had the idea in my mind for as long as I can remember writing my first webpage in HTML, CSS and JS (which seems to be like an a century ago to me). The old me had all these dreams about creating a whole new thing and talking to a lot of people about this hobby-soon-to-be-job. But even after working tirelessly on the first webpage for a school homework (which was aced by the way!) the main struggle became clear: it takes work to make something, but so much more to make it good! So I put it to the side and never got to work on it again.
Fast-forward to more than ten years later (oof), the web drastically changed, and what seemed to be within reach when I was young now seems impossible to replicate with my skills alone.
Take some big designer websites for example. You know the ones. Those which, when you land on the page looking to buy some tech product, leaves you wondering how the hell all these animations, transitions and interactive components are working behind the scenes. And especially, how does this work on technically the same 3 main bricks you used to learn so long ago? Web development has sure gone a long way since the time where you just needed to write a simple index.html with some <style> or <script> markup. And I’d reckon it’s mainly due to the creation and democratisation of web frameworks.
an argument against simplicity
Now you just choose a template, use a single console command, edit two or three files and you’re good to go: here’s an AI-powered task list with an admin dashboard! Well, sort of.
Web frameworks really simplified a lot of the stuff that’s difficult to implement and maintain, be it server or client-side. Now when trying to learn a way to make text appear in a browser, the main thing that is used to describe the process is “It’s simple! Developer-friendly! So many features in a small package! Install my big JavaScript npm package and start building now!” and it’s difficult not to take it as face value. So many websites are now built around major frameworks like React, Vue, NextJs, Angular and so on. They all gather a lot of trust in the tech community, be it for technical reasons or just seniority, and it’s difficult to see why one should be better than another at first glance. But let’s suppose you have an idea with predefined specifications; should you use a framework? And if so, which one should you use? Well, it’s complicated.
It seems that the web framework ecosystem is expanding every day. Some frameworks are “relatively old” and trusted like Angular, React or even Ruby on Rails, but every year the next “big thing” is released with features that are so new you can’t really understand why they exist and why they’re useful. Sometimes a new team claims that their creation fixes issues that underlie everything that came before, and even redefines the web as we know it. Sometimes the claims are more moderate and the framework just tries to improve a single aspect of something that bothered someone so much that they tried to fix it by themselves. Either way, projects are built using this tech, and sometimes die because of it.
NextJs for example is based on React, and includes a lot of the big experimental changes that the React team is pushing. This means that the team at Vercel builds a lot of their features on things that are not even fully finished yet, or are unstable. And it works fine! (most of the time) The main gripe I have is that, when those features are truly implemented into React, you now have to update NextJs to the new version that introduces so many breaking changes you have to rebuild everything from the ground up (hello, and goodbye, NextJs V16)1. And if you don’t update, too bad! A CVE has been discovered!2 But it has been fixed, so at least I can sleep knowing I’m safe. At least, for the next year before support ends.
I won’t go into much more detail here; I haven’t used more than four different web frameworks for now, and I can’t list all the times where I left feeling disappointed by the limitations that arose from just using the thing.
Just looking at the examples or the documentation is not enough to choose, because sometimes everything works fine until a breaking point so far into development that you just couldn’t have seen it coming. And checking reviews or comments about it on the web is a nice way to hear everything and nothing, with some good and some not-so-good arguments for or against something.
In the end, it doesn’t even matter you quickly find that just choosing what to use is a pain, and investing a lot of time to learn a new tech and then failing is discouraging to say the least.
back to the past…
I’m used to writing specifications for the projects I want to work on. But sometimes when working on a personal project, you just want to get to it as soon as possible. And that’s why it took me three month to create this simple website. Choosing a framework was exciting at first because you see all the examples, and they ooze with personality, style, and animations. But sometimes you don’t need all the flashy colours and shapes and just want something that works. And I must admit that the best experience I had when creating websites was the one the me from more than 10 years ago had working on this small school project.
So I started working with HTML and CSS again! And it felt great, understanding what I was working on without worrying about how to best use SSR or how to manage the states for my sidebar to open (even though using display: flex; everywhere to put everything in its right place still feels like magic to me). I got inspiration from multiple websites from the late 90’s, where you didn’t need animations and/or “designer grade” styling. It just worked and, bonus point, it was efficient! No need for megabytes of custom style sheets, JavaScript files, or 4k images, and I honestly think that this point alone is something we all should think about when creating software.
…or not?
The only caveat is that I really missed having dynamic data displayed and updated regularly. I could write JavaScript for all this to gather data from the client side through a database or API hosted on my server, then make sure to secure everything, handle all the exceptions or data models… It’s a lot of work, testing and reviewing everything to make it right, and a mistake here is much more serious than just having too much padding in my footer.
So I used a framework again. All the previous rant about the state of web development still stands, don’t get me wrong, but sometimes you find something that really seems to fit your needs. So this website is made with Astro, “The web framework for content-driven websites” as they say.
I’ve seen actual work done by people online that praises it for its simplicity and the wish for everything to be lightweight, and as close to pure HTML and CSS as you can get. And I must say that, while the tutorial felt like going through the same pipeline as NextJs did, here it felt really easy and purposeful. You just write HTML, add some JavaScript on top of the file for server-side processing, and it builds the page in HTML again without overloading it with kilobytes of React JS files that won’t be used anywhere. And you can write blog pages in Markdown and it gets converted to HTML too.
I won’t praise Astro more because I’ve really used it for no more than a week when writing this, and I don’t think I will use all the bells and whistles so I won’t be objective here. And I still stand by my position: there are so many different ways to build a website that it is often more of a hassle to use oversized tools than just doing it by myself. But this post is not to say that all web frameworks are inherently bad, just that I had a great time writing simple code (and an essay) like this, and I’m sure this kid a decade ago would have liked it too (at least until learning about nginx)
so here we are
Welcome to my humble corner of the Internet. It will be messy, badly written, and maybe useless, but I still find the perspective entertaining. Please do not be offended about what you’ll see here. Respectfully, I don’t know you (or do I? “VSauce theme intensifies”) and you don’t know me, so nothing personal here. And do not hesitate to reach out if you want to, I’m happy to talk about tech or (almost) anything else really! So again, hello, world!
Footnotes
-
I know that’s why major versions exists, but when one is released yearly with only one year of LTS updates, it’s difficult to expect a website built in 2022 to be safe. https://nextjs.org/support-policy ↩
-
It took me a while to understand why my VPS was killed by the provider because I apparently started attacks on IPs I don’t even know. https://www.cve.org/CVERecord?id=CVE-2025-55182 ↩