# Why a Blog?!

> In this post I explain why I decided to start a blog in the middle of 2025

- By: Antônio Miranda (https://antmiranda.dev)
- Published: November 28, 2025
- URL: https://antmiranda.dev/blog/opening/creation-of-the-blog
- Tags: introducao

## Why start a blog in the middle of 2025?

Well, I've never really been one to consume blog content, but lately I've been trying to get off social media. As a result, I end up reading a lot of blogs...
I see this as an opportunity to have my own space, where I can say whatever I want, write however I want,
without worrying about algorithms, comments, or whatever else. Here, I'll share my knowledge, thoughts, cool projects, and much more...

## What was I trying to build?

I'm a huge fan of the format/layout of project documentation sites, à la [Better Auth](https://better-auth.com/docs).
So, before building my blog, I went on a long journey to figure out how those sites are made, and drawing inspiration from them,
I built my own version completely from scratch.

Complete with a sidebar menu, a Table of Contents (TOC), and much more, I wrote the documentation
for a few different projects, and in doing so, I tested the tool quite a bit, running it for
about 60 days at work.

In the future, I'll write a dedicated post about it.

Now, I decided to adapt the logic to work on a blog,
turning the documentation layout into a blog, which was actually as simple as
removing the sidebar and header.

From there, I started adding my fluid, personal visual signature, like that lovely page Navigation
on your right (if you're on a computer), with simple, fluid animations, that scroll
indicator on the left, super simple and fluid, as well as several other simple, fluid details and animations
that make all the difference. Want another example? Reload the page and watch that subtle blur
before the content is revealed.

## Which technologies did I use?

After all, this is a dev's blog, so I can't skip talking about the technology used to build it.

  - **Vite**: Ultra-fast build tool for frontend development
  - **React**: Library for user interfaces
  - **Tailwind CSS**: Utility-first CSS framework
  - **Motion**: Animation library for React
  - **Shadcn UI**: Reusable UI components
  - **Aceternity UI**: Modern visual components
  - **MDX**: Markdown with JSX for rich content

Noticed there's no backend? That's because there really isn't one, and I'll explain why in a second.

## Are the posts dynamic?

Yes and no. All posts are written in Markdown using MDX, and are stored directly in the project's code,
much like the library docs I mentioned earlier.

Even though all the React content you're seeing right now was rendered at runtime,
they aren't dynamic in the sense that I can edit them instantly at any moment,
but they are dynamically processed at runtime.

### Why did I do it this way?

Simple: since this is a personal blog, and I'm the one writing the posts, I prefer to write this way. That way,
I also don't have to worry about login security, databases, etc., for a project that doesn't require those
features.

## How does reading and processing MDX files work?

**Writing the Posts**

Posts are written in `.mdx` files inside the `src/content/blog/` folder.
Each file contains frontmatter (metadata) and the content in Markdown with JSX.

**Automatic Importing**

During the build, Vite uses `import.meta.glob` to automatically import all `.mdx` files,
creating an object with all the available posts.

**Real-Time Processing**

When you visit a page, the MDX is processed by React at runtime,
converting Markdown + JSX into functional React components.

**Final Rendering**

The custom MDX components (like Note, Step, Card) are applied,
along with the Tailwind styles, resulting in the page you see.

This approach is perfect for personal blogs: simple, secure, and it lets you
use all the power of React in your posts without unnecessary complexity.
