Wonjoon Jang

Creating my own blog with a CMS Part 1

I quit my last job and started to work on my own stuff for a while. Reason being, frankly I was bored and I just wanted to do something that I really wanted to do. So I tried focusing on my blog that I had and it didn't necessarily needed to be a "blog"... having some thought about what I really wanted this wonjundev.tech to do I've concluded that I wanted it to be a "service" of a sort.

Where it all begins

Currently I was writing mdx files to write posts. Which were honestly not that bad. However it did have the downsides of having all the post files within the code base folder. Which didn't seem like a way to really scale into a "nice blog service" that is when I decided I needed a backend database where I could save the posts and control which post gets posted.

Making plans for the blog

Making plans even for a side-project requires a pretty specific plan. Overall design, requirements written down to small and detailed lists. I'm not a skilled scheduling and making plans for a project. However I started writing down my requirements inside my notion for things I was going to develop.

After having to do so I went through a process of deciding how I was going to meet this requirements. I could develop a separate backend server using Javascript or golang. Since there were some services that made this process easier I just went with firebase and could easily implement what I wanted.

Making functionalities more clear

Whenever you're developing a new feature it's best to write down as detailed as possible. You have to be precise and very detail oriented.

I managed this by writing down things on my notion board. Whether it's a paper or a memo on your computer. Writing down things and organizing your thoughts can really help your content to really lift off.

Image

Just a simple memo that visualizes and helps you what kind of ideas you might have for you project. Doesn't really need any kind of standard way to do it, whatever works for you is the right way.

Deadlines and meeting requirements

As you can see from the picture above. I had a deadline, or rather what a period of time I wanted to get this done. The key is to set a timeline but be very generous! When you're working 52 hours a day and have other things like going to the gym, meeting friends, truth is that you'll end up being very hasty and probably won't get anything done at all.

So be very generous to yourself. Start with a very simple thing that you can work on. I honestly can say, I started with the very simple CRUD functionalities. creating a post, saving, editing and deleting.

Use a tracker app or something to track your activities.

After you've narrowed things down to small pieces that you're going to focus on, try to track them and tackle them one by one everyday a little bit.

For me, I used an app called Todoist. Writing my tasks in this app and managing them one by one. Also you can set until when you want to get these done. Which really helps with your productivity and honestly having to cross-out the checkbox really gave me sense of satisfactory for completing the tasks I wanted get done.

Researching needed libraries and technologies

When you're developing a functionality you're going to think about how this would actually work. If it's simple enough for your local code to handle, it might not require that much of a task. For me I was trying to create a blog. So I needed somewhere to store the data. Also a module that handled those functionalities. I researched many basic CRUD architectures with a backend server and a database. However it would take me much longer to complete this if I were to create a separate backend server and get it on-live and the database as well. So I decided for this September I would go a bit lighter and not try to ruin the productivity and just get things done.

I was well aware of google firebase so I went with it, it was pretty nice. As firebase has a very easy-way of implementing all backend functionalities I needed. It helped with my speed and I got things done until I wanted to.

Conclusion

What I want to say in part 1 is that what ever you do. Having to do a side project is hard. It requires dedication and effort. To really have it going you'll need to focus and micro-manage tasks everyday even if it's just 10 minutes.

But having the right tools and strategies we can achieve it none the less. Next post I'll start writing my journey of having to create the same blog CRUD with NestJS used as a backend server with a PostgreSQL as a database.

I'll also post how to code in the frontend so that we can fetch codes or even better, create our posts as a statically generated HTML using Nextjs functionalities. Thank you for reading!