I gave the term "over-engineered" a whole new meaning, when I set out to create the devblabber website.
The goal was to create a simple blog website and learn AdonisJs (v5) which was recently released. Overkill would be an understatement. Took me a couple of weeks to write the UI using React which was totally not neccessary. Then once I headed to the server side. Things got out of hand really quick, I set a postgres server with redis which was the easy part still unnecessary. The project started to get features like people being able to login and comment on blogs. So got sidetracked and looked at how facebook handled comments, likes and etc (I know, I know). This continued for a few more weeks till a couple of months later when I started work and the project just sat there and there was no blogsite.
Simplicity has a habbit of establishing itself despite how we want things to work. Since the blog site wasn't ready and I still wrote notes to myself about things I learn't or wanted to note down, in github gists. Yesterday I was like, I need to get my blog page up and running. This was my thought process, no complicated bullshit just simple one page with list of my notes, with notes linked to the full content. Then it just clicked, I like using gists as a place to write down my notes, and even better they are public. So in about 3 hours I had my blog page ready and deployed.
Keep it simple stupid (K.I.S.S), don't over-engineer. Althought my intentions were good, I picked the wrong project to learn the tool (in this case adonisjs). It was like me trying to cut a piece of paper with a laser-cutter. Pick the right projects when learning tools, understand why the tool needed to be built in the first place.
Tech-Stack Used:
Api: api.github.com
UI:
- NextJs, Typescript: picked it as it's easy to deploy to vercel via github
- Tailwindcss: could have done without, but I find it easy to use
- Dependecies: React-Query, Axios
- Repository
And that was it.