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.