Local development · Windows 10 & 11

Every project gets its own server.

Devbox runs each project in an isolated stack - Nginx or Apache, PHP workers, MariaDB, HTTPS and a mail catcher - shaped like the server it will deploy to. One shared install per version, one set of processes per project, no hosts file.

Your machine Press a power switch.

A demo of the Devbox dashboard. Each row is a project; each light is a service; the number under it is its port.

How a request reaches your code

The same path as production.

php -S serves one request at a time and ignores your server config. Devbox puts a real web server in front of real PHP workers, so rewrites, upload limits, HTTPS and concurrent requests behave locally the way they will on your VPS.

Each Nginx, Apache and PHP version is downloaded once and shared. Every project runs its own processes from them - Nginx 1.30 with PHP 8.3 next to Apache 2.4 with PHP 8.1, at the same time. Apache runs with working .htaccess files.

  1. 1 Browser https://shop-api.localhost:8443
  2. 2 Devbox proxy - routes by domain :8443
  3. 3 Nginx 1.30 - TLS, static files, rewrites :8000
  4. 4 PHP 8.3 - 4 FastCGI workers :9000–9003
  5. 5 MariaDB 11.4 - its own data folder :3307

What's in the box

Everything a project needs, nothing installed system‑wide.

Packages
Any version, side by side. Node, PHP, Python, MariaDB, PostgreSQL, Redis, MongoDB, Caddy, Nginx and Apache as portable downloads. Pick from official releases, paste a download link, or point at a folder you already have.
Blueprints
WordPress, Laravel or Drupal in one click. Pick Nginx or Apache; Devbox downloads the app, creates the database, writes the config, installs it and gives you an admin login. Every project is laid out the same way: your code lives in public/, Devbox's config in .devbox/.
Isolation
One project can't break another. Each gets its own folder, ports, environment variables, database files and name.localhost address. Stop one, the rest keep running.
HTTPS
A padlock, no warnings. Devbox creates a local certificate authority that can only sign *.localhost names, so a leaked key can't impersonate a real site. Nginx and Apache serve TLS themselves, so PHP sees HTTPS=on.
Databases
phpMyAdmin for every project. One shared install lists each project's MariaDB in its server menu and logs you in. Open it from a project with one click.
Mail
Every email lands in a local inbox. Mailpit catches mail from PHP's mail(), Laravel and anything that speaks SMTP. Your apps are pointed at it automatically; nothing reaches a real inbox.
Terminal
A shell that already knows your project. A docked terminal opens in the project folder with that project's PHP, Node, Composer and WP-CLI on the path. It uses Git Bash when you have it, or PowerShell. Open the project in VS Code with one click.
Processes
See what is actually running. Click a service for its processes, memory, CPU, listening ports, exact command line and recent output. Restart it, kill one worker, or force-stop a stuck service. Crashed PHP workers restart on their own.
Logs
Every service, one pane. Live output from the web server, PHP workers and databases, filterable by service.
Updates
Told when there is a new version. Devbox checks in the background and shows Update available in the title bar, with the release notes, size and checksum before you download.

Config that ships with the code

Commit your server config.

Your project's Nginx or Apache rules and PHP settings live in .devbox/, next to your code. No ports, no machine paths - the same file drops into your server's vhost.

Edit them in the app: every PHP setting shows the value your project actually gets and where it comes from. Changes are checked with the real nginx -t, httpd -t and PHP before they're saved.

.devbox/nginx/site.conf nginx -t passed
# Server block body. Devbox adds listen, TLS and upstreams.
root  public;
index index.php index.html;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass  php;   # PHP workers here, PHP-FPM on your server
    include       fastcgi_params;
}

Why per-project

One shared stack, or one per project.

Shared local stack Devbox
PHP versionsOne at a timeDifferent per project, running together
Web server configOne file for every sitePer project, committed with the code
A broken configStops every siteStops that project; nginx -t / httpd -t catch it first
Local domainsHosts file edits, admin rightsname.localhost, nothing to edit
DatabasesOne server, shared dataA server per project, its own data folder

Early access

Power on.

Install Devbox, add a project, press the switch. Runs per user - no administrator rights needed.

The installer is not code-signed yet, so Windows SmartScreen may say "unknown publisher". Choose More info, then Run anyway.