Imaginez : un nouveau développeur rejoint votre équipe un lundi matin. Au lieu de passer 2 jours à installer Node.js, Python, PostgreSQL, Redis, configurer les bonnes versions, débugger les conflits de dépendances…
10 minutes plus tard, il lance devbox shell et son environnement est exactement identique au vôtre. Même versions, même configuration, même tout. Il peut commencer à développer immédiatement.
C’est exactement ce que fait Devbox pour vous.
Pourquoi Devbox va révolutionner votre workflow#
Le cauchemar qu’on connaît tous#
Sans standardisation d’environnement, c’est :
🤯 “Ça marche sur ma machine” → le cauchemar de tous les projets
⏰ 2-3 jours perdus à configurer un environnement pour un nouveau dev
💥 Conflits de versions entre projets (Node 16 vs 18, Python 3.9 vs 3.11…)
🔄 Réinstallations infinies à chaque changement de projet
😰 Bugs mystérieux liés aux différences d’environnement
La solution Devbox#
Devbox crée des environnements isolés et reproductibles basés sur Nix, sans la complexité de Nix. Un fichier, une commande, et tout le monde a le même environnement !
Qu’est-ce que Devbox peut gérer ?#
Réponse courte : tous les outils de développement ! 🚀
Languages : Node.js, Python, Go, Rust, PHP, Ruby, Java, .NET… Bases de données : PostgreSQL, MySQL, Redis, MongoDB… Outils : Docker, kubectl, terraform, aws-cli, gcloud… Versions spécifiques : Node 18.17.0, Python 3.11.2, Go 1.21.1…
Un exemple concret#
Pour un projet React + Node.js + PostgreSQL :
// devbox.json
{
"packages": [
"nodejs@18.17.0",
"python@3.11.2",
"postgresql@15.3",
"redis@7.0.11"
],
"shell": {
"init_hook": [
"npm install",
"createdb myapp_dev || true",
"redis-server --daemonize yes"
]
}
}Résultat : Chaque développeur obtient exactement Node 18.17.0, Python 3.11.2, PostgreSQL 15.3 et Redis 7.0.11, avec la base de données initialisée automatiquement !
Démarrage express : 2 minutes pour l’activer#
Étape 1 : Installation de Devbox#
# Installation sur macOS/Linux
curl -fsSL https://get.jetpack.io/devbox | bash
# Ou via package manager
brew install jetpack-io/tap/devbox # macOSÉtape 2 : Initialiser votre projet#
cd votre-projet
devbox init
# Ajouter vos outils
devbox add nodejs@18 python@3.11 postgresql@15Étape 3 : Lancer l’environnement#
# Activer l'environnement
devbox shell
# Ou lancer une commande spécifique
devbox run npm startC’est tout ! Votre environnement isolé est prêt.
À quoi ça ressemble en vrai ?#
L’initialisation d’un projet#
$ devbox init
$ devbox add nodejs@18 python@3.11 postgresql@15
✓ Added nodejs@18.17.0
✓ Added python@3.11.2
✓ Added postgresql@15.3
✓ Updated devbox.json
$ devbox shell
(devbox)$ node --version
v18.17.0
(devbox)$ python --version
Python 3.11.2
(devbox)$ postgres --version
postgres (PostgreSQL) 15.3Le fichier devbox.json généré#
{
"$schema": "https://raw.githubusercontent.com/jetpack-io/devbox/main/.schema/devbox.schema.json",
"packages": [
"nodejs@18.17.0",
"python@3.11.2",
"postgresql@15.3"
],
"shell": {
"init_hook": [
"echo 'Welcome to devbox!' > /dev/null"
],
"scripts": {
}
}
}Cas d’usage avancés#
Exemple : Stack complète React + API + Base#
{
"packages": [
"nodejs@18.17.0",
"python@3.11.2",
"postgresql@15.3",
"redis@7.0.11",
"nginx@1.24.0",
"git@2.41.0"
],
"shell": {
"init_hook": [
"# Frontend setup",
"cd frontend && npm install",
"# Backend setup",
"cd ../backend && pip install -r requirements.txt",
"# Database setup",
"initdb -D .devbox/postgres/data || true",
"pg_ctl -D .devbox/postgres/data -l .devbox/postgres/logfile start || true",
"createdb myapp_dev || true",
"# Redis",
"redis-server --daemonize yes --dir .devbox/redis",
"echo '🎉 Environment ready!'"
],
"scripts": {
"dev": [
"# Start all services in background",
"cd frontend && npm run dev &",
"cd backend && python manage.py runserver &",
"wait"
],
"test": "cd backend && python -m pytest && cd ../frontend && npm test",
"db:reset": "dropdb myapp_dev && createdb myapp_dev && python backend/manage.py migrate"
}
}
}Services en arrière-plan#
{
"packages": ["postgresql@15", "redis@7"],
"shell": {
"init_hook": [
"# Auto-start services",
"devbox services start postgresql",
"devbox services start redis"
]
}
}Workflow d’équipe : adoption en douceur#
Scénario 1 : Nouveau développeur#
AVANT Devbox :
📅 Jour 1 : Installation de Node.js (mauvaise version)
🐛 Jour 1 : Erreurs npm, réinstallation Node 18
📚 Jour 2 : Installation PostgreSQL, configuration
💥 Jour 2 : Conflits avec projet personnel (Node 16)
🔧 Jour 3 : Installation de nvm, réorganisation
😰 Jour 3 : "Ça marche toujours pas..."APRÈS Devbox :
📦 9h00 : git clone du projet
⚡ 9h05 : devbox shell
✅ 9h10 : npm start → ça marche !
☕ 9h15 : Premier café en mode productifScénario 2 : Switch entre projets#
# Projet A (Node 16 + Python 3.9)
$ cd projet-a
$ devbox shell
[devbox] $ node --version && python --version
v16.20.0
Python 3.9.17
# Projet B (Node 18 + Python 3.11)
$ cd ../projet-b
$ devbox shell
[devbox] $ node --version && python --version
v18.17.0
Python 3.11.2Zéro conflit, zéro configuration !
Intégration CI/CD#
GitHub Actions#
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install devbox
uses: jetpack-io/devbox-install-action@v0.7.0
- name: Run tests in devbox
run: |
devbox run test
devbox run lintGitLab CI#
test:
image: jetpackio/devbox:latest
script:
- devbox run test
- devbox run buildEncore plus simple : L’image officielle jetpackio/devbox:latest inclut déjà Devbox installé !
Avantage énorme : L’environnement CI est exactement identique à celui de développement !
Comparaison avec les alternatives#
vs Docker#
| Aspect | Docker | Devbox |
|---|---|---|
| Démarrage | docker run (lourd) | devbox shell (instantané) |
| Partage fichiers | Volumes complexes | Natif |
| IDE Integration | Compliqué | Transparent |
| Ressources | Haute consommation | Légère |
| Courbe apprentissage | Moyenne | Très faible |
vs Virtual Machines#
| Aspect | VM | Devbox |
|---|---|---|
| Performance | Lente | Native |
| Ressources | 2-4 GB RAM | ~50 MB |
| Boot time | 1-2 minutes | 2-3 secondes |
| Isolation | Complète | Juste les packages |
vs Gestionnaires de versions (nvm, pyenv…)#
| Aspect | nvm/pyenv | Devbox |
|---|---|---|
| Multi-language | Non | Oui |
| Reproductibilité | Approximative | Parfaite |
| Gestion globale | Conflits possibles | Isolation complète |
| Configuration | Manuelle | Déclarative |
Réutiliser et partager des configurations#
Import de configurations existantes#
Devbox permet d’importer des configurations depuis d’autres projets ou repositories :
# Importer depuis un autre projet local
devbox add --config ./other-project/devbox.json
# Importer depuis un repo GitHub
devbox add --config https://raw.githubusercontent.com/company/devbox-configs/main/react-stack.json
# Créer un nouveau projet basé sur un template
devbox init --config https://github.com/jetpack-io/devbox/examples/development/react/devbox.jsonPourquoi vous devriez l’adopter maintenant#
ROI immédiat#
⏰ Gain de temps : Onboarding 3 jours → 10 minutes
🐛 Moins de bugs : environnements identiques = moins de “ça marche sur ma machine”
🎯 Focus développement : plus de temps perdu en configuration
😌 Sérénité : switch entre projets sans stress
Adoption sans friction#
🚀 Installation en 1 ligne de commande
📁 Un seul fichier à ajouter au projet (devbox.json)
💡 Courbe d’apprentissage très douce
🔄 Compatible avec vos outils existants
Évolutivité#
👥 Du développeur solo à l’équipe de 100 personnes
🏢 Des startups aux grandes entreprises
🔧 Projets simples aux architectures complexes
🌍 Local development au déploiement
Le secret : Devbox ne change pas votre façon de développer, il élimine juste les problèmes d’environnement. Vous gardez vos habitudes, vos outils, votre IDE… mais sans les galères !
Prêt à dire adieu aux “ça marche sur ma machine” ? Lancez devbox init dans votre prochain projet et découvrez la magie ! ✨
Ressources pour aller plus loin#
🔧 Package search (tous les packages disponibles)