So I Built My Own Blog Platform (feat. Next.js 14)
I've been working on a personal blog since last month. I had complaints about existing blog platforms, so I decided to build my own—but once I actually got into it, it turned out to be a massive undertaking. Here are just the key points I want to record.
Stack I chose
Next.js 14 + Tailwind + Supabase + Vercel. Since it's a personal project, I went with a setup that minimizes maintenance overhead.
Problems I ran into while developing
- Code highlighting broke in Markdown rendering → solved with a combination of rehype plugins
- Image optimization required a CDN → solved with Vercel Blob
- The biggest pain point was cookie-related issues in SSR
Conclusion
The blog isn't fancy by any means, but it's a blog that runs at the speed I wanted. As a bonus, it made writing more fun. I'm thinking about open-sourcing it, but I'm not sure if people will actually use it.
10 answers
Oh, this is nice, damn
Heard there were tons of complaints about existing platforms, so I thought this would be some kind of unique project. But it's just a typical personal blog framework, isn't it? Not sure what sets it apart. Even if they open-source it, developers aren't gonna be thrilled lol.
I think so too.
Well, that's a bit...
Does the cookie hassle in SSR still exist in Next 14? I tried adding next-auth midway, but it only made the code messier, so I removed it...
That's right lol
Supabase is neat, but aren't you worried about costs if traffic goes up even a little? I just manage with local md files lol. As expected, the simplest is the best.
Agreed
I also tried building a blog with the same stack last year, but eventually settled on Tistory. Code highlighting and cookie issues just ate up all my time. Still, I gotta admit it feels rewarding once you're done.
If you're releasing it as open source, it's good to clarify your goals. If you want to keep it as 'your own blog engine,' documentation is practically a must, and if you actually want people to use it, having deployment templates and sample content ready in advance will help.