A zero-configuration, WASM-powered local development environment for Laravel
Diode is a Node CLI app containing a PHP server specifically built to run a local development environment for the Laravel framework. It's heavily inspired by, and built on the work of, the WordPress Playground team.
Note: This is currently in active development and updates can contain breaking changes. Some core Laravel features may be broken or missing when using this tool. If you find a bug, feel free to open an issue!
Installation is through npm and requires Node version >= 16.0.0.
npm install -g diode-cli
To create a new Laravel application in the current (empty) directory, run the create command.
diode create
This will take a minute or two to complete, but then a brand new Laravel application source code should be available in the current directory.
To run the application locally, start the server with the serve command.
diode serve
This will mount the current directory as a virtual filesystem and start listening at localhost:1738
. You can override the port that it's bound to by including the port
option.
diode serve --port=8080
You can run most Composer commands with Diode, passing in the package and options you would natively.
diode composer require laravel/breeze --dev
Artisan commands are also available via the command of the same name.
diode artisan make:model Comment --migration
These are some current known limitations or workarounds when using Diode with Laravel. Most of these are due to the current feature set of php-wasm.
- Composer installations run much slower than natively, as packages are individually downloaded and unzipped instead of using proc_open
- Unless you are using an external database (like RDS), SQLite is recommended
- When running migrations for the first time, you'll have to use the
--force
option to bypass the question about creating a sqlite database for the first time.
Getting started developing PHP applications can be notoriously tricky compared with other languages like JavaScript.
Installing PHP locally has a history of being difficult depending on the OS you're using, and Docker exists but might be a bit complicated for new developers.
I built Diode as a kind of quick-start tool to spin up a local environment, letting you hit the ground running to build an application with Laravel.
If you find yourself wanting more out of a local environment, I suggest trying out something like Docker as the next step! I have a series of YouTube videos and a full course available if you'd like to learn more about using Docker with Laravel.
Have an issue? Submit it here! Want to get in touch or recommend a feature? Feel free to reach out to me on Twitter for any other questions or comments.
This software is licensed under The MIT License (MIT). See LICENSE.md for more details.