I finally decided to build my own personal site. After being a reader for so long, it felt like time to actually have a small corner of the internet to dump my thoughts into. For this project, I went with Next.js.
There’s nothing particularly philosophical about the choice. Since I’m already familiar with React, using Next.js just felt more efficient. I didn't have to learn a whole new paradigm from scratch; I could just use what I already knew to build something more capable. Next.js handles a lot of the technical heavy lifting like server rendering and code splitting automatically, so I could actually focus on the content instead of getting a headache over basic configuration.
One of the things I like most is the static site generation. All the HTML pages are generated during the build process rather than being created on the fly when someone visits. You can really feel the difference in loading speed. Since the server doesn't have to work hard for every single request, the site feels incredibly light.
Next.js also gives me the flexibility I need. I can leverage my React knowledge while still getting built-in features like image optimization and mature routing. I also treat this site as a bit of a playground. I can try out the latest React features in a real-world scenario without the fear of breaking a major project.
I also took this opportunity to mess around with design. I chose Tailwind CSS for the styling. Combining Next.js with Tailwind has actually been a great way to practice building designs exactly the way I want them.
Of course, there are downsides too. Using Next.js makes the setup and deployment process a bit more complex compared to just using a simple static site. For someone just starting out, it might feel like a bit of a hurdle. But for my current needs, the extra cost in complexity is well worth it.
Everything doesn't have to be perfect on the first try. Building this site has actually given me the space to keep learning and experimenting. In the end, Next.js just felt like the right choice for what I needed.