A Markdown Blog
There's something appealing about making your own website. You can post whatever, and unless you're hunched over your monitor constantly refreshing analytics data, there's something journal-like "let your thoughts out into the universe" about it that social media doesn't quite scratch.
So I got my own domain. But what should I post on it? And through what service? I was stuck for a while as my site rotted on some generic WordPress theme. Then it dawned on me, why not just reinvent the wheel?
Meet A Markdown Blog
Yup! I invented nothing new. I simply wanted total control and knowledge over my site (is it being assiduous or arrogant?).
I wanted to easily convert my Markdown notes, generally taken using Obsidian, and throw them onto the site. No CMS, no fluff or wasted, unused features (it's my responsibility to clutter my codebase!), only me and some good ol' PHP! Something that mattered greatly to me was that I wasn't relying heavily on existing services/creations (website designing sites) and at least not the whole Stack Overflow shuffle where answers miraculously ended up copy-pasted.
Thanks to...
Granted, I did look to a few handy open-source works, namely:
- Prism.js for syntax highlighting in code blocks because, frankly, regex is just not for me.
- Parsedown for a similar reason. I was also more looking forward to the display of the site, something I hadn't had much experience with, instead of the logical side.
This site is my third attempt at this project, and this is the one that has staying power. What started as a simple idea—"What if I could build a blog that works directly with Markdown files?"—has blossomed into a featured-filled publishing system, some more useful than others.
It Just Works
Of course, I did this primarily as a hobby project, just to dabble in front-facing applications. But I found in earlier iterations that my site just didn't feel right. I appreciate an indie site that's clunky, eclectically designed— something reminiscent of surfing the web— but I wasn't replicating that feeling; it was just a bad experience. So I adopted the maybe-tired mantra "it just works" for this project. Everything you interact with on this site should, hopefully, just work as any reasonably experienced internet user would expect. Granted, the test group consisted of one individual: me. So not a great sample. But I hope to learn more about what makes user experience good.
I hate ads.
If you've ever disabled your adblocker, maybe just out of curiosity for what the unfiltered wastelands look like, you'll know using the internet is a horrible experience out of the box. There's clutter everywhere, everything is flashing at you, videos autoplay... all of it is just gross and obnoxious. It made me realize that, although I had no intention of ever implementing ads on this project as it would be antithetical to its point, I really wanted to avoid having junk on here. I'm sure there's a reasonable middle-ground where I can implement not-so-important features and post some not-so-interesting things while also not contributing to the Grand Slop on the internet.
Cool story, what does this do?
Whatever I want it to.
But really, right now it's a pretty standard blog site on the outside.
A few main points about this project.
- No Database Required: Content lives in simple Markdown files
- Obsidian Compatibility: Obsidian notes directly as blog posts
- Tag System: Organize and browse content by tags
- RSS Feeds: Both site-wide and tag-specific
- Callout support: Looks great on any device
- Series support: For any multi-part tales.
- It's the first site I've made that, in my opinion, is not totally hideous.
Looking Forward
While I'll definitely reign over this domain, I also intend to share the backend. It's quite simple to setup and use. With that, I hope to introduce:
- Better image handling
- Integrated search functionality
- Footers.
- Back buttons?
- Centering the arrow in the back-to-top button.