More Things I Learned While Building My Blog

In my previous post, I talked about some of the key things I learned while building my blog — from setting up Astro to discovering handy CSS tricks like margin-inline and element + element. This post continues from there, covering more insights and questions that came up during the process.

Removing Submodules from a Project

At one point, I experimented with using Git submodules. While they can be useful for splitting large projects or sharing common components, I quickly realized they can also be a headache if you're not careful. I ended up needing to remove one — both from my local directory and GitHub — and learned that it's not as simple as deleting the folder. You need to remove references using Git commands and also make sure your .gitmodules and .git/config files are clean. It was a frustrating but useful experience.

One important lesson I learned during this process was about the build workflow. I initially pushed the submodule first and then ran npm run build to generate the /dist folder, followed by another push to GitHub. The /dist folder contains the final, production-ready version of the site—the static files that get deployed. Running npm run build compiles and bundles my source code and assets into optimized files for the web.

In hindsight, it would have been much simpler to run npm run build before creating the submodule and pushing it. That way, the /dist folder would already be included in the initial push, saving me from having to push twice and making the process cleaner and less confusing.

Keeping the Footer at the Bottom of the Page

I learned why it's important to set height: 100% on both the html and body elements to keep the footer at the bottom of the page, even when there isn't much content. Without setting these heights, the footer might appear somewhere in the middle of the screen if the page is short. By ensuring the body fills the viewport height, the footer stays visually “at the bottom” as intended.

What I Know (and Don't Fully Understand) About flex: 1

One of the layout tricks I used to keep the footer at the bottom of the page was applying flex: 1 to the main content area. I know it's a shorthand for:

I'll be honest — I don't fully understand how all three properties work together just yet. But I do know that using flex: 1 helped the main section take up all the remaining space in the layout, pushing the footer down when the content wasn't tall enough. I plan to explore flex-grow and the rest in more detail later, but for now, it does what I need.

Grid vs Flexbox (And That One Misaligned Card)

Finally, a small but interesting detail: If you noticed that one of the blog cards sits slightly lower than the one beside it — good catch. That's just how CSS Grid behaves when rows start independently. I could've switched to Flexbox for perfect alignment, but I chose to stick with Grid for its responsive flexibility. It's a tradeoff I'm okay with for now.

Overall, building this blog taught me way more than I expected — not just about HTML and CSS, but also about Git, build workflows, and layout logic. I'm still learning, and that's the whole point of doing projects like this.

Git Conventional Commits

I learned about this while committing my markup changes.

While reviewing my Git commit messages with ChatGPT, it pointed out the use of Conventional Commits. I hadn't realized that was the name for the pattern I was already noticing. After double-checking, I confirmed that this is indeed a standard way to write commit messages.