Toolback
Toolback - a modern ToolBook spiritual successor: book → pages → objects, authored visually, scripted in plain JavaScript. If you ever built something in ToolBook or HyperCard, you’ll feel at home — everything else is 2026.
It’s free, open source, and runs entirely in the browser — try it live at toolback.netlify.app, or read the source at github.com/abulka/toolback4 (topics: toolbook, hypercard-inspired).

Books are open data (a single .toolbook.json), editing is local-first (an autosave in IndexedDB keeps nothing hostage), and Publish produces one self-contained HTML file you can drop anywhere. No backend, no build step for your books, nothing to install for your readers.
Why I built this
ToolBook (and HyperCard before it) had something that the modern web lost: the author and the reader were the same person, five minutes apart. Click a button into existence, script it in a language that fit on one screen, and press a key to play. Publishing was “save a file”. A kid could make something and deploy it before lunch.
Authoring tools today are a hellscape by comparison — a login, a cloud subscription, a wall of panels, an SDK version matrix, a two-stage pipeline, a build step that needs its own conference talk, and a platform that decides to deprecate your “simple” app every six months. Nothing you make is yours, and nothing stays small.
Toolback is the counter-move, driven by nostalgia and intent:
- Easy to use again — drag-and-drop authoring, a visible canvas, one screen of sensible panels. Design and run share one space; F3 / ⌥3 flips between them like the ToolBook of old.
- Easy to deploy again — Publish writes a single standalone
.htmlwith everything (player, your book, even npm libraries) baked in. Host it on any static server, stick it in apublic/folder, email the file. There is no “backend” and no “production environment”. - Modern under the hood — scripts are plain JavaScript: no dialect, no macro language, no 1990s scripting school. The editor’s IntelliSense is curated to exactly what your book can use, and books run in a sandboxed canvas that keeps even the most broken script from taking the editor down.
- Open and yours — books are JSON, which means they’re git-diffable, grep-able, and portable. There’s no locked format and no cloud lock-in.
ToolBook heritage is everywhere in the model (the self / target / forward() event chain, backgrounds as shared page resources, popups, F3 run toggle) — but the words you type are JavaScript.
What you can do
- Author visually — drag controls (button, label, input, image, card, container, switch, group) onto a canvas with an 8px grid; resize, arrange, group/ungroup, duplicate; per-breakpoint layouts for desktop / tablet / mobile.
- Script in plain JS — object event scripts, page scripts, background scripts, and full IntelliSense (Ctrl+Space) that only offers things that actually exist in your book. Red squiggles catch syntax errors before you press Run.
- The ToolBook event model — an explicit owner chain, not DOM bubbling: the innermost handler runs and stops unless you call
forward().self= the object whose script you’re writing,target= what was clicked. - A store that’s data, not code — keep design values in the Book tab, seed every run from them, and watch live
store.set()s while a run is going.{{key}}labels resolve right in the design view. - Pages, navigation & popups —
page.go('Results'),page.enterlifecycle, and any page opening any other as a floating dialog. - Backgrounds — the classic shared-page trick: one background’s objects appear on every page that uses it, a perfect home for a nav bar.
- Author-mode plugins — a page flagged Plugin page can run as a floating tool while you author, driving the editor through a small
authorbridge. Everything a plugin does is ordinary undoable book history. - npm libraries in books —
await import('@tonejs/midi')just works (esm.sh at runtime, or pre-bundled onto a local “library shelf” for fully offline publishes). The kitchen-sink example builds a two-note MIDI in-browser. - Undo/redo, duplicate, Copy JSON — whole-book snapshot history, duplicate cascades, and
{ } JSONon the selection for inspecting structures. - Publish — one click → a single self-contained
.htmlstanding alone.
Debugging & live coding
Debugging feels like the web, because it is the web:
- Status bar errors — script failures appear in the editor’s status bar, tagged with where they came from (
button1.click: Error: …,page script: SyntaxError: …), with a ✕ to dismiss. - Browser devtools (F12) — open devtools and pick the canvas frame’s context; any
console.log(...)in your scripts lands there. Your scripts run in a sandboxed iframe, so they can’t take the editor down — but you can still inspect them for real. - Live Store tab — during a run, the Store tab is a live stream: every
store.set()shows up as it happens, and each row’s ⇓ copies the live value into the design store for the next run. A live-coding loop. - Edit scripts in VS Code — every script editor has a ⇄ file button: link the script to a real
.jsfile on disk and edit it in VS Code (or anything). The sync is two-way and carefully race-proofed — type in the editor, save in VS Code, either way the book and the file stay in step. ⤢ pops the editor out into a resizable floating window.
Free to run, free to deploy
The editor is a fully client-side app (Vue 3 + Pinia + Monaco, in a pnpm monorepo). Deploy it to any static host, including Netlify, gh-pages, or a plain nginx folder:
- Build:
pnpm install && pnpm build - Publish:
apps/editor/dist
A netlify.toml and a pnpm-lock.yaml are included, so a Netlify deploy with Base directory: / and Build command: pnpm install && pnpm build works out of the box — which is exactly how toolback.netlify.app runs, free. Because everything is local-first, an exported book (.toolbook.json or a published .html) runs from any static host without a server of any kind.
The File System Access API used by Open…, Save and ⇄ file linking requires a secure context (HTTPS) and a Chromium browser — on Netlify’s HTTPS that’s just how it works. Non-supporting browsers fall back to classic file dialogs for open/save.
Hungry for a quick tour?
Open an example book with File → Open… and press Run (F3 or ⌥3):
examples/hello-counter.toolbook.json— the classic first bookexamples/quiz.toolbook.json— navigation + a score in the shared storeexamples/kitchen-sink.toolbook.json— an 8-page guided tour of every featureexamples/author-plugin.toolbook.json— an author-mode plugin driving the editor
Full docs live in the repo: a scripting guide with copy-paste recipes, runtime internals, and the complete plan & milestone log.
Appendix: Earlier Prototypes
The sections below describe the earlier Toolback prototypes (v1 and Toolback Lite) that I built before the open source, ToolBook-inspired rewrite above.
Toolback 1 (prototype)
Toolback is the drag and drop UI builder and online, Low Code, app building IDE.




