How RapidKit's workspace architecture eliminates environment drift, cuts setup time to minutes, and lets you manage FastAPI, NestJS, and Go services from a single shared environment.
I used to manage backend projects like this:
/projects/
auth-api/ ← Python 3.10, venv, poetry
billing-api/ ← Python 3.11, venv, pip
user-service/ ← Python 3.10, venv, poetry (different poetry version)
ai-agent/ ← Python 3.11, conda (someone on the team liked conda)
notifications/ ← NestJS (fine, no env problem here)
Every project had its own environment. Every new service meant 20–30 minutes of setup. Every git clone from a teammate ended in "it works on my machine."
Sound familiar?
The Fix: Shared Workspace Environment
The concept is simple: one environment hosts multiple services.
my-workspace/
├── .venv/ ← shared Python env (~150 MB, once)
├── pyproject.toml ← shared dependency config
├── .rapidkit-workspace ← workspace marker
├── auth-api/ ← FastAPI project
├── billing-api/ ← FastAPI DDD project
├── notifications/ ← NestJS project
└── ai-agent/ ← FastAPI + AI module
All services share the same Python version, the same virtualenv, the same tooling. But each service is independently deployable with its own Dockerfile, pyproject.toml, and CI pipeline.
From Zero to Multi-Service Backend
Here's how fast this actually is with RapidKit:
# 1. Create the workspace
npx rapidkit create workspace my-workspace
cd my-workspace
# 2. Scaffold services (pick your kits)
npx rapidkit create project fastapi.standard auth-api
npx rapidkit create project fastapi.ddd billing-api
npx rapidkit create project nestjs.standard notifications
npx rapidkit create project gofiber.standard high-perf-proxy
# 3. Init all services at once (from workspace root)
npx rapidkit init
# 4. Check everything
npx rapidkit doctor --workspace
That last command gives you this:
📊 Health Score:
100% ████████████████████
✅ 12 passed | ⚠️ 0 warnings | ❌ 0 errors
System Tools:
✅ Python: Python 3.11.8
✅ Poetry: Poetry 2.3.1
✅ Go: Go 1.24.4
✅ RapidKit Core: 0.3.8
Projects:
✅ auth-api FastAPI Standard | Tests ✅ | Docker ✅ | Deps ✅
✅ billing-api FastAPI DDD | Tests ✅ | Docker ✅ | Deps ✅
✅ notifications NestJS Standard | Tests ✅ | Docker ✅ | Deps ✅
✅ high-perf-proxy Go/Fiber Standard | Tests ✅ | Docker ✅ | Deps ✅
One command. Full workspace health report.
What Each Scaffolded Project Includes
Every rapidkit create project gives you a production-ready base:
| FastAPI Standard | FastAPI DDD | NestJS Standard | Go/Fiber Standard | |
|---|---|---|---|---|
| Clean Architecture | ✅ | ✅ DDD layers | ✅ | ✅ |
| Docker + Compose | ✅ | ✅ | ✅ | ✅ multi-stage |
| GitHub Actions CI | ✅ | ✅ | ✅ | ✅ |
| Tests | ✅ pytest | ✅ pytest | ✅ Jest | ✅ Go test |
| Linting | ✅ ruff | ✅ ruff | ✅ ESLint | ✅ golangci-lint |
| .env handling | ✅ | ✅ | ✅ | ✅ |
| Health endpoint | ✅ | ✅ | ✅ | ✅ |
| Makefile | ✅ | ✅ | ✅ | ✅ |
Zero config. All baked in.
The Module System: Composable Features
Once your project exists, add features with one command:
cd auth-api
rapidkit add module auth # JWT/session auth
rapidkit add module db_postgres # async SQLAlchemy + Alembic
rapidkit add module redis # caching layer
rapidkit add module rate_limiting # route-level rate limits
rapidkit add module observability # Prometheus metrics + tracing
cd billing-api
rapidkit add module auth # same auth module, same interface
rapidkit add module stripe # Stripe webhooks + billing logic
cd ai-agent
rapidkit add module ai_assistant # multi-provider AI (OpenAI, local)
27+ modules available. Each module:
- Adds pre-configured code in the right layers
- Updates
pyproject.toml/package.jsonautomatically - Includes tests
- Follows the same clean architecture conventions
Live Example: AI Workspace
The my-ai-workspace in rapidkit-examples has two services:
-
ai-agent— FastAPI withai_assistantmodule (multi-provider: OpenAI, echo, support) -
ai-agent-nest— NestJS equivalent
# Clone and run the example
git clone https://github.com/getrapidkit/rapidkit-examples
cd rapidkit-examples/my-ai-workspace
# One command to init everything
npx rapidkit init
# Run the AI agent
cd ai-agent && rapidkit dev
# Test it
curl -X POST http://127.0.0.1:8000/ai/assistant/completions \
-H "Content-Type: application/json" \
-d '{"prompt": "What is RapidKit?", "provider": "echo"}'
Works without an OpenAI key — falls back to local providers automatically.
The VS Code Extension: Workspace Without the Terminal
If CLI isn't your primary workflow, the RapidKit VS Code Extension gives you:
- Workspace Explorer tree — all services visible at a glance
-
One-click service creation — no
npxneeded - Module browser — search, preview, install from the UI
- Live health indicators — real-time service status
- Integrated doctor output — health checks without leaving the editor
Open workspace folder → see all services → click to create/manage. That's it.
Why This Matters for Scaling
The workspace model pays off exponentially as you grow:
| Services | Traditional (separate envs) | Workspace |
|---|---|---|
| 1 | 30 min setup | 2 min setup |
| 3 | 90 min + env drift | 5 min, zero drift |
| 5 | 150 min + conflict debugging | 8 min, single health check |
| 10 | Week of onboarding per engineer | 1 day onboarding for all services |
Onboarding a new engineer to the entire workspace:
git clone <workspace-repo>
cd my-workspace
npx rapidkit init # installs shared env + all project deps
npx rapidkit doctor --workspace # ✅ everything green
Done. One command. Full environment.
Key Takeaways
- Workspace = one venv, many services — no environment drift, consistent tooling
-
npx rapidkit create project <kit> <name>— production-ready service in under 2 minutes -
rapidkit add module <slug>— features composed consistently across services -
npx rapidkit doctor --workspace— full workspace health in one command - Supports FastAPI, FastAPI DDD, NestJS, Go/Fiber — mixed-language workspaces supported
- VS Code Extension — visual interface for the full workflow
Get Started
npx rapidkit create workspace
→ getrapidkit.com
→ Examples repo
→ VS Code Extension
Have you dealt with environment drift in a multi-service backend? What was your solution? Drop it in the comments.
Top comments (0)