The author explains that marketyour.games is a fully featured web application built entirely in C and served through the Common Gateway Interface (CGI). According to the article, the product includes user accounts, a search dashboard for creators, folders for organizing content, payments processed with Stripe and transactional emails sent via Postmark, and it follows progressive enhancement without requiring any JavaScript. The technology stack is described as BCHS: OpenBSD as the operating system, the C language for implementation, the OpenBSD httpd web server, and SQLite as the embedded database. The author notes that there is no web framework, no templating engine, and no separate database server; instead, the C program reads CGI environment variables, outputs HTML directly, and opens the SQLite file through its C API. The application is distributed as a single statically linked binary that contains all static assets compiled into memory, plus a SQLite file for persistent data. Only two external libraries are required as build dependencies—libcurl and libsodium—both of which are vendored and built within the project, resulting in a minimal dependency graph. A clean build takes a few seconds and incremental rebuilds finish in less than half a second. Because each HTTP request spawns a fresh CGI process, deploying a new version is as simple as replacing the binary file; the author states that this allows updates without server restart or downtime, as new requests automatically use the updated binary. The article highlights OpenBSD’s security features such as pledge and unveil, and notes that httpd runs CGI programs from a chroot by default, effectively sandboxing the binary to a limited portion of the filesystem. Debugging is described as straightforward: the binary can be executed from a shell, a request can be piped to it, stderr can be monitored, and developers can step through the code with gdb. The author likens this per‑request invocation to serverless architectures, observing that CGI provides a similar model without vendor lock‑in or unexpected costs. The minimal supply chain—just a C compiler and three libraries—is contrasted with typical modern stacks that pull in hundreds of indirect dependencies through package managers, which the author argues reduces exposure to compromised or poorly maintained code. Tooling requirements are also minimized; the author uses classic Vim with no plugins, relying on mature utilities such as sanitizers, valgrind, gdb, ctags, and cscope, which are readily available on any system that can compile C. The absence of a second language eliminates syntax‑highlighting complications and the need for language‑server tooling. Operational overhead is low because SQLite requires no separate server process, configuration, or ongoing upgrades. The author concludes that, despite CGI’s decline in the early 2000s, the model remains viable in 2026 due to cheap process forking on modern kernels, and mentions FastCGI as a simple upgrade path if performance ever becomes a concern. The piece ends with the author’s intention to reuse this stack for future projects.

