Skip to content
Shadow1363Public

About

A hybrid Scratch/Pico-8 like console!

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

Stitch logo

Stitch

Make games in the browser with blocks or code: a faster Scratch with PICO-8-style carts.

The Stitch editor: blocks and text side by side, with the game running on the right

What it is

  • Blocks and text are the same program. Drag blocks or type Lua-flavoured code; both views edit one program and stay in sync as you work. Every block has exactly one text spelling.
  • Fast. Scripts compile to JavaScript and run as green threads at a fixed 60 ticks a second, so 1,000 moving sprites hold 60 fps (measured on an M2 laptop).
  • Carts. A whole game (code, pixel and vector art, a tile map, sfxr sound effects, tracker music and extensions) is one .stitch.png file whose picture is the game's cover.
  • Safe to run. Games run in a sandboxed frame. Web requests go through a permission prompt, and API keys you set stay in your browser, never in a cart.
  • Share anywhere. Export a single HTML file, an installable offline web app, or a desktop app project.
  • Familiar. Scratch's stage, coordinates and blocks, with each deliberate difference written down.

Quick start

You need Node 22+ and pnpm 10 (corepack enable).

pnpm install
pnpm dev

Open http://localhost:5173. The editor starts with a sample game: press Run and use the arrow keys. Cart → Samples has bigger ones, with comments throughout for reading: Stitch Dungeon, a roguelike with procedurally generated floors, enemies as clones and a pen-drawn HUD and minimap; Patch Hop, a three-level platformer with tile collisions and stomping; Needle Storm, a bullet hell against a three-phase boss; and Thimble Quest, a top-down adventure whose map scrolls room to room. Run, Pause and Stop are also ⌘↩, ⌘P and ⌘. (Ctrl on Windows and Linux), even while the game has the keyboard. Scratch Parity checks Scratch 3 blocks one by one and prints PASS or FAIL for each. Then follow a tutorial:

Have a Scratch project? Open the .sb3 with Cart → Open file… (importing Scratch projects).

pnpm build writes a static site to packages/editor/dist, which any static host can serve (hosting notes).

Documentation

Language reference Every keyword, block and builtin, text and blocks side by side
Importing Scratch projects Opening .sb3 files: what comes across and what doesn't
Exporting and sharing HTML, web app and desktop exports; CORS and secrets
Network, secrets and CORS How HTTP from games works, and the threat model
Writing an extension Add your own blocks
Cart format The file format, versions and PNG container
Architecture How the packages fit together
Departures from Scratch Every deliberate difference, with reasons
Roadmap Phases, open decisions and known gaps
Contributing Setup, checks and conventions
API docs pnpm docs:api, then open docs/api/index.html

Commands

Command
pnpm dev The editor with hot reload
pnpm build Production build of the editor
pnpm test Node tests, including the docs and design checks
pnpm test:browser WebGL pixel tests and Blockly round-trips in headless Chromium
pnpm typecheck · pnpm lint TypeScript and ESLint
pnpm check:licenses · pnpm check:size License allow-list; exported player size budget
pnpm gen Regenerate the parser after a grammar change
pnpm docs:blocks · pnpm docs:api Render docs block pictures; build API docs

The benchmark is at /bench.html?n=1000. The desktop editor is in desktop/.

Status

Phases 1–9 of the roadmap are built: language, blocks, assets and carts, audio, APIs and extensions, export, visual design, documentation, and block parity with Scratch 3 (clones, pen, sensing, dictionaries and more). The desktop builds haven't been compiled yet; known gaps lists what's left.

Dependencies that ship are MIT, Apache-2.0, BSD, ISC or 0BSD licensed, apart from the Inter and JetBrains Mono fonts (SIL OFL 1.1).

About

A hybrid Scratch/Pico-8 like console!

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages