The startup starter that actually delivers.

Most starter kits suck. Takeout sucks less. One 2 and Tamagui 3 for web and truly native apps. 100% native UI, with SwiftUI, Jetpack Compose, and direct access to native APIs. All wired up, with the docs.

Better Auth for sign-in. Drizzle and Lime Sync for live data. Deploy to Cloudflare Workers, with SQLite in a Durable Object and uploads in R2. One app, live across clients.

Docs

$

bun install

Free and open source.

takeout-cli

$

Ultra high quality apps on every platform shipped faster than slop

Takeout is the result of a many-year effort to create a new stack, with some new frontend tech that dramatically simplifies cross-platform development. It makes three things simpler and faster than before: framework, data, and UI.

One 2 handles routes and rendering. Tamagui 3 shares UI across web and React Native. Better Auth handles sign-in, and Drizzle defines the SQLite schema. Lime Sync brings Zero's client and query model to Cloudflare Durable Objects.

The backend runs on Cloudflare Workers. SQLite lives in a Durable Object, Lime Sync runs in its own Durable Object, and R2 stores uploads. The demo you can sign into here runs on this stack, deployed from GitHub Actions.

Goals

Universal

Target iOS, Android, Web and Desktop using React and React Native with fully shared code that feels native and runs fast. You don't have to share everything, you don't have to target every platform - but you can, with ease.

DRY and simple

A single repo, package.json, bundler, framework, and router. A single set of routes, hooks, and helpers. A single way to do styling, UI, and data. All of your backend, frontend, and infrastructure, defined in code, deployed with a push. Data queried and mutated quickly, safely, simply, and optimistically, with no glue.

Truly native

A top-tier experience on every platform, served from a single Vite app and file system route setup:

A website with great Lighthouse scores, all the latest CSS features, and perfectly hydrated static or server rendered pages (even when using spring animations, media queries, and light/dark mode, etc).

A web app that can be client-only and look and feel great despite having fully shared code with a performant site.

And of course, 100% native UI on iOS and Android. One 2 exposes SwiftUI, Jetpack Compose, native navigation, Liquid Glass, and Material components, with direct access to native APIs.

Fast, both ways

Fast in both development speed and runtime performance.

Low risk

Run locally with SQLite, then deploy the same app to Cloudflare. Your schema, queries, mutations, and permissions stay in one repository. The framework, UI, auth, and sync libraries are open source.

AI-native

Point a coding agent at Takeout and prompt an entire app into production in hours. Project instructions, typed routes, a shared UI package, and agent skills give agents a cohesive app to work on.

In the box

One 2 brings file-based routes, loaders, static generation, and server rendering to Vite. Share routes and app code across web and React Native, with Metro handling native builds.

One 2 gives you access to any native API through React Native and native modules. Built-in features include cameras, maps, notifications, haptics, and secure storage. On iOS, that extends to purchases, background tasks, widgets, and Live Activities.

Use platform UI directly, share app logic, and add your own native code wherever your product needs it. Explore One 2's native features.

Tamagui just gives you so much good stuff in a vertically integrated package, it's hard to beat. With version three, a lot of hard work is finally paying off.

Native feels amazing, and web catches up with all the latest styling features. It's also great for LLMs, and generates customized skills.

Read the Tamagui documentation with too much to list.

Lime Sync

Zero, adapted to Cloudflare Durable Objects. Lime Sync uses Zero's client and query model. Our Rust sync engine, packaged as orez-lite, runs as WebAssembly in a Cloudflare Durable Object. It syncs live queries from the application database to clients and supports optimistic mutations.

The Zero client and our on-zero helpers give the app typed queries, shared mutations, and permissions. Drizzle owns the SQLite schema; Lime Sync connects it to the UI.

Read the Lime Sync documentation

Cloudflare, SQLite, and R2

A Worker serves the site and API. A SQLite Durable Object owns application data, a second Worker hosts Lime Sync, and R2 stores images and uploads. GitHub Actions builds and deploys both workers when you push to main.

Better Auth and Drizzle

Better Auth handles email and password sign-in, sessions, and the demo login. Drizzle defines tables and migrations in TypeScript. Both use the same application SQLite database, alongside the feed and comments.

We built Takeout for ourselves, much like Tamagui and One. They're passion projects born out of stubbornly wanting better things. We hope you enjoy this somewhat early version of our new stack.

- Nate