Now running Lua 5.1–5.5 and Luau

The Lua & Luau playground that lives in your browser

Write, run, and share multi-file Lua and Luau projects directly in your browser. No local toolchain, execution backend, or account is required.

  • Free and MIT licensed
  • Client-side execution
  • Open source

Built on a stack Lua developers already trust

  • Lua 5.1–5.5
  • Luau
  • WebAssembly
  • CodeMirror
  • React
Run limit
5 s / 30 s
Runtimes
5
Share payload limit
32 KiB
Account required
No
Features

Everything a scratchpad should be. Nothing it shouldn't.

Weblua is deliberately small: a fast editor, real runtimes, and frictionless sharing. No accounts, no project setup, no build steps.

In-browser execution

Lua and Luau run in a dedicated Web Worker through WebAssembly. Output streams as it is printed, Stop ends a run on the spot, and a five-second limit — thirty with long runs on — catches the ones that never end.

Lua 5.1–5.5 and Luau

Choose Lua 5.1 through 5.5 or the Luau language, with Luau's task library and require-by-string paths. Weblua is not Roblox Studio and does not provide Roblox APIs or static type analysis.

Share with a link

Source files, the entry point, and the runtime compress into a URL fragment up to 32 KiB. Input, output, and browser-local project metadata stay out of the link.

Embed anywhere

Copy a lazy-loading iframe for documentation sites that allow embeds. Readers can edit the shared source and run it inline without an SDK or API key.

Source stays local

Normal execution has no code-upload backend. Deployments can optionally enable anonymous Plausible usage events and sanitized Sentry error reports; neither integration intentionally includes project source.

Keyboard-first

Ctrl+Enter to run, Esc to stop, Shift+Alt+F to format with StyLua. Completion and hover docs follow the selected runtime's standard library, with folding and Lua and Luau syntax highlighting.

Showcase

From idea to shared link in under ten seconds

Real runtimes, real output

Weblua executes Lua 5.1 through 5.5 and Luau through WebAssembly rather than simulating output. Language behavior comes from the selected runtime, while the browser host supplies a virtual project filesystem and preset input.

  • stdout and stderr stream in as they are printed
  • Stop any run and keep what it printed
  • Ctrl+Enter to run, Esc to stop
How it works

Three steps. Zero setup.

  1. 01

    Write

    Open the playground and start typing, or load one of fourteen examples—including a multi-file capability tour with modules and preset input.

  2. 02

    Run

    A Web Worker runs the selected runtime and the output pane fills line by line as your code prints. Stop it whenever you like, or let the time limit end it—either way you keep the output and the elapsed time.

  3. 03

    Share

    Copy a source-only project link or iframe. Recipients receive the same files, entry point, and runtime; preset input, output, and saved-project metadata remain local.

Scope

Clear boundaries, fewer surprises

Weblua is a focused browser playground, not a replacement for a full local or Roblox toolchain.

Language runtime, not Roblox

Luau code can use language features such as annotations and generics, plus the task library, but Weblua does not emulate Roblox services, instances, globals, or Studio tooling.

Compile check, not type checking

Check compiles every file and reports syntax diagnostics. It does not run Luau's static analyzer, infer types, or validate a project against Roblox APIs.

Purposefully bounded runs

Runs stop after five seconds, or thirty with long runs on, and whatever printed first is kept. Lua 5.4 also has a 32 MiB runtime memory cap, and URL sharing has a 32 KiB encoded limit; larger projects can be exported instead.

Access

Free to use. Straightforward to self-host.

There are no paid plans advertised here. Use the hosted playground, deploy the static app yourself, or work directly from the MIT-licensed source.

Hosted playground

Use the public browser playground.

$0no account

  • No server-side run quota
  • Lua 5.1–5.5 and Luau runtimes
  • Shareable multi-file projects
  • Source-only links and iframe embeds
Start coding

Self-host

Build the static app and serve it yourself.

MITyour infrastructure

  • Dockerfile and nginx configuration
  • No database or execution backend
  • Optional telemetry stays opt-in
  • Static-host compatible routes
Deployment guide

Source code

Inspect, fork, and contribute on GitHub.

OpenMIT licensed

  • Complete React and worker source
  • Versioned project export format
  • Tests for codecs, storage, and runtimes
  • Public issue tracker
View repository
FAQ

Questions, answered

Is Weblua really free?

Yes. The hosted playground has no account or server-side run quota, and the source is MIT licensed. Individual runs stop after five seconds, or thirty with long runs on, and source links have a 32 KiB encoded-size limit.

Does my code get sent to an execution server?

Normal execution does not upload project source to an execution backend. Sharing compresses source into the URL fragment, which is not part of the HTTP request. A deployment owner may optionally enable Plausible usage events and sanitized Sentry error reports; project source is not intentionally included.

Which Lua versions does Weblua support?

Weblua runs Lua 5.1, 5.2, 5.3, 5.4, and 5.5, plus the Luau language. Select one runtime per project. Luau support covers the language runtime, not Roblox APIs or the Roblox production environment.

Does Weblua type-check Luau?

No. The Check action compiles every source file and reports syntax diagnostics. It does not invoke Luau's static type analyzer, even though Luau annotations and generic syntax can be compiled and executed.

Can I use Weblua offline?

Weblua does not currently guarantee offline startup because it has no service worker or complete PWA cache. An already loaded session can run without an execution-server round trip, and browser HTTP caches may help, but reliable offline mode is not implemented.

How do embeds work?

Weblua generates a lazy-loading iframe whose /embed#c=2… URL contains the same source-only project payload as a share link. On sites that permit iframes, readers can edit files and re-run the project inline.

Can I contribute?

Absolutely — Weblua is developed in the open on GitHub. Issues, feature requests, and pull requests are all welcome.

Your next Lua idea is one tab away

Open the playground, choose a built-in example, or load the multi-file capability tour.

Stop any run and keep its output — or give it 30 seconds with long runs