Preview your app with a key press.

Export to a website or electron app - one click!

Toolback Lite (prototype)
Toolback-Lite is a lightweight drag and drop UI builder and online app building IDE. The drag and drop is done on a grid rather than using the the complex grapes-js html builder library, which Toolback uses.

Other HyperCard & ToolBook Clones
I’m clearly not the only one who misses the card-stack paradigm — there is still demand for such a product. See the Reddit post “I would absolutely kill to have a modern HyperCard”.
LiveCode, SuperCard, and Decker are the leading modern and historical HyperCard clones.
Modern & Active Clones
- LiveCode — A powerful cross-platform evolution (descended from MetaCard) that uses a close relative of HyperTalk and builds desktop, mobile, and web apps. 1, 2, 3, 4
- Decker — An open-source, retro 1-bit multimedia tool inspired by HyperCard that runs right in the browser and exports standalone HTML files. 1
- BrowserCard — A lightweight JavaScript and JSON-based browser reinterpretation of the stack concept. 1
- WyldCard — A Java-based high-fidelity reproduction of classic HyperCard and HyperTalk. 1
Historical & Classic Clones
- SuperCard — The premier classic Mac color clone that expanded HyperCard with full color, multiple windows, and a complete GUI toolkit.
- HyperStudio — A vintage multimedia-focused tool popular in education for creating interactive presentations.
- ToolBook — Asymetrix’s period-accurate Windows alternative that heavily mirrored the card-stack paradigm. 1
- MetaCard — A discontinued, cross-platform commercial HyperCard clone that featured its own integrated development environment (IDE), graphical user interface (GUI) toolkit, and scripting language called MetaTalk. 1
Resources
Toolback
- Try it live — toolback.netlify.app
- Source code — github.com/abulka/toolback4 (topics: toolbook, hypercard-inspired)
- Scripting guide — docs/scripting-guide.md
- Runtime internals — docs/runtime-internals.md
- Plan & milestones — PLAN.md
My ToolBook background
Before toolback, I was a Multimedia ToolBook programmer in Australia from 1991 to 1998, developing training and educational CD titles for businesses around Australia (Telstra, BHP, TAFE, Unisys and others).
I also ran the Australian Toolbook User Group (ATUG):
- ATUG website — abulka.github.io/toolbook/
- Toolbook Tips Magazine — abulka.github.io/toolbook/tipsmag.htm — hundreds of real ToolBook tips (not Toolback!), plus the downloadable offline “Knowledge Nuggets” tips reader.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.