Skip to main content

forkstack CLI - instant, isolated development environments using zero-copy database and storage forks

Project description

forkstack

Instant, isolated development environments using zero-copy database and storage forks.

forkstack is a CLI tool for creating fully isolated development environments in seconds. Each developer gets their own copy of your entire stack—database and object storage—without duplicating data or slowing down.

Installation

# Recommended: install script
curl -LsSf https://forkstack.xyz/install.sh | sh

# Or with pip/uv
pip install forkstack
uv pip install forkstack

# Or with cargo
cargo install forkstack --bin forks

Why forkstack?

Traditional development environments share databases or require expensive duplication:

  • Shared dev DB: Developers step on each other's data
  • DB per developer: Expensive, slow to provision, hard to keep in sync
  • Local-only: Can't test with production-like data

forkstack gives you the best of all worlds:

  • Instant creation: New environments in seconds, not minutes
  • Zero cost: Fork-on-write means no data duplication charges
  • Full isolation: Each environment has its own DB and storage
  • Production parity: Fork from production to test with real data
  • Easy cleanup: Delete environments instantly when done

Quick Start

1. Create a config file

Create .forkstack.toml in your project:

[database]
provider = "turso"
organization = "your-org"
production = "my-app-prod"

[storage.uploads]
provider = "tigris"
bucket = "my-app-uploads"
endpoint = "https://fly.storage.tigris.dev"

2. Set credentials

export TURSO_API_TOKEN="your-token"
export AWS_ACCESS_KEY_ID="your-key"
export AWS_SECRET_ACCESS_KEY="your-secret"

3. Create a fork

$ forks create -n alice
Created fork: alice
Database: libsql://alice-your-org.turso.io
Storage:  uploads: s3://my-app-uploads/forks/alice/

4. Use your fork

Point your app at the fork URLs, work in isolation, then clean up:

$ forks delete alice
Deleted fork: alice

CLI Reference

forks create           # Create fork with random name
forks create -n alice  # Create fork with specific name
forks list             # List all forks
forks delete alice     # Delete a fork

How It Works

forks create
    │
    ├── Turso API: Create database branch
    │   └── Zero-copy fork from production DB
    │
    └── S3 API: Copy objects to fork prefix
        └── Full copy (or use Tigris bucket forks)

Database branching uses Turso's native branching—instant, zero-copy regardless of database size.

Storage forking copies objects to a fork-specific prefix. For zero-copy storage, use Tigris bucket forks.

Supported Services

Databases (pick one):

  • Turso - SQLite branches (recommended)
  • More coming soon (Neon, PlanetScale)

Object Storage (pick one):

  • Tigris - S3-compatible with bucket forks (recommended)
  • Any S3-compatible storage

Pattern Benefits

For Individual Developers

  • Test risky changes in isolation
  • Work on multiple features simultaneously
  • Fork from prod to debug with real data
  • Clean up experiments instantly

For Teams

  • No database conflicts between developers
  • Easy code review with deployable branches
  • Staging environments on-demand
  • Safe production debugging

For CI/CD

  • Ephemeral preview environments per PR
  • Cost-effective testing at scale
  • Automatic cleanup after merge

Documentation

Full documentation at forkstack.xyz

Contributing

Contributions welcome! Submit issues and PRs at github.com/russellromney/forkstack

License

Apache 2.0 - Use it however you want.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forkstack-0.1.0.tar.gz (30.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forkstack-0.1.0-py3-none-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file forkstack-0.1.0.tar.gz.

File metadata

  • Download URL: forkstack-0.1.0.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for forkstack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 36b70342e55828397bfb59962260f793193be511e63d99b57ca5ab339b2bd879
MD5 fa844fea634d93114d0401b94a372c0f
BLAKE2b-256 2f4b385ef3bb360c66ea87f6c070f26ba3d0897d1180682038107d2f67bfa914

See more details on using hashes here.

File details

Details for the file forkstack-0.1.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for forkstack-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8649088a4eebf0469387c98300d6109801efef25dfe1c7846413e8e5375fa13f
MD5 e0f8069deea9d40f63ceec7cf0e39916
BLAKE2b-256 062e2ca5fa3eb81ab540279a36ecd0efdd80dad6b1de11080f8f92d14bf22da8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page