Code it. Preview it. Share it.
CodeSprout is a browser-based HTML/CSS/JS playground with live preview, syntax highlighting, URL sharing, and an AI SmartBox assistant.
Live site: https://qeditor.dev
- Live HTML/CSS/JS editing with Prism line-number highlighting
- Keyboard formatting with Prettier (
Cmd+Shift+F/Ctrl+Shift+F) - Shareable URLs (code is compressed into
location.hash) - Auto-save to
localStorage - SmartBox AI generation + one-click copy into editor
- SmartBox response panel
Show/Hidetoggle Hide Code/Show Codetoggle for the editor panel- Reset controls to clear saved state and reload
- Mobile layout: preview + SmartBox only
User code is rendered in a sandboxed iframe (allow-scripts) with a restrictive CSP.
This isolates preview execution from the main app UI and reduces injection risk against the editor shell.
The default starter is a Simon-style memory game (HTML/CSS/JS) so new sessions open with a playable demo.
- Type code in the editor panel
- Format with
Cmd+Shift+F/Ctrl+Shift+F - Toggle code panel using
Hide Code/Show Code - Reset with the
Resetbutton - Share work by copying the URL
Behavior:
- Starts with animated prompt suggestions
- Keeps response collapsed by default
- Lets you manually expand responses with
Show - Normalizes/sanitizes generated output before inserting into the editor
No build step is required. Serve the folder statically, for example:
python3 -m http.server 4173Then open http://127.0.0.1:4173.
QEditor's Terminal button connects to http://localhost:7681 (served by ttyd).
Runtime behavior:
- These scripts use Apple's
containercommand on macOS. - For other platforms, edit
container/start.sh,container/build.sh, andcontainer/stop.shto use your preferred runtime.
To run the container locally:
- Download
container.zipfrom the app fallback panel and unzip it. - Open Terminal,
cdinto the unzippedcontainerfolder, and start the container:./start.sh
- Click the
Terminalbutton in QEditor.
Stop the container when done:
./stop.shIf you already have your own ttyd container or host at port 7681, QEditor can connect to that instead.
- The app is intentionally client-side and stateful via URL hash + localStorage.
- If favicon, CSS, or scripts appear stale, hard refresh to bypass cache.
