En 1994, un sitio web dinámico significaba escribir un programa en C, colocarlo en un directorio cgi-bin y dejar que Apache lo ejecutara con fork en cada solicitud. Treinta y dos años después, el autor lanzó un producto web comercial, marketyour.games, utilizando básicamente la misma tecnología. El producto incluye cuentas de usuario, un panel de búsqueda para creadores de contenido, carpetas para organizarlos, pagos a través de Stripe y correos transaccionales mediante Postmark. Sigue el principio de mejora progresiva y no requiere JavaScript.
La pila tecnológica es BCHS: OpenBSD, C, httpd y SQLite. No hay framework, ni lenguaje de plantillas, ni servidor de base de datos independiente. El programa en C lee las variables de entorno de CGI y genera HTML directamente. El binario está enlazado estáticamente y se despliega reemplazando un único archivo, de modo que las nuevas solicitudes usan la nueva versión sin reiniciar el servidor ni sufrir tiempo de inactividad. Las funciones pledge y unveil de OpenBSD ayudan a proteger el programa, y httpd sirve el contenido desde un chroot. Las dependencias se limitan a libcurl para las solicitudes salientes, libsodium para los identificadores, el hash de contraseñas y la verificación de webhooks de Stripe, y libcjson para el análisis de JSON. Una compilación limpia tarda unos segundos.
El autor valora CGI por sus fundamentos más que por los frameworks. La especificación 1.1, publicada en 2004, no ha cambiado, y comprender HTTP basta para entender CGI. Es independiente del lenguaje y de la plataforma, y mantiene una separación clara de responsabilidades, con un único servidor web que llama directamente a la lógica de negocio en lugar de actuar como proxy inverso hacia un servidor de aplicaciones separado. Las aplicaciones son programas ordinarios que pueden ejecutarse desde una shell y depurarse con gdb.
El enfoque también ofrece un riesgo mínimo en la cadena de suministro, una ventaja significativa tras los recientes ataques a los repositorios de paquetes. Con tan pocas dependencias, hay menos exposición a paquetes comprometidos. El autor sostiene que el declive de CGI estaba justificado en 2004, pero no se sostiene en 2026, y que una aplicación web moderna sí puede escribirse en C.
Fuente: Hacker News · Resumido por HeadlinesBriefing