Introduction
I decided it was time to move away from bloated CMS platforms and build something lean that fits my workflow. The goal was simple: write in Markdown, manage via Termux, and keep it fast. This weekend, I'll be launching the full version at blog.caeljknet.com.
The Tech Stack
Instead of a database, I’m using a Flask backend that parses Markdown files on the fly. This allows me to keep all my content in version control and edit posts directly from my phone using Neovim.
Key Features:
- Markdown-first workflow: Posts use YAML front matter for metadata.
- Termux Integration: Custom shell commands (
blog,blogpost) for rapid drafting. - Surgical Metadata Parsing: A custom Python-Markdown implementation to handle dynamic title and date extraction.
Design Decisions
I went with a dark, minimalist aesthetic. The UI is built with vanilla CSS to avoid the overhead of heavy frameworks. I wanted it to feel like a "Control Centre"—consistent with my other tools like Jarvis. It’s clean, high-contrast, and mobile-responsive by default.
Deployment & Dockerization
The site is currently running in a local environment, but I'm finalizing the Docker setup for production.
Planned Docker Stack:
- Gunicorn: As the WSGI server for production-grade performance.
- Nginx Reverse Proxy: Handling SSL and traffic routing.
- Alpine Linux Base: Keeping the image size as small as possible.
# Sneak peek of the docker-compose.yml
services:
blog:
build: .
restart: always
ports:
- "5000:5000"
volumes:
- ./app/posts:/app/posts
Conclusion
There's still some polishing to do before the weekend release, but the core engine is solid. Being able to push a new post just by saving a .md file is exactly the workflow I wanted. Stay tuned for the launch!
Comments