In biology, tissue is what cells become when something binds them into one working thing. That is the product: tissue runs your JavaScript or Rust functions as Cells. Your site, your API, your cron job, each on its own URL, bound into one working thing by what they share: the same databases, the same storage, one bill.
Use tissue for the things you already build: a site with a signup form, an API with a database behind it, a storefront with checkout, a bot that runs every morning. Running a function on a URL is not a new idea; several companies sell it, and most will attach a database on request.
why tissue is better
The difference is what attached means. Elsewhere the database, the storage, the cron, and the login are each their own product with their own meter, sometimes their own company resold through a marketplace. A working product sits on four or five of them, glued together with code only you maintain.
Here it means one config file. A SQL database, object storage, scheduled runs, login, and secrets are each a line or two in it. On Vercel, a password in front of a deployment is a $150/month add-on; here it is two config lines.
ribo explant export, hands you a Cell’s entire existence as one archive: the deployed source, the config, each database as a plain SQLite file, every stored object. What comes out still runs. cell.js is a fetch handler over standard Request and Response — the shape Bun and Deno serve natively and Node serves behind a short adapter — and it imports nothing from us: the attachments arrive on env, so about forty lines hand your function a SQLite handle and an S3 client instead. Other platforms export your data too; what they cannot hand over is the running app, because its first line imports a module that exists on their runtime and nowhere else.the deploy$ ribo deploy; the folder it runs in becomes a Cell: one function, one config, one URL, live a couple of seconds after you press enter.unfoldfold
ribo reads the folder it runs in: cell.js and ribo.toml, the dozen-line config that names the attachments. It uploads the function, publishes the files directory to object storage, and registers the result as a Cell: one folder, one function, one config, one URL. The first deploy mints that URL; every later deploy replaces the code behind it, live a couple of seconds after you press enter. Prefer more machine? Cells are also Rust, compiled to WebAssembly; the deploy runs the build.
a requestthe certificate, then gate if you turned it on, then your function in its own V8 isolate; in that order, on every request.unfoldfold
A request to the URL meets three things, in order. The certificate, issued and renewed for you, on your own domain too if you point DNS at us. Then gate, if you turned it on: the platform’s sign-in screen, checked before your code runs. Then your function, in its own V8 isolate, which starts in under a millisecond: no cold start, nothing to keep warm. The function sees env: every attachment named in the config is a binding on it.
export default {
async fetch(request, env) {
const { results } = await env.DB
.prepare("SELECT * FROM signups ORDER BY created_at").all();
return Response.json(results);
}
}
the lexiconwhat comes attached (c3, g7, pulse, vesicle, synapse, gate, vault) and why every part is named from biology.unfoldfold
Biological tissue is many cells of the same kind working as one unit: muscle, nerve, skin. No single cell runs the organism: each carries its own machinery, and the organism gets its behavior from small units doing one job each. That is how this platform is built, so the vocabulary came from biology:
ribo deploy reads your folder and assembles the Cell.After the deploy it’s a browser: the dashboards show your Cells, databases, files, and the bill. Or hand even the deploy to your editor’s agent: point Claude, Cursor, or any MCP client at tissue.systems/mcp and it deploys, reads logs, and redeploys with a token scoped to what you allow.
what customers have builtfive from the accounts we host, small to large: a link shortener, a static site, a calendar feed, a file drop, a storefront.unfoldfold
The platform is its own first customer: this page is a Cell, and so are the docs, the dashboards, and the sign-in screen.
sign up · free tier, no card.