What is Tissue?
Tissue is a serverless compute platform. You write functions, deploy them with a single command, and they run on a live URL — no servers to configure, no runtime to install, no infrastructure to operate.
The biological metaphor
The platform is named after biological tissue — the organizational layer between individual cells and whole organisms. In biology, tissue is what emerges when specialized cells work in coordination: each cell isolated, self-contained, doing exactly one thing well; the tissue as a whole far more capable than any individual cell.
tissue.systems extends this metaphor across the entire stack:
Cells
A Cell is the basic unit of computation. Each Cell is an isolated JavaScript or WebAssembly module that handles HTTP requests. Cells are stateless — they receive a request, produce a response, and terminate. No shared memory, no persistent local state, no side effects beyond their declared bindings.
Just as biological cells maintain their internal chemistry through a membrane boundary, Cells on tissue.systems are isolated by default. They can only reach the outside world through explicit, declared channels: outbound fetch(), a c3 database binding, or a g7 storage binding.
c3 — Structured data
c3 is the platform's structured data service, backed by SQLite. The name echoes biochemistry: C3 in biology refers to three-carbon molecules — the fundamental currency of cellular chemistry. In tissue.systems, c3 is the fundamental currency of structured information: relational, persistent, queryable.
c3 exposes a clean, familiar API. If you've used a SQL database in a serverless environment before, c3 will feel immediately familiar.
g7 — Object storage
g7 is the platform's object storage service. The name is a numeronym: g + 7 (the seven letters of lycogen) + n = glycogen. The same convention behind i18n and k8s applied to a biological molecule.
In biology, glycogen is how living systems store dense, stable reserves of glucose — compact, inert, available on demand when a cell needs energy or raw material. In tissue.systems, g7 is how your Cells store dense, stable reserves of data: images, documents, compiled assets, arbitrary binary objects.
pulse — Scheduled invocations
pulse is how Cells run on a schedule. A Cell can declare one or more cron expressions in ribo.toml; the platform fires a pulse event at each scheduled time, calling the Cell's pulse(event, env) handler. No incoming HTTP request is needed.
The name echoes the biological metaphor: a pulse is the periodic signal that keeps a system alive between external stimuli.
ribo — The CLI
ribo is the command-line tool that deploys Cells and manages platform resources. The name comes from the ribosome — the molecular machine inside every living cell that reads genetic instructions and assembles proteins from them. In the same way, ribo reads your ribo.toml and assembles a running Cell from your code.
Platform components
| Component | What it is |
|---|---|
| Cell | A JavaScript or WASM function that handles HTTP requests |
| c3 | Per-account SQLite databases, bound to Cells at deploy time |
| g7 | Object storage (files, images, binary data), accessible from Cells |
| pulse | Scheduled Cell invocations on a cron schedule |
| ribo | The CLI for deploying Cells and managing resources |
How a request flows
- A request arrives at
https://<slug>.dev.tissue.systems - The platform routes it to the correct Cell based on the slug
- The Cell's
fetch(request, env)handler is called in an isolated V8 instance - The Cell reads from
env.DB(c3) orenv.BUCKET(g7) if it has those bindings - The Cell returns a
Response
The Cell's isolate is reused across requests for warm performance. Redeploying the Cell immediately routes new requests to a fresh isolate.
Next steps
- Quick Start — deploy your first Cell in under five minutes
- Cells — what Cells are and how to write them
- c3 — persistent SQLite databases
- g7 — object storage
- Pulse — run a Cell on a cron schedule