News

Liminal: A Browser-Based IDE for Laravel Powered by WebAssembly

Published Updated
Liminal: A Browser-Based IDE for Laravel Powered by WebAssembly image

Liminal by Andrew Schmelyun is a browser-based IDE that lets you write, run, and preview Laravel applications entirely in the browser — no server setup, no local PHP installation required. It accomplishes this by running PHP 8.4 via WebAssembly.

What's Included

Once you have it running, you get a full development environment in a single browser tab:

  • Code editor — browse and edit files with syntax highlighting for PHP, Blade, JavaScript, TypeScript, JSON, and CSS (powered by CodeMirror 6)
  • Preview pane — navigate routes and see rendered HTML output, with Tailwind CSS v4 injected automatically
  • Terminal — run Artisan commands with command history
  • AI agent — an OpenAI-powered assistant that can read and write files and execute commands on your behalf
Liminal Code Agent
Liminal Code Window
Liminal Preview Window
Liminal App Preview Window
Liminal Terminal
Liminal Terminal Window
Liminal AI Agent
Liminal AI Agent Window
Liminal Tools
Liminal Tools Window

Getting Started

Liminal isn't a Composer package you pull into an existing project. Instead, you clone the repository and build it locally:

git clone https://github.com/aschmelyun/liminal
cd liminal
bun install
cd app
composer install --no-dev --optimize-autoloader
cd ..
bun run build
bun run preview

bun run build packages the Laravel application into public/app.zip, and runs type checking. bun run preview starts a local dev server and opens the IDE in your browser.

Sharing and Syncing

One of the more interesting features is shareable URLs. File changes are encoded directly into the URL, so you can share a link to a working example that anyone can open immediately in their own browser — no account or installation needed.

For local development, Liminal supports folder sync via the File System Access API, which mirrors the virtual filesystem to a directory on your machine. You can also import directly from a GitHub repository or export your work as a .zip file.

Limitations

Running PHP in WebAssembly comes with some trade-offs worth knowing about:

  • No external network access from PHP code
  • The pre-bundled vendor directory cannot be modified
  • SQLite only — no MySQL or PostgreSQL
  • Performance is slower than native PHP

Under the Hood

The project is built with Vue 3, TypeScript, Vite, Tailwind CSS v4, and CodeMirror 6. PHP runs in-browser via the @php-wasm/web-8.4 package.

It's an impressive proof of concept for what's possible with WebAssembly in the PHP ecosystem, and a handy tool for quick prototyping, live demos, or sharing reproducible Laravel examples without spinning up a full environment.

You can find the source on GitHub, or give it a try directly at liminal.aschmelyun.com.

Yannick Lyn Fatt photo

Staff Writer at Laravel News and Full stack web developer.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Live Stream: Building a Social Network in PHP in 48 Hours image

Live Stream: Building a Social Network in PHP in 48 Hours

Read article
Health for Laravel: Kubernetes Probes and Prometheus Metrics image

Health for Laravel: Kubernetes Probes and Prometheus Metrics

Read article
Fast Excel 5.x Adds Streaming Imports and Safer Exports image

Fast Excel 5.x Adds Streaming Imports and Safer Exports

Read article
What We Know About Laravel 14 image

What We Know About Laravel 14

Read article
Difflock: Lint Laravel Migrations and Diff Your Schema image

Difflock: Lint Laravel Migrations and Diff Your Schema

Read article
Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration image

Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration

Read article