BoxRouter

Previews

Builds on Common Methodology

Times from launching a Vite development server inside a sandbox until its public preview URL returns the HTTP 200 response to the job host, split into Server and URL Reachable.

App-building agents and interactive web IDEs start a development server inside a sandbox and hand the user a public preview URL to view the live app and receive Hot Module Replacement (HMR) updates over a WebSocket.

The Previews benchmark launches a pinned Vite 8.3.4 development server on port 5173 and measures how long the sandbox's public preview URL takes to return its first valid HTTP 200 response (URL ready), splitting that wait into the server's in-sandbox startup time (Server Listening) and the remaining process-launch and routing time (URL Reachable).

Once the preview URL is live, the benchmark measures the Time to First Byte (TTFB) of 100 sequential HTTP GET requests over a kept-alive connection and tests whether a WebSocket upgrade (vite-hmr) succeeds through the preview proxy.

View the Procedure View Previews Results Download Raw Data View the Parameters

Metrics

Previews is the duration from launching the Vite development server inside the sandbox until its public HTTPS preview URL returns its first valid 200 OK response (ok) on /ping.txt.

Timed Part Starts Ends
Start server The process start request is dispatched. The process start call returns.
Server Listening The sandbox clock reading immediately before server launch. The first successful localhost response, measured by the sandbox's own clock.
Preview URL ready First GET sent just before server start. First GET returning HTTP 200 with body ok.

Measurement

Each trial uses a sandbox created from BoxRouter's pinned standard image with port 5173 exposed as a public preview URL, running a pre-bundled Vite 8.3.4 archive (previews-app.tar, verified by SHA-256).

  1. Create sandbox with a port 5173 preview.
  2. Upload and verify Vite archive.
  3. Open the preview URL (timed, not charted).
  4. Preview Ready Time Poll the preview URL. Timed The job host starts polling the public preview URL every 0.01 s while simultaneously launching node node_modules/vite/bin/vite.js inside the sandbox and polling 127.0.0.1:5173/ping.txt inside the guest every 0.01 s.
  5. While launching Vite (start-server). Timed
  6. Polling 127.0.0.1:5173 (server-listening). Timed
  7. Send 100 sequential GET /ping.txt requests on a kept-alive connection (request).
  8. Test a vite-hmr WebSocket upgrade (websocket). The harness times a WebSocket upgrade with subprotocol vite-hmr and verifies its connected message.
  9. Destroy the sandbox.

Scope Limits and Caveats

  • Only providers that expose the previews capability through BoxRouter are measured (others show Not Supported); URL Reachable includes both process.start dispatch and the provider's edge routing proxy.
  • Both url-poll and server-listening sleep 0.01 s between attempts, so both readiness durations carry up to that much polling quantization plus any request in flight when Vite begins listening.
  • The request GET calls reuse the connection from url-poll, so DNS lookup, TCP connect and TLS handshake time is excluded from request TTFB while distance to the provider's preview ingress is included.
  • Vite runs with allowedHosts: true and skipWebSocketTokenCheck: true so the benchmark script can test HTTP and WebSocket routing directly without a headless browser.

Failures and Exclusions

Outcome classifications, top-up rounds, and outlier rules follow Common Methodology; the first failed step ends the trial without in-trial retries.

Providers that do not support public preview URLs through BoxRouter are shown as Not Supported. A trial succeeds only when Vite binds locally, the public preview URL returns HTTP 200 with body ok, all 100 GET requests succeed, and the sandbox is confirmed destroyed.

Step Time Limit
Create 5 min
Upload app 5 min
Open preview 60 s
Start server 60 s
Server Listening 2 min
Preview URL ready 2 min
Requests through preview 30 s
WebSocket upgrade 10 s
Destroy 5 min

Statistics

Based On
Common Methodology

Per-unit percentiles, bootstrap confidence intervals, and tail rules follow Common Methodology.

A provider is ranked once it has at least 20 successful trials.

Sandbox and Trials

Image Digest
sha256
Image Version
0.3.11
Image Registry Page
View on the Registry
Pull the Image
docker pull ghcr.io/boxrouter/standard-image@sha256:89d4c97048dbdfb8b6d85ad91833962ff38d1c334a5f47e6de80a9762310191b Copy
Lifetime
15.0 min
Access
Public
Ports
5173
Idle Connection Time
5.0 min

From Common Methodology

Idle Connection Exceptions
Provider Rule File Transfer Idle Time
Daytona The SDK has no idle-timeout setting. Its command channel keeps its connection open, and its file-transfer channel reconnects after 5 s of idle time. 5.0 s

From Common Methodology

Network Path Attempts
10

From Common Methodology

Mode
Single
Sandboxes per Trial
1
Parallel Trials
10
Concurrent Sandboxes
1

Provider Requirements

Required
Previews

At a Glance

Metrics
  • Preview Ready Time Time · Milliseconds (ms) · Lower Is Better
  • Server Listening Time Time · Milliseconds (ms) · Lower Is Better
  • URL Reachable Time Time · Milliseconds (ms) · Lower Is Better
  • Request Time to First Byte Time · Milliseconds (ms) · Lower Is Better
  • WebSocket Connection Success Count · Count · Higher Is Better
Statistic
Median
Clock
Job-host clock
Machine Size
2 vCPU / 4 GiB
Trials
60
Variants
  • Vite 8.3.4 development server on port 5173

All Methods

Previews

Times from launching a Vite development server inside a sandbox until its public preview URL returns the HTTP 200 response to the job host, split into Server and URL Reachable.

App-building agents and interactive web IDEs start a development server inside a sandbox and hand the user a public preview URL to view the live app and receive Hot Module Replacement (HMR) updates over a WebSocket.

The Previews benchmark launches a pinned Vite 8.3.4 development server on port 5173 and measures how long the sandbox's public preview URL takes to return its first valid HTTP 200 response (URL ready), splitting that wait into the server's in-sandbox startup time (Server Listening) and the remaining process-launch and routing time (URL Reachable).

Once the preview URL is live, the benchmark measures the Time to First Byte (TTFB) of 100 sequential HTTP GET requests over a kept-alive connection and tests whether a WebSocket upgrade (vite-hmr) succeeds through the preview proxy.

Metrics

Loading results…

Measurement

Loading results…

Scope Limits and Caveats

Loading results…

Failures and Exclusions

Loading results…

Statistics

Loading results…

Sandbox and Trials

Loading results…

Provider Requirements

Loading results…