Company

Shipping is still the hard part. Tofu makes it the short one.

Tofu is the ship-it layer for vibe-coded apps: your agent wrote it, Tofu ships it. This page is why it exists, what it believes, and what it does today — the parts that are not built included.

It runs on your laptopwritten with your agent
Then, before it goes liveYour agent calls
  1. Host it at a real addressdeploy
  2. Give it a databasedatabaseCreate
  3. Your domain, with HTTPSdomainConnect
  4. Let its users sign inappAuthConfigure
  5. Read the logs when it breaksgetRuntimeLogs
  6. Go back to a version that workedrollback

Livecorner-bakery-3f9a1c07b2e4.trytofu.app

Why Tofu

Writing the app got fast. Shipping it did not.

An afternoon with a coding agent now ends with something that runs: a working page, a small app, one database table. The stretch after that has not moved. Hosting it, giving it a database, pointing a domain at it, letting its users sign in, checking that it is really up — that is a pile of accounts and dashboards, and none of it is the thing anyone set out to build.

It also breaks in the least useful place. A build that works on a laptop fails on the platform. A key exists on one machine and not in the build. The site loads and does the wrong thing, and there is no log to read.

Your coding agent already writes the code. If you don’t have one yet, describe the app in your own words and Tofu builds it for you. Either way, Tofu closes the last stretch: the app goes live from the conversation it was written in, on one account, and Tofu says what it checked, what changed, what is broken and how to get back to a version that worked.

What we believe

What we would rather build slowly than fake.

  • 01

    Built for agents first

    A delivery layer should treat a coding agent as a real user, not as something added after an API was designed for people. Tofu’s local MCP bridge reaches the same projects, deployments, logs and checks the dashboard does, and the human approves the connection in the browser.

  • 02

    Honest state before a pretty dashboard

    A read Tofu cannot make is reported as unavailable, never as a zero, and a number from a partial read is named as partial. A failed build is reported as failed, and a surface that is not built yet says so instead of showing a plausible mock.

  • 03

    Yours to leave with

    Your code stays yours, and the export is a real one: the source archive Tofu stores, your environment variable names and a documented hand-off for the database. A domain you connected can point somewhere else. Moving a running app and its database is still a manual step rather than a button, and we would rather say that than imply one exists.

What Tofu is today

One path from code to a running app. Each part has a page of its own.

The Free plan and the paid plans are open to everyone. Every plan has limits the service enforces. For a contract, invoices or an uptime commitment (an SLA), tell us what you need. This is what works today.

Hosting & deploys

Let your coding agent send the code — the way we recommend — or import a GitHub repository, which redeploys when you push. Tofu builds it with one of 18 framework presets, checks that its address answers, and keeps every earlier healthy version one restore away.

Hosting & deploys

Managed database

Postgres created in the same call as the deploy, with its settings written into the app as write-only secrets, and moved to your own Supabase organization on request. A paid plan includes managed databases for all your apps together, and Tofu pays for running them.

Managed database

Your domain

A domain you already own, with HTTPS included. On Cloudflare you approve once and Tofu writes the records; anywhere else it shows you the exact records and checks them.

Custom domains

Sign-in & email

“Continue with Google” and email sign-in for your app’s users, with no Google Cloud project and no keys — and their sign-up mail in your app’s name, from your own domain once it verifies.

Sign-in & email

Analytics

Views, top pages and top sources for each app, counted on Tofu’s own endpoint: no cookie, no stored IP address and no third-party script. The numbers are yours.

Analytics

Your agent

Paste the setup message into any coding agent. It checks the client against the size and SHA-256 the message carries before installing it, you approve the connection in your browser, and 108 tools reach the same projects as the dashboard.

Agent & CLI

What Tofu keeps and never keeps, what your agent may do on your account, and what the safety check looks at are on the security page. The documentation walks the whole flow, limits included.

Coming soon.

Tofu’s features can change. When the terms change, we post the new version on the Terms page and update its date; we do not list every change. Keep your own copy of anything you cannot afford to lose.

  • Buying or renewing a domain. Tofu connects a domain you already own.

  • One-click setup with a second DNS provider. Elsewhere Tofu shows you the exact records to add and checks them; on Cloudflare it writes them once you approve, on Cloudflare’s own screen.

By design.

  • A one-click move of a live app and its database. Leaving is real, but it is a documented, manual step.

  • Background workers and scheduled jobs. Tofu hosts request-driven web apps; a resident process is not supported on any plan.

  • A preview deploy for each pull request. GitHub updates follow one branch and one app root per project — no pull-request previews, no tags.

The documentation keeps the longer list, with the reasons.

Contact

Write to us. One address for all of it.

A question before you join, a deploy that went wrong, a sentence on this site that reads wrong, or a security report — it all goes to the same inbox.

To
hello@trytofu.ai
About
  • Questions
  • A deploy that went wrong
  • Feedback
  • Security reports
Write to hello@trytofu.ai

Paste one message. Online in 10 minutes.

Your app, its database, your domain and your sign-in — from the agent you already use.

Start free