Hello, blog — building a fast static-feel blog with PHP and Markdown

Why I'm starting a blog on nzian.xyz, how it's built (Markdown + PHP rendering, file cache, content stored outside the web root), and what to expect next.

· 2 min read #meta #php #markdown

Welcome to the new blog on nzian.xyz. This first post explains why it exists, how it's built, and what kind of writing you can expect here.

Why a blog (and why now)

I've been freelancing on Laravel + Vue + WordPress projects for years. Most of what I learn ends up in scattered notes, Slack DMs, and chat threads with AI assistants. A blog is the obvious place to consolidate.

Three goals:

  1. Write things down once. If I solve a tricky bug, the writeup helps the next person who hits it (often: future me).
  2. Show how I work — including how I lean on AI tools and platforms as part of my workflow (more on that on /my-team).
  3. Pull better clients. SEO + concrete writeups beat a generic portfolio.

How this blog is built

The whole site is static HTML served by Caddy. I didn't want to bolt on WordPress or a JS framework just for a blog. So I went minimal:

  • Posts live in Markdown files with YAML front-matter, stored outside the web root at /var/lib/nzian-blog/posts/. Web users physically cannot read them; only the www-data user can.
  • A small PHP entry point (/blog/index.php) parses front-matter, renders Markdown to HTML using league/commonmark, and writes the result to a server-side cache file.
  • Subsequent requests serve the cached HTML directly. Editing the source .md invalidates the cache automatically (mtime check).
  • Tailwind handles styling. The prose plugin makes Markdown look good with no extra CSS.
// pseudocode
$post = $blog->getPost($slug);
echo $cache->getOrRender($post, fn() => $renderer->render($post));

What you'll find here

  • Build journals — real problems I'm solving on client projects, with code.
  • Tooling notes — what works, what didn't, why I switched.
  • Career posts — the freelancing-from-Bangladesh angle.

If a topic helps you, subscribe to the newsletter and I'll send the next one.

Thanks for reading.

Share:

Get new posts in your inbox

No spam. One short email per new article — practical PHP, Laravel, devops, and AI-assisted workflows.

Self-Hosting Invoice Ninja: A Complete Guide to Installing, Configuring, and Managing Your Laravel-Powered Invoicing Platform (2026 Edition)

Invoice Ninja is a powerful, open-source (source-available) invoicing, quoting, expense tracking, project management, and time-tracking application built primarily with Laravel (PHP) and a modern React frontend. It serves freelancers, small businesses, and agencies who need professional invoicing without relying on costly SaaS subscriptions like FreshBooks or QuickBooks.

May 19, 2026 · 7 min read

Self-Hosting Bagisto: A Complete Guide to Installing and Configuring the Popular Open-Source Laravel eCommerce Platform

Bagisto is a powerful, free, and open-source eCommerce framework built on Laravel (PHP) and Vue.js. It enables businesses and developers to create fully customizable online stores, multi-vendor marketplaces, B2B platforms, headless commerce solutions, and more. Launched and actively maintained by Webkul, Bagisto stands out for its modern architecture, scalability, and enterprise-grade features while remaining completely free under the MIT license.

May 12, 2026 · 7 min read

Self-Hosting Coolify: A Complete Guide to Your Own PaaS Platform (Laravel-Powered)

Coolify is a modern, open-source, self-hostable Platform as a Service (PaaS) that serves as a powerful alternative to Heroku, Vercel, Netlify, and Laravel Forge. Built primarily with Laravel (PHP), Livewire, Alpine.js, and Tailwind CSS, it enables developers and sysadmins to easily deploy static sites, full-stack applications, databases, and over 280 one-click services on their own servers.

May 8, 2026 · 6 min read

Comments

Powered by GitHub Discussions via Giscus. A free GitHub account is required.