The Thorny Path of Building a Blog – My Experience, Failures and Plans
A book is good when it makes you think. An article — when it makes you act.
That was the first pretentious sentence that came to mind while writing this post. Here, I’ll explain why I started blogging in the first place, where the idea of creating a community came from, the issues I faced while building a custom site on Next.js, what my roadmap looks like — and some general takeaways.
Why I Decided to Start My Own Blog
At the beginning of summer, I recalled a quote from The Pragmatic Programmer:
“Learn at least one new language every year.”
My main specialization is the JavaScript ecosystem, but I wanted to try something new — a systems programming language. A language used for writing drivers, operating systems, high-performance software, etc.
I was choosing between C++ and Rust. On one hand, C++ is solid concrete in the IT world; on the other — Rust is positioned as a modern and safer alternative, though with a smaller ecosystem. Without overthinking it, I chose Rust — hip, trendy, new.
I started reading The Rust Programming Language (aka "The Book") and at the same time got curious about the Matrix protocol. But I ran into a problem: the official Matrix server (Synapse) is written in Python, and that means:
High memory usage
Difficult to self-host
Not very privacy-friendly
Metadata leaks are possible (less critical, but still)
There are several alternative Matrix server implementations written in other languages by different teams. But I couldn't shake the idea of building my own — essentially, a protocol fork. I wanted to integrate Tor, add features similar to Telegram, and keep privacy and autonomy front and center.
At the same time, I got the idea to share the whole journey publicly — not just the project development, but also technical insights in general. Eventually, maybe even build a community around it for open source or commercial projects.
I already had a rough foundation for version 2.0 of my personal website, so that gave me the push to continue development and add a blog to it.
Along with the blog, I started a Twitter/X account and plan to cross-post articles on platforms like Medium — maybe even LinkedIn.
Why not just use Medium from the start?
Because I wanted to get hands-on with Next.js and have full freedom on my own domain.
The Pains of Building a Custom Solution
I used the fullstack framework Next.js. For multilingual support — next-intl, for authentication — next-auth. Login is only needed for the admin panel. As ORM, I chose Drizzle.
The fun began during build:
First problem: issues with
next-authduring build — described in this article.Second issue: I didn’t pass the
secureCookie: trueparameter, so the token wasn’t returned. Fix:
const token = await getToken({ req, secureCookie: true, secret: process.env.NEXTAUTH_SECRET })I wanted to use Incremental Static Generation (ISG) for articles — but something went wrong, so for now it's just SSR.
Tiptap and Code
I set up the Tiptap editor. I wanted pretty syntax highlighting using code block lowlight. But the generated HTML lacked color span tags, so I decided to render the article using the Editor tag with editable: false.
The problem is: Tiptap needs the DOM, but I need ready-to-serve HTML for better SEO. So for now, I’m showing code without highlighting, generating plain HTML on the backend.

Deployment and Unexpected Admin Experience
Deployment dragged on for three days. I usually host my projects on my home server. One morning I went to check something — touched the stairs with my foot and the case with my hand — and got electrocuted
Definitely not the kind of server admin experience I was expecting)

Right now, images are a bit oversized and look weird at full container width — I’ll fix that soon)
Overengineering at the Start
At first, I wanted to implement everything at once:
Tags
Search
All types of media...
...but I stopped myself. Started small.
Though, while writing this article, I realized I still haven’t added a delete button in the admin panel)
Roadmap
First thing to add — the ability to delete articles. Then:
Fix image sizes
Fix number formatting (currently shows only 1–9)
Tags (topics, categories)
Roadmap page (projects list, status, tasks, notes)
Possible redesign
Comments for articles
Admin analytics
Article view count
Email subscriptions
Cool 404 page
Meme page when trying to access the admin panel
Article search
Polls under articles or in microblog
Microblog (like a self-hosted Twitter)
P.S. The image size and numbering tasks only popped up while editing this article :)
Conclusion
Should you build your own blog from scratch when there are so many ready-made options?
Depends on your time and goals. If you want to get hands-on with the tech — then yes.
But be ready to tinker a lot.
The source code is on GitHub, but currently only contains a lonely H1 in README.md
If you’re curious to follow the progress — join me on Telegram or Twitter/X.
Happy to hear your feedback!