Skip to content

A WASM-powered local development environment for Laravel

License

Notifications You must be signed in to change notification settings

aschmelyun/diode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Screenshot of Diode running in a terminal window

Diode

MIT Licensed Node 16.0.0 or higher Total Downloads

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

Installation is through npm and requires Node version >= 16.0.0.

npm install -g diode-cli

Basic Usage

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

Caveats

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.

Why Build This?

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.

Contact

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.

License

This software is licensed under The MIT License (MIT). See LICENSE.md for more details.

About

A WASM-powered local development environment for Laravel

Resources

License

Stars

Watchers

Forks

Packages

No packages published