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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36b70342e55828397bfb59962260f793193be511e63d99b57ca5ab339b2bd879
|
|
| MD5 |
fa844fea634d93114d0401b94a372c0f
|
|
| BLAKE2b-256 |
2f4b385ef3bb360c66ea87f6c070f26ba3d0897d1180682038107d2f67bfa914
|
File details
Details for the file forkstack-0.1.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: forkstack-0.1.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8649088a4eebf0469387c98300d6109801efef25dfe1c7846413e8e5375fa13f
|
|
| MD5 |
e0f8069deea9d40f63ceec7cf0e39916
|
|
| BLAKE2b-256 |
062e2ca5fa3eb81ab540279a36ecd0efdd80dad6b1de11080f8f92d14bf22da8
|