html/sandbox
Build Complete HTML Projects in Your Browser
Develop multi-file HTML applications with folders, assets, CSS, JavaScript and a professional online workspace — the point where a page stops being a snippet and becomes a site.
index.html
about.html
assets/
logo.svg hero.webp Inter.woff2
styles/
base.css layout.css
scripts/
nav.js form.js
01 platform
Where a page stops being a snippet
Four thresholds turn a page into a site, and a three-pane editor cannot cross any of them. This is what a real workspace is for.
-
The second page
index.htmlandabout.htmlneed a link between them that actually navigates. A single-document editor has nowhere for the second file to go. -
The first real asset
A logo, a hero image, a self-hosted font. Referencing them means a directory and relative paths that resolve — which a concatenated preview cannot provide.
-
The stylesheet you split
One
styles.cssbecomesbase.cssandlayout.cssaround the two-hundredth line.@importand multiple<link>tags both need real files. -
The thing you want to keep
A snippet is disposable. A site has a history worth committing, a version worth branching and a copy worth pushing to GitHub.
02 deep dive
Images, fonts and paths that resolve
Assets are the first thing that breaks in a snippet editor and the first thing a real workspace has to get right.
Relative paths work because there is a real directory. ./assets/logo.svg from index.html and ../assets/logo.svg from pages/about.html both resolve, exactly as they would on a server.
Self-hosted fonts load. Drop a .woff2 into the project, @font-face it, and the preview uses it — which is the only way to check how a face actually sets before committing to it.
Images keep their dimensions. Testing a layout against real artwork rather than a gray placeholder is the difference between a design that survives contact with content and one that does not.
Everything travels together. Export the project as a zip and the assets go with it, with the folder structure intact and every path still pointing where it did.
- paths
- real, relative
- fonts
- self-hosted woff2
- images
- svg, webp, png
- export
- zip, structure intact
@font-face {
font-family: 'Inter';
src: url('../assets/Inter.woff2') format('woff2');
font-display: swap;
}
03 workflow
From one page to a committed site
No scaffold, no dependency install, no server. This is the whole thing, start to first commit.
- new project → HTML
- index.html, styles.css, app.js
- new file → about.html
- upload → assets/hero.webp
- referenced from 2 documents
- git init && git commit -m "site"
- [main c41d8b7] site · 19 files
-
Uploading an asset is part of the project
Images and fonts live in the tree beside the markup that references them, so exporting or committing takes them along.
-
The repository is real Git
Commits, branches and history through
isomorphic-git, working offline and pushing to GitHub when you want. -
It survives the tab closing
Projects, assets and history live in your browser's storage, so reopening is instant and needs no connection.
04 features
What the workspace gives a web project
The tools below are the ones a multi-page site leans on once it is past a single document.
-
A real file tree
Create, rename, move, nest and delete. Folders behave like folders, and moving a file updates nothing you did not ask it to.
-
Find and replace across files
Search every document at once with regular expressions — the only sane way to rename a class used on nine pages.
-
An npm panel
Import a library by name into a
type="module"script. The import map is written for you and travels with the project. -
Real Git
Stage, commit, branch, diff and read history. Import a repository from GitHub and keep working against it.
-
Asset management
Upload images and fonts into the tree and reference them with ordinary paths. They export and commit with everything else.
-
An integrated terminal
A shell surface over your project files, for when typing is faster than clicking through a tree.
-
Per-project file history
Restore points and auto-save, so an edit that went wrong is a click back rather than a rewrite.
-
Everything on the device
Projects are stored locally and work with no connection. Nothing is uploaded to a server.
05 pipeline
How a site grows here
Four stages, none needing a machine you have configured — the argument for a browser workspace over a local one for anything you did not start.
-
One document
index.htmlwith a stylesheet and a script. Where a snippet editor would also be adequate, and where most projects stop being adequate a day later. -
Pages and assets
A second document, a shared header, images and fonts in
assets/. Relative paths start mattering, and a real directory is what makes them work. -
Structure and packages
Split the stylesheet, add a module or two, pull in a library from npm. The tree becomes something you navigate rather than scroll.
-
Commit and hand over
Commit the history, then push to GitHub or export a zip. What leaves is ordinary HTML, CSS and JavaScript with its folder structure intact.
06 ecosystem
A site that mixes several languages
A plain .html file can sit beside a React component and a Python script; XCODX picks the right handling per file rather than per project.
07 languages
Every language the editor supports
Highlighting and IntelliSense cover 70+ languages. These are the ones XCODX also compiles or executes for you.
Compiled in your browser11
Zero build step. Transform runs on a Web Worker, so typing never blocks.
- JSX
- TSX
- TypeScript
- Vue SFC
- Svelte
- Angular (JIT)
- SolidJS
- SCSS
- Sass
- Less
- Pug
Rendered natively8
Straight to the live preview, no transform in the way.
- HTML
- CSS
- JavaScript
- JSON
- Markdown
- Jupyter (.ipynb)
- SVG
- YAML
Executed on demand22
70+ languages run through a self-hosted Piston engine. stdout, stderr, images and tracebacks land in the console.
- Python
- Java
- C
- C++
- C#
- Go
- Rust
- Ruby
- PHP
- Kotlin
- Swift
- Lua
- Scala
- Perl
- Haskell
- Elixir
- Dart
- R
- Julia
- SQLite
- Bash
- PowerShell
08 questions
The HTML sandbox — common questions
Questions about using this as a working environment.
Can I build a multi-page site here?
Yes. Create as many documents as you need, link between them, and the preview navigates properly. A three-pane snippet editor cannot do this because there is no second document for a link to point at.
Can I upload images and fonts?
Yes, into the project tree. Reference them with ordinary relative paths and they resolve in the preview, export inside the zip and commit with everything else.
Do relative paths work the way they would on a server?
Yes, because the preview serves a real directory. ./assets/logo.svg from the root and ../assets/logo.svg from a subfolder both resolve exactly as they would in production.
Can I use npm packages in plain HTML?
Yes. Install from the npm panel and import by name inside a <script type="module">. XCODX writes a native import map, so no bundler is involved.
Is the Git real?
Yes — genuine Git objects through isomorphic-git. Stage, commit, branch, read history, import a repository from GitHub and push back when you are done.
Is the terminal real, or a mock?
It is a working shell surface over your project files. There is no Node process behind it, so it covers file and project operations rather than arbitrary commands.
How big a project can it hold?
Comfortably a real static site — dozens of pages, stylesheets, scripts and assets. The limit is your browser's storage quota, not a plan tier.
Can I get the site out to host it somewhere?
Yes. Export a zip with the folder structure intact and upload it to any static host, or push to GitHub and deploy from there. It is ordinary source with no proprietary format in the way.
What happens if I clear my browser data?
The project goes with it, the same way deleting a folder removes a local one. That is the trade for storing nothing on a server, so commit and push for anything you would be unhappy to lose.
Does it work on a tablet or Chromebook?
Yes. The workspace is a responsive web app, so a Chromebook or an iPad gets the same file tree, the same preview and the same tooling a laptop does.
Do I need to install anything to use XCODX Studio?
No. XCODX Studio is a browser-based IDE — the editor, the compilers and the preview all run client-side. There is no download, no package manager to set up and no configuration file to write. Opening the editor is the whole setup step.
Where is my code stored?
In your own browser. Projects, file history and Git objects live in local storage on your device and are never uploaded to a server. That also means XCODX works offline: it is a Progressive Web App, so you can install it and keep coding with no connection.
Is XCODX Studio free?
Yes. The editor, the live preview, the 70+ language runtimes, npm installs, Git and the integrated terminal are all free to use.
Can I use XCODX on a tablet or Chromebook?
Yes. The editor is a responsive web app, so a Chromebook, an iPad or an Android tablet gets the same compilers and the same preview a laptop does — there is no desktop-only build, because there is no build to install at all. The layout adapts to the screen rather than shrinking a desktop UI into it.
Can I export a project or move it to my own machine?
Yes. Export the whole project as a zip with its folder structure intact and open it locally, or commit it and push. It is ordinary source on disk from that point on — no proprietary format and no lock-in, which is also why importing an existing repository from GitHub works the same way in reverse.
Nothing to install
Open a web project workspace
A file tree, real assets and version control in under a minute, on whatever machine you happen to be sitting at.
