A complete Dart workspace, in your browser tab.

Start from a template, write code with full language support, run servers, install packages, and share a live link. Nothing to install. Local and remote containers work through the same workspace.

Booting
1import 'dart:io';2 3const page = '<h1 style="font-family: system-ui">Hello from Dart</h1>';4 5Future<void> main() async {6  final server = await HttpServer.bind('0.0.0.0', 8080);7  server.defaultResponseHeaders.removeAll('x-frame-options');8  print('Listening on port ${server.port}');9 10  await for (final request in server) {11    request.response12      ..headers.contentType = ContentType.html13      ..write(page);14    await request.response.close();15  }16}
Terminal
:8080
Booting container
  • Load Dart Containers SDK
  • Load release manifest
  • Start Dart compiler
  • Start Dart runtime
  • Write project files
  • Resolve pub packages
  • Launch project

That is a real project, not a video. Press Run for real to start a container and open its live URL.

Step 1

Pick a template

Web servers, APIs, realtime apps, Flutter, or a blank project.

Step 2

Watch it boot

A local or remote Dart VM starts, with files and tools ready to use.

Step 3

Build and share

Edit with full language support, run it, and open a live URL.

Features

Everything a Dart workspace needs. Nothing to set up.

The pieces you would expect from a desktop setup, brought together in one tab with local or remote execution.

A real Dart VM, local or remote

The official Dart runtime runs in your browser when supported and uses a remote container otherwise. Nothing to install.

Full language support

The same Dart Analysis Server that powers IDEs runs alongside your code: diagnostics as you type, completions, hover docs, rename, and formatting.

A real shell

A POSIX shell with a proper terminal: pipes, redirection, and the Dart command line, including run, test, analyze, format, and pub.

pub.dev, on demand

Add packages to pubspec.yaml or run dart pub add. Dependencies resolve against pub.dev and mount without a full download.

Live URLs for anything that listens

Start a server and it gets a public https address you can open, embed, or send to a teammate.

One workspace

Local or remote, the same tools.

Run in your browser when supported, or send work to a remote container. Remote mode keeps a client copy of your files so an idle container can be recreated.

Templates

Start from something real.

Each template is a working project you can change, run, and preview immediately.

Flutter

Flutter, compiled and rendered in your browser tab.

The Flutter templates build with the current stable release, locally or remotely. Edit a widget, press Run, and the app restarts with your change. Games, web views, and widget previews all work the same way.

Current stable Flutter
Flutter 3.47.2 with Dart 3.13.2, built in a local or remote container.
Restart on Run
Edits rebuild the app in place while the compiler stays warm.
Widget previews
@Preview annotations render as live variants, with PNG capture.
Real packages
Flame, webview_flutter, and whatever else your app needs from pub.dev.
Try it

Run Dart right here.

Edit the program and press Run. The first run starts a local or remote Dart VM; later runs reuse the same workspace.

Output

Preparing live examples…

SDK

Build your own Dart experiences.

Everything on this site is built on the Dart Containers SDK: a library that starts a local or remote Dart environment and lets you drive it like a machine. Files, processes, packages, language tooling, Flutter, and networking, all from a few lines of code.

The same API is available in the browser, in Node, and from Dart itself.

import DartContainer from "https://sdk.dart.land/sdk-0.1.60+dart-3.13.2+flutter-3.47.2/dart-container.js";

const container = await DartContainer.boot({
  runtime: { host: "browser", engine: "jit" },
});

await container.fs.writeFile("main.dart", "void main() => print('Hello from Dart');");
const process = await container.spawn("dart", ["run", "main.dart"], { output: true });
for await (const chunk of process.output) console.log(chunk);

One CDN import, with local or remote execution and no bundler.

Live examples

Every capability, runnable.

Each example starts a container on the first run and reuses the workspace afterwards. The output is real.

Boot a container

One call selects local or remote execution, starts the Dart VM, and returns a container you can drive like a machine.

~3 s first time
import DartContainer from "https://sdk.dart.land/sdk-0.1.60+dart-3.13.2+flutter-3.47.2/dart-container.js";

const container = await DartContainer.boot({
  runtime: { host: "browser", engine: "jit" },
  workdirName: "playground",
});

console.log(container.info.dartVersion); // 3.13.2
console.log(container.workdir);          // /playground
console.log(container.capabilities.process.pty); // true
Live output

Preparing live examples…

API overview

Small surface, real capabilities.

  • DartContainer.boot()

    Start a local or remote container with a chosen runtime, working directory, and network policy.

  • container.fs

    mkdir, readdir, readFile, writeFile, rename, rm, stat, and recursive watch.

  • container.spawn()

    Run dart or a POSIX shell, with streaming output, stdin, signals, and PTY resize.

  • container.pubGet() · pubAdd()

    Resolve and mount pub.dev packages through a hosted, verified resolver.

  • container.on('port')

    Detect listeners the moment they open and receive public preview URLs.

  • DartContainer.lsp

    Spawn the Dart Analysis Server and speak LSP: diagnostics, completion, refactors.

  • container.flutter

    Compile Flutter web apps and render @Preview widgets from the container filesystem.

  • container.mount() · export()

    Load a project tree in one call and export it back as JSON or a zip.

Choose where your code runs

Use local execution where supported or select a remote container. Automatic mode chooses a supported runtime for the browser.

Real Dart, real packages

The official SDK, the official analyzer, and pub.dev. What works locally works here, including servers, shells, and Flutter.

Made for embedding

Docs with runnable examples, interactive courses, support tools, or a full IDE like this one. One import, no build step.

What's inside

Current stable Dart and Flutter, pinned per release.

Every release pairs one Dart SDK with one Flutter SDK and the tooling built for them, so what you test is what you ship. This site is pinned to the release below.

Dart SDK
3.13.2
Stable channel. Every template, terminal, and live example runs it.
Flutter
3.47.2
Paired with this Dart release for the Flutter templates and widget previews.
SDK release
0.1.60
Immutable release this site is pinned to. The stable channel selects the current one.
Language tooling
Dart Analysis Server
Version-paired with the SDK, running inside the container.
Packages
pub.dev
Resolved through a hosted resolver and mounted on demand.
Dart command line
run · test · analyze · format · pub
The real tools, from the shell or from the SDK.
Browser
Modern browsers
Runs locally where supported and automatically uses remote containers elsewhere.
Node
26.7.0
For the Node package, which runs the same container API outside the browser.

Want to use the SDK in your product?

We're onboarding teams gradually. Tell us what you're building and we'll be in touch.

Request access