Now that this website is finally up and running, it is time to reflect on the choices I made and the steps I took to get here. In this post, I'd like to briefly discuss two fundamental _why_s of bobaekang.com.
This website is built using Gatsby, a popular and powerful static site generator built on top of React.js. This was in fact a deliberate challenge I gave myself, a perfectly happy user of Vue and its wonderful ecosystem.
I believe it was The Pragmatic Programmer by Andy Hunt and Dave Thomas where I first read that I should not marry my favorite piece of technology, whether it being a particular programming language or framework. And based on my own experience, I do believe that trying out new things helps me to not only broaden my perspective but also deepen my understanding of tools I already use.1
So I decided to give React a try.2 But it was a little inconvenient for me to start with "vanilla" React for building a website like this. Gatsby offered a great solution here. Gatsby uses React and comes with handy features and plugins for quickly scaffolding a simple yet powerful app. And its decent integration of Material UI sealed the deal. As a loyal user of Vuetify, an amazing Material Design UI library for Vue, I would have been much grumpier in the process of building this website if I had not had a similar option available.
Overall, I am happy that I choice Gatsby! Gatsby eased me into learning the core concepts and syntax of React while taking care of routing, parsing markdown files, providing basic file structure, etc.--all of which would have significantly slowed down and distracted me from getting to know React and creating something with it.
If learning React by trying it out was the only goal, I could have built something different. So why bobaekang.com? Perhaps more importantly, why now?
My answer to this question is closely tied to recent changes in how I view myself. The tagline for this website is "Chicago-based social scientist turned software engineer." Until recently, I saw myself primarily as a social scientist. Or, less pretentiously, a researcher who studies social phenomena. After all, both my BA and MA degrees have to do with social science disciplines and "Research Analysis" is my current job title.
Sure, I was already enjoying building pieces of software however simple they might be. It was a new kind of fun I didn't know as a social science student who mostly just read and wrote. But I never thought that this small fun could be the focus of what I do... until recently. Working on my current project then gave me a sort of gradual epiphany. Building something to make a direct, lasting, real-life impact on how a government agency will share criminal justice research? Well, this is actually a lot more exciting than yet another research project!
Meanwhile, I also fell in love with the free and open-source software (FOSS) community and its culture. People here are truly passionate about what they do and dedicated to sharing with others what they know and have. Having greatly benefited from this community and culture, I now feel inspired to be get involved and start giving back.
For me, starting bobaekang.com is thus about making this commitment publicly, commitment to my newfound focus on software development and FOSS community. That is why I decided to start now even though I don't have any good-looking projects to showcase yet. (They will come later, I hope 😅.)
So here it is, the very first website of my own! It is only a simple app with minimal design, but I am committed to keeping it alive and making it better.
And it would be amazing if, one day, someone will find what I share here interesting and, better yet, helpful. I keep fingers crossed 🤞.
- I also thought about Svelte, which seems to be finally getting attention it deserves since launching its v3.0. I love the ideas behind Svelte: no virtual DOM, smaller bundle size, compiler as framework, etc. In the end, however, I decided to be a little more strategic by going with React, which has a larger community, meaning more resources and opportunities.↩