wwwwwwwwwwwwwwwwwww

Get Started

Clone, install, and run Takeout in minutes

Prerequisites

For mobile development:

  • iOS: macOS with Xcode 26+
  • Android: Android Studio with JDK 17+

Choose Your Version

Takeout comes in two versions:

Installation

Clone your version:

# free version
git clone https://github.com/tamagui/takeout-free.git
cd takeout-free
# pro version (requires purchase)
git clone https://github.com/tamagui/takeout2.git
cd takeout2

Then install and run the setup wizard:

bun install
bun onboard

Onboarding
Pro

The bun onboard command walks you through project setup. You can re-run it anytime, and it saves progress if you quit early.

When you start, it asks where to begin:

  • full - complete setup from the beginning
  • prerequisites - check required tools
  • identity - customize project name and bundle ID
  • ports - configure development ports
  • ci-runners - set up GitHub Actions
  • production - deploy to a server
  • eject - switch from monorepo to published packages

Prerequisites Check

The wizard verifies you have the required tools installed: Bun 1.0+, Node.js 20+, Docker, and Git. It also recommends optional tools like bunv and fnm for version management. Missing something? It shows install links and lets you continue anyway.

Project Identity

Customize your project’s name, URL slug, and mobile bundle identifier. This updates package.json, app.config.ts, and your environment files. Skip this step to keep the defaults.

Port Configuration

Takeout uses port 8081 by default (TAMA on a phone keypad). Change it here and the wizard updates every config file in the project. It also checks for port conflicts with PostgreSQL (5432), Zero (4848), and MinIO (9090/9091).

CI Runners

Choose how to run GitHub Actions builds. The project defaults to ARM64 Docker images, so you need compatible runners:

  • Warp Runners - fast ARM64, $0.005/min, works out of the box
  • GitHub ARM Runners - native ARM64, requires Teams/Enterprise plan
  • GitHub x64 Runners - free tier, but builds x64 images (won’t run on ARM servers without emulation)

Production Deployment

Ready to deploy? The wizard configures either Uncloud (self-hosted) or AWS SST:

Uncloud sets up your server architecture, database connection, SSH keys, and optionally custom domains with SSL via Let’s Encrypt or Cloudflare. It generates a complete .env.production file.

AWS SST configures ECS deployment with your preferred architecture (Graviton ARM64 recommended for cost savings).

Monorepo vs Published Packages

Takeout includes source code for its packages in ./packages. You can either keep this setup and customize locally, or eject to use published npm packages instead. Ejecting removes the packages directory and switches your imports to @take-out/* from npm.

Development

After onboarding, run in separate terminals:

bun backend # docker compose: postgres, zero, minio
bun dev # web at http://localhost:8081

For mobile:

bun ios # ios simulator
bun android # android emulator

Next Steps

  • Run bun tko to see available commands
  • Run bun tko docs list for built-in documentation

Edit this page on GitHub.