One framework, four languages, 140 features, zero runtime dependencies.
The Intelligent Native Application 4ramework.
Install a popular micro-framework and its dependencies come with it. Install Tina4 and you get Tina4.
Measured on 15 October 2026 with each package manager's own install, latest versions: Flask 3.1.3, Slim 4.15.3 with slim/psr7 (the PSR-7 package its hello-world needs), Express 5.3.0, Sinatra 4.2.1 (resolved from rubygems.org).
Scaffold with the CLI, add a route, return JSON.
tina4 init python my-apptina4 servecurl localhost:7146/api/hello/Ada
{"hello":"Ada"}
{name} in the path arrives in your handler./swagger while you develop, built from your routes.Paste this into Claude, Cursor, Copilot or whatever you already have open. Same prompt, four languages.
Read https://tina4.com/llms.txt and build me a REST API with a Todo model and JWT auth in Python.
tina4 init python todo-apitina4 generate model Todotina4 migratetina4 serveSwagger at localhost:7146/swaggerllms.txt is a bootstrap protocol written for machines. It tells your assistant to drive the tina4 CLI and use the built-ins instead of inventing them.
Zero dependencies, including the AI. Build with AI
Same project shape, same CLI, same ideas. Learn it in Python, then recognise every pattern in PHP, Ruby or Node.js.
tina4 init python:7146Python docs
PHPPHP 8.5, a stream_select server, no composer deps in core.tina4 init php:7145PHP docs
RubyShips its own HTTP server in dev and production. Puma if you add it.tina4 init ruby:7147Ruby docs
Node.jsTypeScript-first, native node:http, file-based routing, ESM-only.tina4 init nodejs:7148Node.js docs
Shipped, in sync, in all four languages. Nothing to add to a requirements file.
src/routes/Drop a file in and it's a route. Typed params like {id:int} and {id:uuid} reject bad input with a 404 before your handler runs./swaggerTyped, grouped API docs generated from your routes./graphqlA zero-dependency GraphQL engine, schema built from your ORM models, IDE included.sqlite:///app.dbOne ORM over SQLite, PostgreSQL, MySQL, MSSQL, Firebird and MongoDB.tina4 migrateMigrations that apply on boot, once, even when several processes start together.FrondOne Twig-compatible template engine: inheritance, macros, filters.ws://WebSocket and server-sent events, with a Redis backplane when you scale out.background()Queues, file-backed by default. RabbitMQ, Kafka or MongoDB when you outgrow it. No threads.BearerPOST, PUT, PATCH and DELETE need a token by default. GET stays public.JWTHS256 and RS256, PBKDF2 password hashing, rate limiting and CSRF form tokens.tina4One Rust CLI. init, serve and migrate behave the same in every language./__devRoutes, requests, SQL runner, queue monitor, mailbox, WebSocket inspector, error tracker.MCPBuilt-in dev tools, so your assistant drives the real framework.v3.13.1512026-10-15v3.13.1512026-10-15Isolation headers and a hardened S3 clientv3.13.1502026-10-11The dev dashboard grows upv3.13.1492026-10-10A CRUD screen out of the box, and the dev-server rough edges come offv3.13.1482026-10-06An anonymous request stores no sessionAcross all four frameworks. Release notes
A 2.3 KB frontend for the browser, skills for your AI assistant, and a reviewer that hands it the context.
The reactive frontend: signals, Web Components, a router, an API client, WebSocket, PWA and SSE. Load only the modules you import.
tina4-js docsimport { signal, html } from 'tina4js';
const count = signal(0);
html`<button @click=${() => count.value++}>
Clicked ${count} times
</button>`;
One command installs the current Tina4 skills for Claude, Codex, Cursor, or all three.
The tina4 CLItina4 skills allA read-only desktop reviewer that understands the Tina4 layout. Leave line-anchored comments, then export a bundle any AI agent can act on. Signed builds for macOS, Windows and Linux.
Download
Two commands install it. Two more and you're serving.
curl -fsSL https://tina4.com/install.sh | shtina4 setupirm https://tina4.com/install.ps1 | iextina4 setuptina4 init python my-apptina4 serve