DEV Community

Cover image for Stop Managing 10 Virtual Environments. Use a Workspace.
RapidKit
RapidKit

Posted on

Stop Managing 10 Virtual Environments. Use a Workspace.

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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 ✅
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

27+ modules available. Each module:

  • Adds pre-configured code in the right layers
  • Updates pyproject.toml / package.json automatically
  • 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 with ai_assistant module (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"}'
Enter fullscreen mode Exit fullscreen mode

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 npx needed
  • 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)