DEV Community

Cover image for Why I built a modern XAMPP replacement for Windows (and what is still missing)
Shiv Singh
Shiv Singh

Posted on

Why I built a modern XAMPP replacement for Windows (and what is still missing)

I have been teaching PHP on YouTube for years as Nomad Programmer. Most of the people who watch my videos are students in India, and almost all of them start the same way: they install XAMPP on a Windows laptop, because that is what their college lab uses and what every old tutorial shows.

That used to be fine. But the last XAMPP release for Windows I can find is 8.2.12, from late 2023. It ships PHP 8.2 and MariaDB 10.4. When students try to follow a Laravel or Symfony tutorial that needs PHP 8.3 or newer, they get stuck, and they end up asking me how to swap PHP versions by hand inside the xampp folder. Docker and WSL are great, but on an 8 GB laptop with a slow connection they are a big ask for a beginner.

So I built DevStackBox: a free, open-source local PHP stack for Windows with a modern desktop app on top.

What it does
You run one installer and get a working localhost:

Apache 2.4.65
PHP 8.3.31
MySQL 8.4.11 LTS
phpMyAdmin 5.2.2
All of that is bundled, so it works offline after install.

If you need another PHP version, open Services, then PHP, then Versions, and download PHP 8.1, 8.2, 8.4 or 8.5. These are not bundled. The app fetches the official Windows builds from windows.php.net, checks their SHA-256, and extracts them. Then you switch with one click.

Other things in the app:

Start All and Stop All, with each service's status, port and version on one screen
A config editor for httpd.conf, my.cnf and php.ini that takes a backup before every save

Virtual hosts and SSL

A log viewer and a built-in terminal
English and Hindi UI, with dark and light themes
If you are coming from XAMPP, Settings has an "Import from XAMPP" option. To be clear about what it does: it copies your htdocs projects into DevStackBox. It does not move databases yet. For those, export from phpMyAdmin in XAMPP and import in DevStackBox.

It is MIT licensed. There is no account, no telemetry, no site limit and no paid tier.

The stack
DevStackBox is a Tauri 2 app. The backend is Rust and the frontend is React with TypeScript and Tailwind.

I picked Tauri because the app is mostly a control panel for native processes. Rust is a good fit for that work: starting and stopping Apache and MySQL, checking ports, editing config files, and downloading and verifying PHP builds. The UI uses the system WebView instead of shipping a whole browser. The installer is still about 175 MB, but nearly all of that is Apache, MySQL and PHP, not the app.

A few problems that took real work:

Not killing other people's processes. Many users still have XAMPP or WAMP installed. A plain "kill every httpd.exe" would break their other stack. DevStackBox looks up each process's full executable path and only stops the ones inside its own install folder.

Port conflicts. Port 80 is often taken by IIS, Skype or another server. Before starting Apache, the app tries to bind the port itself, so you get a readable error instead of a silent failure.
Safe downloads. PHP zips are size-limited, checked against the SHA-256 that php.net publishes, and extracted into a temporary folder that is cleaned up if anything fails.

The honest limitations

I would rather you hear these from me:

Windows only. Windows 10 and 11, 64-bit. macOS and Linux may come later, since Tauri makes that possible, but they do not exist today.

The installer is not code-signed. A certificate costs money I have not spent yet, and a free signing program for open source turned me down because the project is still small. Windows SmartScreen will show an "unknown publisher" warning. Choose "More info", then "Run anyway", but only after you check the file. The SHA-256 of the v0.1.11 installer is:

FAC8BDD8EBC08D362F37EC540931ABF455F12958DC7E13AA9F5939D9568FC415

You can check it in PowerShell with Get-FileHash .\DevStackBox_0.1.11_x64-setup.exe. All the source is on GitHub.

Missing features. No bundled Composer, no one-click Laravel or WordPress, and no automatic project.test domains yet. These are the next things I want to build.

It is early. Version 0.1.11, built by one person. Expect rough edges, and please report them.

How to try it

Download the installer from https://www.devstackbox.com/download (or GitHub Releases).

Optional but smart: check the SHA-256 above.

Run it (it needs admin rights), open DevStackBox and click Start All.
Open http://localhost and put your project in the www folder, or import your XAMPP htdocs.

Code: https://github.com/DevStackBox/DevStackBox

If you try it, I would love to hear what broke and what you missed most. Issues and pull requests are welcome, and translations are an easy first contribution. And if it saves you some time, a star on GitHub helps other people find it.

Top comments (0)