Hosted Tiffin · early access
All your apps.
One server.
One price.
ShipTiffin gives you a server of your own with everything an app needs already on it: a database, sign-in, email, file storage and background jobs. Run as many projects as fit, deploy them with git push or let your coding agent do it, and give each one the limit you choose.
Pricing isn’t set yet. Early access: email hello@shiptiffin.com.
- shopUp to 40%Web app · Database · Files · Sign-in
- guestbook512 MBWeb app · Database · Email
- blogAutomaticStatic site · Analytics
- reportsUp to 10%Jobs · Database
- Room for the next one
Everything an app needs is already on the box.
No separate accounts for the database, storage, email or analytics. Each project gets its own, set up when you ask for it.
- Apps
- Next.js, Hono, Bun and static sites. A preview for every pull request, rollbacks to earlier deploys.
- Database
- Postgres 18 for each project, with branches for previews and regular restore points.
- KV
- Valkey, Redis-compatible, for caches, sessions and counters.
- Files
- S3-compatible buckets, private or public, with image resizing.
- Sign-in
- Email and password, magic links, passkeys, and Google, GitHub and other providers.
- Send from any app. Until you connect a mail service, every message waits in a test inbox.
- Jobs
- Queues, crons and workflows. The box pushes each job to your app and retries until it succeeds.
- Logs and analytics
- Logs, metrics, errors and visit counts without cookies, all kept on the box.
- Domains
- Your own domain with HTTPS. Certificates are issued and renewed for you.
How it works
We set up your box.
One server per customer. Nobody else’s apps run on it, and you sign in to its dashboard with your own account.
Describe a project.
Pick its parts in the dashboard, or write them in
tiffin.config.tsnext to your code. Both are the same thing underneath, so you can switch at any time.Ship it.
Push to git, run
tiffin deploy, or ask your coding agent: every operation is also an MCP tool. Each change is planned before it runs, recorded in History, and can be undone.
export default defineConfig({ project: "shop", apps: { web: { framework: "next" } }, services: { postgres: {}, auth: {}, email: {}, }, resources: { maxSharePercent: 40 }, });
$ tiffin plan $ git push tiffin main
Limits per project, not surprise bills.
You pay one flat price for the box. Projects share it on their own: each grows into what’s free, and slows down rather than failing when the box is busy.
When you want a fixed share, give a project a limit: a share of the box, or an amount of memory, CPU or storage. Its database, cache and builds are held to it too, so a side project that suddenly gets busy can’t take the others down, or run up a bill.
Room to grow, and a door out.
Move to a bigger server when you need one. Export any project to a single .tiffin file with its code, data and files, import it on another box, or move it there in one step.
Everything on the box is a standard piece: Postgres, S3-compatible storage, a Redis-compatible store and SMTP. A project that outgrows one server can leave for any platform that speaks them.
What it’s for, honestly.
Good for
- Side projects, experiments and small products
- Apps your coding agent builds and runs for you
- Running many small apps without paying for each one
Not yet for
- Anything that must stay up if one server goes down: it’s one machine
- Work that needs a stable platform today: Tiffin is before version 1.0
Want a box?
We’re letting people in a few at a time. Tell us what you’d run on it.