A Modern Web App in C
- ID
- 34687
- Status
- summarized
- Published
- 13 Oct 2026, 12:13 AM
- Fetched
- 13 Oct 2026, 5:58 AM
- Provider
- Hacker News
- Category
- dev-community
- Original URL
- https://prophitt.me/writing/a-modern-web-app-in-c
- Source URL
- https://hnrss.org/best
Summary
- Score
- 7.5
- Created
- 13 Oct 2026, 5:59 AM
- Tags
- Audience
- developerssaas_startup_foundersdatabase_learners
What happened
Corey Prophitt writes that he shipped a commercial web product, marketyour.games, using a BCHS stack—OpenBSD, C, httpd, and SQLite—serving a C CGI binary per request instead of using a framework, container, or templating language. The app has user accounts, a search dashboard, Stripe payments, Postmark emails, and no JavaScript; it relies on libcurl, libsodium, and libcjson, with SQLite and libcjson vendored as single C files. Deploys replace one statically linked binary with no server restart, and OpenBSD's pledge/unveil plus httpd chroot sandbox the CGI process.
Why it matters
For builders evaluating stack complexity, this is a concrete counterexample: a paid product with accounts and Stripe webhooks can run as a statically linked C CGI binary with a SQLite file, two real build dependencies (libcurl and libsodium), and sub-0.5s rebuilds. If your deploy pipeline requires containers or restarts, compare the operational surface—but note the tradeoff that every request spawns a fresh process, and the article does not report traffic or scale data, so treat it as an architectural data point rather than a drop-in replacement. No Malaysia-specific impact is stated in the source.
Discussion angle
CGI's per-request process model was written off in 2004—what would break first if marketyour.games traffic grew: process spawn overhead, SQLite write contention, or the replace-the-binary deploy model?