Years ago, in April 2021, when I started developing, I used plain HTML, CSS (and a little bit of JavaScript) to make websites. Tough, I was never really good at it.
First, I started making the so-called "Clean Portfolio" , which, well, looks clean, I guess. It was simple and one of the first websites I ever made. At least I already knew how to use Git and GitHub, so it was and still is open source !
However, after some time I really started to hate the design and especially the colors, so a new portfolio had to be made. So I made "Modern Portfolio" . In retrospect, I still think the site is really well done, even though the leftover example looks awful. Nevertheless, I learned a lot from it, even though it was still simple HTML and CSS without any interactive components. Again, this site is also open source on GitHub.
Now we come to the eara where I started to learn a whole JavaScript framework for websites. But what will it be? Astro? Solid? Svelte? React with create-react-app? NextJS...? Well, I didn't really make a choice. I never looked into which of them is the "best" framework. But I think for such simple sites you don't really need to. But to give it away, I chose NextJS. But why? you may ask... well, the answer is simple! A good friend of mine, Flamex , used to have a portfolio (now offline, formerly "flamex.dev") that used to be open source. Since I was new to all this, I just forked his repository and started editing it... a lot. My code was terrible, a lot has changed in the fork, but I ended up with a site I really like!
In fact, I changed so much that I asked GitHub support to remove the 'fork from' my repository, which they surprisingly did!
But the point of using an entire JavaScript framework for a portfolio wasn't just for the sake of using it, but also to learn something new. Granted, it was also so I wouldn't have to update my username or avatar all the time, so I made a quick backend api to return simple JSON data and fetch it on the site.
The Portfolio Card site was fine and all, but I was starting to like it less and less, and at that point I had been using it for two years or so. So, I made something new again! Which is now this website you are looking at right now! Hello and welcome π!
But this time, instead of fetching everything from discord and hardcoding the project list and readme, I built it entirely on top of a database, namely postgresql. Probably a bit (a lot) overkill, but eh, who cares honestly. I still use NextJS, but this time not JavaScript, but TypeScript. I have been using TS long before I started making this site, I just never got around to making my portfolio with it. But something that is relatively new to me is TailwindCSS. When I first started web development, I used to hate Tailwind, you might even find messages of me hating it on my Discord server . But honestly, I never really used Tailwind. I just plugged the playground URL into my previous websites and thought that's how Tailwind worked, which wasn't really fair. And now that I am using TailwindCSS properly in a NextJS project, I really like it. I also use it for wamellow.com . I just think it is much easier to make good looking websites with abstraction layers like Tailwind than to have to write every single line of CSS yourself (plus developers are notoriously bad at naming things). Last but not least, this website is, as always, open source !
Something I've really learned is that I shouldn't dislike things even if I've never tried them, because that could lead to me missing out on awesome tools that I just didn't think were worth my time. Another thing is that following tutorials and just copying them is a total waste of time, you end up with the same code as the tutorial, which may or may not work, but you have no idea why and how it does what, and you will never be able to code anything yourself without following and copying something. Personally, I got off the track of copying tutorials because I found that they never did what I wanted them to do, in terms of features and design. So I just started playing with my code, which led me to really understand what I was doing.
In the time that I have been helping other people learn code, mainly on my Discord server , I have noticed that people are just way too focused on making their code look exactly like it does in the tutorial, and if just one thing changes slightly, they have absolutely no idea what is going on and what is wrong. I've also learned that people tend not to read, errors can be as obvious as possible and they still won't understand what's wrong. Only a few people I've helped over the years have risen up to actually learn the tools and languages they use and become independent, notably [unnamed person] - who I used to teach how arrays [] work; or Noxic - who kinda knows how to code by now, albeit with training wheels. TL;DR: Learning by doing is - in my opinion and experience - the best way to actually learn what you're using.
In between my portfolios, I have obviously worked on a lot of different things, including learning TypeScript, Go-lang, neovim, and many other things. You can find a list of all my open source projects on GitHub.com/Luna-devv .
Even though I really like open source, be it for websites, utilities or libraries, my biggest project, Wamellow (the backend, not the website) is closed source. The reason is that the project has tens of thousands of daily users, and I'm afraid that people will just take all my hard work, for which I get no money, and just publish it as their own. I am aware that the license, the GPL-3.0, requires a copyright notice, among other things, but that has never stopped people from just not caring. While I wish I could just open source the core, I probably won't and never will.
Anyway, thanks for reading my first blog post! I hope to write more here soon π