[rondar](/)

[Product](/)[Pricing](/pricing)[Demo](/demo)[Docs](/docs)[Contact](/contact)

[Sign in](/access#access-sign-in)[Request an invite](/access)

[Product](/)[Pricing](/pricing)[Demo](/demo)[Docs](/docs)[Contact](/contact)[Sign in](/access#access-sign-in)

Free SwiftUI playground

# Free SwiftUI playground that runs in any browser.

No Mac. Shareable phone links. Paste one SwiftUI view, or some small files, and click Run. Rondar builds the code and shows the app in a phone frame. Each result gets a public link.

## Run a SwiftUI view

_Form: POST `/swiftui`_

File name  _Field: `files[0][name]` (text)_  SwiftUI source  _Field: `files[0][source]` (textarea)_

**More files (up to 5)**

File name 2  _Field: `files[1][name]` (text)_  Source 2  _Field: `files[1][source]` (textarea)_

File name 3  _Field: `files[2][name]` (text)_  Source 3  _Field: `files[2][source]` (textarea)_

File name 4  _Field: `files[3][name]` (text)_  Source 4  _Field: `files[3][source]` (textarea)_

File name 5  _Field: `files[4][name]` (text)_  Source 5  _Field: `files[4][source]` (textarea)_

Limits: 5 files, 32 KB in total, .swift files only, a build time of 90 seconds. Import only SwiftUI, Foundation, Combine, CoreGraphics. The result and its source are public.

**Action:** Run

## Sample screens

Select a sample to put it in the editor. Then click Run.

[Login](/swiftui?sample=login#playground-editor)

[Contact list](/swiftui?sample=list#playground-editor)

[Settings](/swiftui?sample=settings#playground-editor)

[Profile](/swiftui?sample=profile#playground-editor)

[Counter](/swiftui?sample=counter#playground-editor)

[To-do list](/swiftui?sample=todo#playground-editor)

[List and detail](/swiftui?sample=recipes#playground-editor)

[Welcome steps](/swiftui?sample=welcome#playground-editor)

[Sign-up form](/swiftui?sample=signup#playground-editor)

[Order summary](/swiftui?sample=order#playground-editor)

## What renders

The playground uses the iOS mobile preview of Rondar. It builds your code with SwiftOpenUI on WebAssembly. SwiftOpenUI is an open reimplementation of SwiftUI. It is not the SwiftUI of Apple, so some parts look different and some parts do not render.

This table comes from the test corpus of the mobile preview. A part that is not in the table is not checked.

| Area | SwiftUI parts | Status |
| --- | --- | --- |
| Text | `Text` | Renders |
| Stacks and layout | `VStack, HStack, ZStack, Spacer, padding` | Renders |
| Lists | `List, ForEach` | Renders |
| Forms | `Form, Section` | Renders |
| Buttons and state | `Button, @State, @Binding` | Renders |
| Text input | `TextField` | Renders |
| Navigation, one level | `NavigationStack, NavigationLink` | Renders |
| Images and fonts from the app | `Image("name"), font` | Renders |
| State after a rebuild | `Route and form state that Codable can save` | Opt-in |
| Network requests | `URLSession with mock responses` | Not in the playground |
| UIKit and AppKit | `UIKit, AppKit, UIViewRepresentable` | Does not render |
| Packages and binary frameworks | `Swift packages, XCFrameworks` | Does not render |
| Device services | `Location, Push notifications, Bluetooth, StoreKit` | Does not render |

## Shareable result page

Each run gets a public page. The page shows the app in a phone frame, the source, and a note about the SwiftUI parts that render. A link to the page shows a phone frame image when you share it.

The page has a button "Keep building this with an agent". It opens a new Rondar session that starts from your code. You need a Rondar account for that step.

## How it works

1. You send the Swift files. Rondar checks the size, the file names and the imports.

2. Rondar adds an app entry when your files have no `@main` App. Rondar writes the Package.swift. Your files cannot add a package, a plugin or a macro.

3. A build server compiles the code to WebAssembly with the pinned Swift toolchain, in a new directory for each run. Rondar removes the directory after the build.

4. Your browser runs the app in a sandboxed frame.

## Scope and limits

- SwiftUI views only. UIKit, AppKit and other Apple frameworks are not available.

- No Xcode projects, no Swift packages, no assets and no network requests.

- No Android and no App Store builds.

- At most 5 files and 32 KB. A build stops after 90 seconds.

- Each network address can start a small number of runs in an hour, and the playground has a daily limit.

- Do not paste secrets. Each result and its source are public.

## On this page

[Run a SwiftUI view](#playground-editor)[Sample screens](#playground-samples)[What renders](#playground-support)[Shareable result page](#playground-share)[How it works](#playground-how)[Scope and limits](#playground-limits)

[rondar](/)© 2026 Rondar

[Docs](/docs)[Pricing](/pricing)[Demo](/demo)[Rondar vs Amp](/compare/amp)[Rondar vs T3 Code](/compare/t3-code)[Rondar vs OpenHands](/compare/openhands)[Contact](/contact)[Security](/security)
