Overview
I’m the kind of person that learns the best by actually doing it rather than reading through the documentations. So, I decided to work on new project on my own to learn/refine the knowledge I already have. In simple terms, I want to build a project and learn at the same time.
I have been contributing to Forgejo and It’s most on frontend areas. I mostly use Tailwind CSS and Golang Templates, but I feel like I’m not gaining much backend knowledge. Because everytime I try sticking with one programming language, but I always ends up hopping onto some other language. I always find myself working on frontend or documentation or some other non-technical areas, as a result I feel like I have no backend knowledge to speak of. I just graduated, I need strong backend knowledge to successfully finish a technical interview and I don’t think working on frontend is going to help me in anyway.
Hence, I decided to work on project that I honestly like developing and it’s the one I’m going to use for my home lab setups. Addtionally, it will be something that I can show off to my interviewer (or “maybe” in some ways I can monetize with Donations?)
What is the Project?
It’s a home server dashboard application like Heimdall, but with additional features like Managing Docker, and terminal support to access a server via ssh (I believe there’s more to come). I’m going to develop it progressively, and not rushing it in anyway.
First goal of the project is to achieve a prototype version of Home Dashboard, and the features will be added on top of it.
I will keep the project private until I make a decent progression. It will be shared in blogpost soon, once I decided to make it public.
Learning Opportunities?
For the most part, I want to make the most out of it in backend areas and I really want to get stronger in backend aspects.
I will be going to use Go
& PostgreSQL
for the backend and Vue.js
, Vite
& Tailwind CSS
for the frontend.
Obviously, I’m not going to waste time by writing plain CSS from scratch, so I decided to use Tailwind CSS
to make it faster in terms of frontend areas. I will be focussing on backend areas for the most part to learn how and where to use it, and also how to integrate effectively without causing conflicts.
Additionally, I will creating both RPM
/DEB
package for this project. Because I’m interested in package building and management, so this will be a good opportunity. Also I’m going to build Docker image as well, so that other can easily self-host rather than installing a package. See? It’s a win-win in any way I see it.
Conclusion
I feel like its going to be a great opportunity for me to work on this project, mostly because it aligns with my “career + open-source + hobby + interest + solves real word problem” , so I consider this a win-win. In addition to that, I’m using more or less the same tech stack of Forgejo, so it’s basically going to help me work on more difficult and large PRs.