Ship vibe-coded apps with zero config.
Auto CI/CD · Auto Docker · AI-powered · Cloud Run · Netlify
Embark removes the gap between "it works on my machine" and "it's live in production".
You want to ship your weekend idea, not spend Saturday writing YAML. Clone, code, push — it's live.
48 hours to build and demo. Embark gives you CI/CD, Docker, and deploy from minute zero. Focus on the product.
Each package deploys independently with its own workflow. Add a service, delete a service — the monorepo adapts.
Spin up 5 different API ideas in one repo. Each gets its own pipeline. Kill the ones that don't work, ship the ones that do.
No DevOps engineer? No problem. Embark enforces quality, generates infra, and keeps your repo clean automatically.
See real CI/CD, Docker, and deploy configs generated in front of you. Learn by reading what Embark creates.
Stop configuring. Start shipping. Embark handles the boring stuff so you can focus on building.
The perfect blend of automation and control.
Let AI generate Dockerfiles, boilerplate, and configs while you focus on building features. You stay in control—every generated file is readable and editable.
Deploy frontend packages to Netlify or any static host. Then embed them anywhere—dashboards, wikis, intranets—via simple <iframe> tags. Publish once, use everywhere.
Work with a beautiful, fast framework that doesn't get in your way. Ship faster, sleep better, spend Friday on what actually matters—not debugging YAML or wrestling Docker.
Three commands. That's it. From zero to deployed.
Everything you need to ship fast, nothing you don't.
Every git commit triggers a pipeline of automations. No config required.
Detects packages without .embark.json and asks you to choose a deploy target: Cloud Run, Netlify, or Other.
Scans packages/ and creates a GitHub Actions workflow for each new package using the template.
Compares existing workflows with the template. If the template changed, offers to update them interactively.
Detects workflows for deleted packages and removes them automatically. No zombie workflows.
Finds packages without Dockerfiles. Choose AI generation (Gemini, Claude, Copilot, Codex) or smart defaults.
Auto-updates the packages table in README.md. New packages appear, deleted ones disappear.
Two packages, two AI models, two deploy targets. Same magic, different paths.
Choose your favorite AI provider and let it generate optimized Dockerfiles for your apps.
by GitHub
npm install -g @github/copilot
by Anthropic
curl -fsSL https://claude.ai/install.sh | bash
by OpenAI
npm install -g @openai/codex
by Google
npm install -g @google/gemini-cli
Install any or all of these CLIs. When you run bun run new-package, Embark will ask which AI provider you want to use for Dockerfile generation.
Set these at GitHub → Settings → Secrets and variables → Actions. Only add what your deploy target requires.
Required when appDeployment: "gcp"
GCP_PROJECT_ID | Google Cloud project ID |
GCP_SA_KEY | Service account JSON with deploy permissions |
GCP_REGION | Cloud Run region (e.g. us-central1) |
DOMAIN | Base domain (e.g. embark.dev) |
Required when appDeployment: "netlify"
NETLIFY_TOKEN | Netlify personal access token |
DOMAIN | Base domain (e.g. embark.dev) |
Required when appDeployment: "cloudflare-pages"
CF_TOKEN_PAGES | API Token with Pages + DNS edit permissions |
CF_ACCOUNT_ID | Cloudflare Account ID |
CF_ZONE_ID | Zone ID of your domain |
DOMAIN | Base domain (e.g. embark.dev) |
Required when cloudflareUse: true — added on top of GCP or Netlify secrets
CF_TOKEN | Cloudflare API token with DNS edit permissions |
CF_ZONE_ID | Zone ID of your domain in Cloudflare |
DOMAIN | Base domain — must match your Cloudflare zone |
Simulate the entire pre-commit pipeline. Make choices and see the magic happen.
Embark automates the boring parts, but you decide what ships and when.
Each package in the monorepo has its own CI/CD pipeline with path filters. When you push, only packages with actual changes are built and deployed. The rest stay untouched. No accidental deploys, no wasted resources.
Each package chooses where it deploys. APIs on Cloud Run, frontends on Netlify — in the same monorepo. The framework adapts per package: Docker + workflow for Cloud Run, just a netlify.toml for Netlify.
Manually edited a Dockerfile? Embark won't touch it. Custom workflow? Preserved. Every automation respects existing files. You can also set your own deploy target in .embark.json — the framework follows your lead.
Up and running in under a minute.
Clone the repo and install dependencies with Bun. That's it — no global tools, no config files.
git clone https://github.com/blpsoares/embark.git
cd embark
bun install
Run the init script to clean up demo files and optionally remove Git history. Start fresh with your own repo.
bun run init
# 🗑️ Removes demo package
# ❓ Remove .git? (optional)
# ✅ Ready for your code!
Run the interactive CLI. Give it a name and description — the full structure is scaffolded for you.
bun run new-package
# 📝 Project name: my-app
# 📄 Description: My awesome app
# ✅ Package created!
Write your code in packages/my-app/src/. Use any framework — Vite, vanilla, React, whatever you want.
# develop with hot reload
bun run --filter @embark/my-app dev
# run tests
bun run --filter @embark/my-app test
Commit your code. Pre-commit hooks auto-generate workflows, Dockerfiles, and update the README. Push to deploy.
git add .
git commit -m "feat: my awesome app"
git push origin main
# 🚀 Auto-deployed to Cloud Run!
A clean, opinionated structure. Every file has a purpose.