Why I built this blog with PHP in 2026

Why I chose Nginx, PHP-CGI, and file-based content for a small engineering blog.

This blog is a place to publish notes, but it is also an exercise in understanding the path from an HTTP request to the final document. I decided not to begin with a framework larger than the problem.

A small runtime

Nginx serves static files and forwards everything else to PHP over FastCGI. PHP interprets the URL and places pre-generated HTML inside a server-rendered template.

GET /en/posts/example
    β†’ Nginx
    β†’ PHP-CGI
    β†’ generated HTML

The writing pipeline is separate from the serving runtime. A build script will handle Markdown and syntax highlighting. The production server only needs to read the resulting HTML.

Deliberate simplicity

Navigation uses links, and future data submission will use HTML forms. JavaScript is reserved for features that genuinely belong in the browser, such as copying code.

This architecture is not an answer for every service. For a personal engineering blog, however, it keeps the system small while leaving room to work directly with server rendering, URL design, caching, and persistent data.