framework/react
React Online IDE & Playground
Build, edit, and preview React applications instantly in your browser. Write modern JSX and TypeScript with fast live updates, zero installation, and a professional online development experience.
import { useState } from 'react';
import { useInterval } from './useInterval';
export default function Ticker({ label }) {
const [ticks, setTicks] = useState(0);
useInterval(() => setTicks(t => t + 1), 1000);
return (
<output className="ticker" aria-live="polite">
{label}: {ticks}
</output>
);
}
01 platform
Why build React here
Most online React sandboxes give you one file and a preview pane. XCODX Studio gives you the editor Visual Studio Code is built on, a real project tree, and the tooling that usually only exists on your own machine.
-
The VS Code engine, not a textarea
Monaco brings IntelliSense, multi-cursor, the command palette, code folding, find-and-replace across files, a minimap and Vim or Emacs bindings. Prettier formats on demand. It is the editing experience you already have muscle memory for.
-
Multi-file projects, not snippets
Split a feature across
components/,hooks/andlib/the way you actually would. Folders, tabs, per-project file history with restore points and auto-save — plus import and export as a zip when you want the code on disk. -
Git that really is Git
Stage, commit, branch and read full history through
isomorphic-git, running in the browser and working offline. Import an existing repository from GitHub and keep committing without leaving the tab. -
Private by construction
Projects are stored locally in your browser. Nothing is uploaded to a server, so a half-finished experiment stays yours. XCODX installs as a PWA and keeps working with no connection.
02 deep dive
What React looks like without a build step
The awkward part of React has never been React. It is the twenty minutes of tooling in front of it. XCODX removes that layer without removing anything you rely on.
JSX is compiled, not interpreted. Every save runs your .jsx and .tsx files through Sucrase, a transform built for exactly this: it strips types and rewrites JSX to React.createElement calls in a few milliseconds and skips type-checking entirely. The work happens inside a Web Worker, so a large component never freezes the cursor.
Hooks behave the way the docs say they do. useState, useEffect, useMemo, useRef and your own custom hooks run against the real React runtime — not a reimplementation. Extract useInterval into its own module, import it from three components, and the Rules of Hooks still apply, because it is genuinely React executing.
Composition scales past the demo. Props drill, context provides, children compose. A page you build here is a normal React tree mounted with createRoot, so patterns you prove in the browser move to a local repository unchanged.
- JSX / TSX
- Sucrase — no type-check, no config
- Runtime
- React 18
createRoot - Where it runs
- Web Worker, off the main thread
- Output
- Plain ES modules the browser executes
import { useEffect, useRef } from 'react';
// A hook is just a function that calls other hooks.
// Extract it once, import it anywhere.
export function useInterval(callback, delay) {
const saved = useRef(callback);
useEffect(() => { saved.current = callback; }, [callback]);
useEffect(() => {
if (delay == null) return;
const id = setInterval(() => saved.current(), delay);
return () => clearInterval(id);
}, [delay]);
}
03 features
What ships with a React project
Everything below is on the moment you open the editor. There is no plugin list to curate.
-
npm without a terminal wait
Search a package, click install. XCODX resolves it through esm.sh and writes a native import map, so
import { create } from 'zustand'works on the next render. Nothing is downloaded to anode_modulesfolder because there isn't one. -
Live preview, four ways
Full width while you focus, split beside the code, inside real device frames for responsive work, or popped into its own tab on a second monitor.
-
TypeScript when you want it
Rename
App.jsxtoApp.tsxand keep going. Sucrase strips annotations on the same path JSX takes, so adding types costs nothing at compile time. -
Styling, your choice
Plain CSS, CSS Modules-style conventions, SCSS and Sass compiled by Dart Sass in the browser, or a utility framework pulled in from the package search.
-
An integrated terminal
A real shell surface over your project files for the moments a GUI is slower than typing.
-
Templates, not boilerplate
Over a hundred ready-to-run starters, several of them React with routing, state management and a UI kit already wired together. Open one and the project is already a project.
04 workflow
From empty tab to running component
No scaffolding step, no dependency install, no dev server to keep alive. This is the whole loop.
- new project → React
- created App.jsx, main.jsx, index.html, styles.css
- install zustand
- resolved via esm.sh · import map updated · 0 files written
- save App.jsx
- sucrase: jsx → js 4ms (worker)
- preview reloaded · 1 root mounted
- git commit -m "ticker"
- [main 1f4c8ae] ticker · 4 files changed
-
Nothing to keep alive
There is no dev server process to restart when it dies, because there is no process.
-
The same loop on a phone
The editor, the compiler and the preview all run client-side, so an iPad or an Android tablet is a first-class machine.
-
Share by link
Send a live preview URL instead of a screenshot and a set of instructions.
05 ecosystem
React is one of many
The same project can hold a Vue component next to a React one and a Python script next to both. XCODX picks the right compiler per file, not per project.
06 languages
Everything the editor understands
Syntax 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
07 questions
React on XCODX — common questions
Can I write JSX without configuring Babel or a bundler?
Yes — that is the point. XCODX detects .jsx and .tsx files and compiles them with Sucrase automatically. There is no babel.config.js, no bundler entry point and no plugin list. Save the file and the preview has the compiled output.
Which version of React does the editor run?
React 18, mounted with the createRoot API. Concurrent-era features and the modern hooks surface are all available, and your code runs against the real React runtime rather than a lookalike.
Can I install React libraries like React Router or Zustand?
Yes. Search for the package in the built-in npm panel and install it; XCODX resolves it through esm.sh and adds it to a native import map. React Router, TanStack Query, Zustand, Redux Toolkit, jotai, xstate, shadcn/ui and Ant Design all import normally.
Do custom hooks work if they live in separate files?
Yes. Projects are multi-file, so a hook in hooks/useInterval.js imported by three components behaves exactly as it would locally. The Rules of Hooks apply because this is genuine React execution, not a simulation.
Can I use TypeScript with React here?
Yes. Use .tsx files and write annotations as normal. Sucrase strips the types on the same fast path it uses for JSX, so there is no separate type-check step slowing the loop down — and no configuration to add.
How does this differ from a single-file React playground?
A playground gives you one file and a preview. XCODX gives you a folder tree, tabs, the Monaco editor, npm installs, real Git with branches and history, and an integrated terminal — the shape of an actual project rather than a snippet.
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.
Nothing to install
Open a React project now
A component on screen in under a minute. No account wall between you and the editor, no install, nothing to configure.
