Zero to Full-Stack in Seconds! Create production-ready applications with a single command.
Bit sets you up with a modern, battle-tested stack:
- 🌿 Monorepo - Simple, organized and scalable from day one (
apps/pb
andapps/web
) - 🐋 Docker - Development environment that "just works"
- 📦 PocketBase Backend - Full-featured backend with admin UI
- ✨ Astro Frontend - Blazing-fast web performance for pages and api endpoints (SSR by default on
bit
) - 🍞 Bun - Incredibly fast JavaScript runtime and toolkit for modern web development (powers bit's DX)
-
Install Bit:
npm i -g @bitbons.ai/bit
-
Create your masterpiece:
bit new my-awesome-project cd my-awesome-project
-
Start to see logs coming in:
bit logs # bit is already running both containers for you
That's it! Visit your creation at:
- ✨ Frontend: http://localhost:4321
- 👔 PocketBase Admin Dashboard: http://localhost:8090/\_/
Command | Description |
---|---|
new [options] <project-name> |
Create a new project [--pb ] [--astro ] |
bit start |
Start development environment |
bit stop |
Stop all services |
bit restart [--skip-build] [target] |
Restart and rebuild services [web, pb, empty for all] |
bit logs |
View containers logs |
bit down |
Delete all containers and volumes |
bit help [command] |
If you need help remembering how to do it |
Command | What it Does |
---|---|
bit deploy |
Ship everything (parallel deployment). Same as bit deploy all |
bit deploy web |
Ship frontend |
bit deploy pb |
Ship backend |
bit deploy --watch |
Wait and verify the deployment is healthy |
bit deploy --dry-run |
Show what would happen without making any changes |
If your app doesn't exist in fly.io, it will launch
first, then deploy
.
You can use --watch
to verify deployment health.
my-project/
├── .env.development # Development-only variables (not committed)
├── apps/
│ ├── web/ # Astro frontend
│ │ ├── src/
│ │ ├── .env # Public environment variables
│ │ └── fly.toml # Frontend deploy config
│ └── pb/ # PocketBase backend
│ ├── pb_data/ # Database and storage
│ └── fly.toml # Backend deploy config
├── docker-compose.yml # Development environment
└── README.md
Create ~/.bit.conf
to use one email/password for PB's superuser (and to fastrack creation):
{
"pocketbase": {
"admin": {
"email": "pb-admin@your-domain.com",
"password": "your-secure-password"
}
}
}
For now, you can deploy in fly.io automagically:
-
Get the fly.io CLI:
curl -L https://fly.io/install.sh | sh
-
Log in:
fly auth login
-
Ship it:
bit deploy # From your project's root directory, to deploy both web and pb
or
bit deploy pb # Deploy PocketBase (db / backend) only bit deploy web # Deploy Astro (Frontend / api) only
Important
If you want to point your domain to the web app, Add a CNAME
entry for your domain pointing to your fly.io web app, and add a free ssl certificate for the domain.
Here's how to do it in details.
Want to make Bit even better? Here's how:
git clone https://github.com/bitbonsai/bit.git
cd bit
npm install
npm link
bit new test-project # Test your changes
Make sure you have:
- 🐋 Docker Desktop
✈️ Fly.io CLI- 🍞 Bun (recommended) or npm
Common hiccups and quick fixes:
- 🐋 Docker not running? Fire up Docker Desktop
- 🔌 Port conflicts? Check if 4321 or 8090 are free
- 🔐 Permission issues? Double-check Docker permissions
- 🫧 Start fresh? Run
bun run clean
Got ideas? Found a bug? We love pull requests!
MIT License - go wild! See LICENSE for the fine print.