- Category
- Developer Tools
- Rank
- No. 1572Tools index
Previous survey · No. 1580 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- vercel-labs
- GitHub
- 52 stars
- Date
About
Web-based Linux desktop environment running on Vercel Sandbox (proof of concept).
What it does
Sandcastle gives each user an isolated Linux workspace controlled through a desktop-style browser interface. Users can manage windows, search for applications, edit files, run shell commands, use browser-hosted VS Code, and interact with streamed graphical Linux applications. Separate workspaces retain independent state, while a prepared machine image speeds creation.
Why it's ranked here
Sandcastle is a substantial demonstration of remote desktop orchestration, not merely a styled shell around a terminal. It connects window management, persistent workspace state, graphical application streaming, file operations, notifications, clipboard handling, and prepared machine images. The repository explicitly warns that it is AI engineered and unsuitable for production, so its value lies in architectural exploration and prototyping.
What's good
The desktop covers unusually complete interaction details: window snapping, keyboard shortcuts, touch controls, theme synchronization, desktop notifications, clipboard exchange, file downloads, custom cursors, and system tray icons. Prepared machine images include graphical applications and development tools, cutting documented workspace startup from roughly two minutes to roughly five seconds. An integration script checks the terminal relay, graphical streaming, editor, and file service together.
Tradeoffs
Running it requires several moving parts: a Vercel account with Sandbox access, Postgres, Node, pnpm, Bun, environment secrets, database setup, and a prepared machine image. Production authentication is unfinished because the included provider integration is only a reference. Prepared images expire and need scheduled rebuilding. Rate-limit checks fail open after logging errors. The authors explicitly classify the project as a proof of concept and not production-ready.
How to use it well
Use Sandcastle to study or demonstrate how a browser desktop can coordinate isolated development machines, remote terminals, graphical Linux software, files, and persistent window state. It best suits prototypes, internal experiments, and architecture spikes where operational complexity is acceptable. Treat the integration script as a baseline health check. Do not use it as a ready-made production workspace service, authentication system, or general local desktop replacement.
Technical notes+
README.md describes a React browser client, Next.js API routes, Neon Postgres, and Vercel Sandbox microVM services on ports 14080 through 14083. package.json defines a private TypeScript application using Next.js 16, React 19, Drizzle ORM, Zustand, SWR, ghostty-web, xpra-html5-client, and @vercel/sandbox, with pnpm for package management and Bun for snapshot and integration scripts. src/stores/xpra-store.ts dynamically loads the Xpra client and bridges windows, canvas drawing, notifications, tray icons, cursors, downloads, URLs, and bidirectional clipboard activity. src/stores/window-store.ts keeps per-workspace window state in Zustand and persists changes through a debounced PUT request. src/lib/rate-limit.ts uses @vercel/firewall, exempts admins, returns HTTP 429 when limited, and allows requests when the check throws.
Observed
- License
- MIT
- Primary language
- TypeScript
- Application surface
- Browser desktop served by a Next.js App Router application
- Package management
- Private pnpm package; setup installs dependencies with pnpm
- Runtime platform
- Vercel Sandbox microVMs with a required Postgres database
- Interfaces
- Browser UI, Next.js HTTP API routes, WebSocket terminal relay, Xpra streaming, and embedded code-server
- Verification surface
- A Bun-driven sandbox integration script checks PTY, Xpra, code-server, and file API services
Read from README.md, package.json, src/lib/swr.ts, src/app/page.tsx, src/lib/utils.ts, src/app/layout.tsx, src/types/window.ts, src/lib/constants.ts, src/types/sandbox.ts, src/lib/rate-limit.ts, src/types/workspace.ts, src/stores/auth-store.ts, src/stores/xpra-store.ts, src/lib/workspace-slug.ts, src/stores/window-store.ts.
What it can do
Provide Linux desktop environment access through web browser
Web browser and internet connection → Interactive Linux desktop interface
Execute Linux commands and programs
Terminal commands or application launches → Command execution results and program outputs
Create and edit files in Linux filesystem
File creation/editing commands or GUI interactions → Modified files and filesystem changes
Run development tools and code editors
Development environment requests → Active coding environment with tools
Install and manage Linux packages
Package installation commands → Installed software and system updates
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
