Skip to content

Tina4Documentation

One framework, four languages, fifty-five features, zero runtime dependencies.

What's new ​

v3.11.13 (2026-04-16) β€” full notes

Typed route parameters gain :alpha / :alnum / :slug / :uuid. Unknown types now throw at route registration so typos surface at boot, not in production. Gallery Try-It opens in a new tab. Ruby's sqlite3 is a runtime dep so tina4 init ruby && tina4 serve works on first run. Thirteen book/framework issues closed.

v3.11.12 β€” sqlite:///X URLs resolve relative to the project root across all four frameworks. DateTimeField ORM reads no longer crash under PostgreSQL. The bogus src/migrations/ directory that confused many users is gone.

v3.11.10 β€” Hot reload rewrite. The tina4 CLI is the sole file watcher; frameworks no longer run their own. Overlayfs / Podman / distrobox spurious-event loop fixed.

How Tina4 reads ​

Pick a language. Each book stands on its own β€” you can read Python cover-to-cover, then pick up the PHP book later and recognise every pattern.

  • Understanding Tina4 β€” Architecture, philosophy, the four-language promise. Read this first if you want the why.
  • Python β€” The reference implementation. Every feature lands here first.
  • Node.js β€” TypeScript-first, native node:http, file-based routing, ESM-only.
  • PHP β€” PHP 8.5, stream_select server, zero composer deps in core.
  • Ruby β€” Rack 3, Puma in production, WEBrick in dev.
  • tina4-js β€” The 1.5 KB reactive frontend. Signals, Web Components, router, API client, WebSocket, PWA, SSE.
  • Delphi β€” FireMonkey cross-platform, FireDAC, REST client, and Twig templates.

Every book has a printable PDF with a clickable table of contents. Every chapter stays in sync with the code β€” release notes, version numbers, and example output are regenerated with every point release.

Sponsored with 🩡 by Code InfinityCode Infinity