A scratchpad with real highlighting. Draft saves to this browser automatically — copy out or download when done.
Autosaves per language to localStorage on this device only. Monaco loads from CDN — if it is blocked, a plain textarea appears instead with the same content.
This page is a scratchpad for code: a fast place to draft a function, sketch a config file, or hold a snippet while you work somewhere else. Open the tab, type, then copy out or download when done. There is no project setup, no account, and nothing to install — deliberately so. It does not try to compete with full code editors; it covers the small job of holding text with real highlighting until you move it somewhere permanent.
The editing surface is Monaco Editor — the editor engine behind Visual Studio Code — loaded from the cdnjs CDN (version 0.33.0). That means proper syntax highlighting, line numbers, bracket matching, and the familiar VS Code editing feel, inside a plain static page. If the CDN is ever unreachable, the page falls back to a plain textarea carrying the same content, so your words are never trapped behind a failed script load.
It is most useful for throwaway work with a short half-life: trying out a JavaScript one-liner, drafting a JSON payload before pasting it into an API client, keeping interview-prep notes in Python, or parking a CSS fragment you are about to move into a stylesheet. For anything that needs to run, build, or live in version control, graduate it to a real editor — this scratchpad is the waiting room, not the house.
The language picker switches highlighting and keeps a separate autosaved draft per language, so your Python notes survive while you sketch HTML. Three editor themes are available — Dark, Light, and high-Contrast — and the status bar under the editor always shows the live line count, character count, cursor position, and the time of the last save.
| Language | Download extension | Good for |
|---|---|---|
| JavaScript | .js | Snippets, one-liners, interview practice |
| TypeScript | .ts | Typed drafts and interface sketches |
| HTML | .html | Markup fragments and email templates |
| CSS | .css | Style experiments and overrides |
| JSON | .json | API payloads and config files |
| Python | .py | Scripts, notes, and automation drafts |
| Java | .java | Class sketches and Android fragments |
| C# | .cs | Unity and .NET snippets |
| PHP | .php | Server-side fragments and WordPress tweaks |
| Ruby | .rb | Scripts and Rails-adjacent drafts |
The Download button saves the current buffer as snippet.<ext> using the extension above, and Copy puts the whole buffer on your clipboard. Both act on exactly what is in the editor right now — no hidden formatting is added on the way out.
About half a second after you stop typing, the current buffer is written to localStorage — the browser's own on-device storage — under one key per language (mosaic-code-<language>), alongside your picked language and theme. Reload the page next week and the same drafts are still here. Switch from JavaScript to Ruby and back, and each draft is restored untouched.
Nothing is uploaded anywhere. The page makes no data requests of its own; the only network loads are third-party assets (the Monaco Editor files from cdnjs and fonts from Google Fonts). There is no account, no analytics event carrying your text, and no server that could read it — your code physically cannot leak through this page because there is nowhere for it to be sent.
Clearing works in two levels. Reset replaces the current language's draft with the welcome snippet. To wipe everything, clear this site's stored data in your browser settings, which removes all ten language drafts plus preferences. One honest warning: because storage is local, clearing browser data — or switching devices — loses your drafts. Copy anything precious out before you wipe.
If you need execution, debugging, or collaboration, use a real IDE or a runnable playground. This page stays small on purpose — every feature it lacks is a category of bug, account, or subscription you never have to think about.
mosaic-code-<language>), plus saved language and theme preferences. Each language keeps its own draft, and switching languages restores it.