Quick update: I’ve pushed several documentation and production-related updates based on the feedback here.
Clarified Titan’s positioning (not a Node/V8 replacement; JS-first → single native Rust binary).
Added clearer docs around routes, actions, and runtime APIs.
Documented the update flow (tit update) and internal migrations.
Expanded logging docs for better visibility during dev and production.
Production output is a single Rust binary (no Node.js dependency), and a production-ready Dockerfile is now documented.
For context: Titan is a backend framework, not a competitor to nginx. nginx + Node is a well-understood and effective setup; Titan’s goal is different — removing Node from production, tightening the runtime surface, and enabling Rust-managed, multi-threaded request handling behind any reverse proxy (including nginx).
JavaScript is used for authoring and development, and the embedded JS runtime (Boa) is part of that workflow. In production, Titan runs as a single native Rust binary, avoiding Node’s event-loop-based runtime model and its associated operational overhead.
Latest docs:
https://titan-docs-ez.vercel.app/docs