Skip to main content
Container Kit requires macOS 26.0+ with Apple Silicon (M1/M2/M3/M4). Intel Macs and older macOS versions are not supported.
This guide will walk you through setting up your development environment for Container Kit.

Prerequisites

Before you begin, ensure you have the following installed:

Required Software

  • macOS 26.0 or later with Apple Silicon (M1/M2/M3/M4)
  • Xcode Command Line Tools
  • Node.js 20+
  • pnpm package manager
  • Git for version control

Optional Software

  • Apple Container CLI - For container management features

Installation Steps

1

Install Xcode Command Line Tools

Open Terminal and run:
xcode-select --install
Follow the prompts to complete the installation.
2

Install Node.js

Download and install Node.js 20+ from nodejs.org or use a version manager like nvm:
# Using nvm
nvm install 20
nvm use 20
3

Install pnpm

Install pnpm globally:
npm install -g pnpm
4

Fork and Clone Repository

Fork the Container Kit repository on GitHub, then clone your fork:
git clone https://github.com/YOUR_USERNAME/ContainerKit.git
cd ContainerKit
5

Install Dependencies

Install project dependencies using pnpm:
pnpm install
6

Download Apple Container CLI

Download and extract the Apple Container CLI (macOS only):
./scripts/download-apple-container-cli.sh
This script downloads the Apple Container CLI and places it in the correct location for Tauri sidecar integration.
7

Environment Configuration

Create a .env file for Tauri signing (optional for development):
touch .env
If you need to build signed releases, add your signing keys:
# .env
TAURI_SIGNING_PRIVATE_KEY=your_key_here
TAURI_SIGNING_PRIVATE_KEY_PASSWORD=your_password_here
Signing keys are only required for production builds. Development builds do not require signing.
8

Generate Database Migrations

Generate the database schema and migrations:
pnpm db:generate
This command generates SQL migrations from the Drizzle schema and creates Rust migration bindings.
9

Verify Setup

Start the development server to verify everything is working:
pnpm tauri dev
The application should launch with hot reload enabled. Any changes you make to the frontend code will automatically reload.
Zed - Fast, lightweight editor with excellent Rust and TypeScript support Project settings are available in .zed/settings.json - only modify if you need to update specific configurations.

WebStorm

WebStorm - Full-featured IDE with comprehensive tooling (memory intensive)

VS Code

VS Code - Popular editor with extensive extensions
  • Svelte for VS Code - Syntax highlighting and IntelliSense for Svelte
  • Tauri - Tauri framework support
  • rust-analyzer - Rust language support
  • Tailwind CSS IntelliSense - Tailwind CSS class name completion
  • Prettier - Code formatter

Development Tools

Database Tools

  • Drizzle Studio - Visual database explorer (coming soon)
  • DB Browser for SQLite - View and edit SQLite databases

Debugging Tools

  • Browser DevTools - Built into the Tauri webview
  • Rust LLDB - Debug Rust backend code
  • Console - macOS Console app for system logs

Troubleshooting

Build Failures

If you encounter build errors:
# Clean and rebuild
rm -rf node_modules .svelte-kit build
pnpm install
pnpm tauri:build

Database Issues

If you have database migration problems:
# Regenerate migrations
pnpm db:generate

Tauri Build Issues

Check your Tauri setup:
pnpm tauri info
This will display your environment configuration and identify any missing dependencies.

Apple Container CLI Issues

If the Apple Container CLI download fails:
  1. Check your internet connection
  2. Verify you’re on macOS 26.0+
  3. Try downloading manually from the Apple Developer portal
  4. Run the download script again: ./scripts/download-apple-container-cli.sh

Next Steps

Now that your development environment is set up:
  1. Review the Project Structure to understand the codebase
  2. Check out the Available Scripts for development commands
  3. Read the Contributing Guide for coding standards and workflow

Common Development Commands

# Start development server
pnpm tauri dev

# Run type checking
pnpm check

# Format code
pnpm format

# Lint code
pnpm lint

# Generate database migrations
pnpm db:generate

# Build for production
pnpm tauri:build

Getting Help

If you encounter any issues during setup:

Build docs developers (and LLMs) love