Decker

Decker is a multimedia platform for creating and sharing interactive documents, with sound, images, hypertext, and scripted behavior. You can try it in your web browser right now.

right now

Decker builds on the legacy of HyperCard and the visual aesthetic of classic MacOS. It retains the simplicity and ease of learning that HyperCard provided, while adding many subtle and overt quality-of-life improvements, like deep undo history, support for scroll wheels and touchscreens, more modern keyboard navigation, and bulk editing operations.

HyperCard

Anyone can use Decker to create E-Zines, organize their notes, give presentations, build adventure games, or even just doodle some 1-bit pixel art. The holistic "ditherpunk" aesthetic is cozy, a bit nostalgic, and provides fun and distinctive creative constraints. As a prototyping tool, Decker encourages embracing a sketchy, imperfect approach. Finished decks can be saved as standalone .html documents which self-execute in a web browser and can be shared anywhere you can host or embed a web page. Decker also runs natively on MacOS, Windows, BSD, and Linux.

For more complex projects, Decker features a novel scripting language named Lil which is strongly influenced by both Lua, an imperative language popular for embedding in tools and game engines, and Q, a functional language in the APL family used with time-series databases. Lil is easy to learn and conventional enough not to ruffle any feathers for users with prior programming experience, but also includes pleasant surprises like implicit scalar-vector arithmetic and an integrated SQL-like query language. A few lines of Lil can go a long way.

Lua

Q

Decker provides a small collection of built-in interactive widgets for building interfaces, as well as a facility for defining new ones. Custom widgets and their definitions can be copied and pasted using the system clipboard, which also makes it possible to share them anywhere you can share or store text. Every deck is a toolkit of reusable parts that can be harvested and repurposed for another project.

defining new ones

Decker is command-line friendly: when built from source, it comes with Lilt, a standalone Lil interpreter which can (among other things) read, write, manipulate, and even execute Decker documents "headlessly". Lilt has even fewer dependencies than Decker itself, so it can also be compiled as a cross-platform APE executable, ready for writing run-anywhere shell scripts. Would you believe there's a Lil interpreter that runs on POSIX AWK? Decks are stored in a line-oriented text format which interoperates well with existing source control tools like Git and SVN.

Lilt

APE executable

that runs on POSIX AWK

Decker includes no advertising, telemetry, gamification, slop-generator integration, or other intrusions on user privacy and autonomy. If you like Decker, please share it with other people who might enjoy it. Build something that makes you happy.

Examples

Decker: A Guided Tour

Decker: A Guided Tour

All About Draggable

All About Draggable

All About Sound

All About Sound

All About Color

All About Color

All About Brushes

All About Brushes

All About Fonts

All About Fonts

All About Transitions

All About Transitions

5GUIs

5GUIs

Sokoban: A Block-Pushing Puzzle Game

Sokoban: A Block-Pushing Puzzle Game

Breakout: Three Ways (Discussion)

Breakout: Three Ways

Discussion

A CHIP-8 Interpreter

A CHIP-8 Interpreter

Gamepad Input Demo

Gamepad Input Demo

Libraries

plot: Simple Graphing and Plotting

plot: Simple Graphing and Plotting

stats: Statistical Math Utilities

stats: Statistical Math Utilities

pdf: Portable Document Format Export

pdf: Portable Document Format Export

twee: Read Twine's .twee File Format

twee: Read Twine's .twee File Format

zazz: Animation Helpers

zazz: Animation Helpers

ease: Easing Functions

ease: Easing Functions

bn: Arbitrary-Precision Unsigned Integers

bn: Arbitrary-Precision Unsigned Integers

dd: Visual-Novel Modals

dd: Visual-Novel Modals

pt: Visual-Novel Sprite Animation

pt: Visual-Novel Sprite Animation

path: Grid Pathfinding

path: Grid Pathfinding

hershey: Vector Fonts

hershey: Vector Fonts

dfxr: Sound Effect Generation

dfxr: Sound Effect Generation

WigglyKit: Juicy, Jiggly Drawing Components

WigglyKit: Juicy, Jiggly Drawing Components

The Forbidden Library: Escaping Decker's Shackles, for a Price

The Forbidden Library: Escaping Decker's Shackles, for a Price

Documentation

The Decker reference manual

The Decker reference manual

The Lil programming language

The Lil programming language

The Decker document format

The Decker document format

Learn Lil in 10 Minutes

Learn Lil in 10 Minutes

The Lil playground

The Lil playground

Lil Quick-reference card

Lil Quick-reference card

Lilt: the Lil Terminal

Lilt: the Lil Terminal

Phinxel's Phield Notes: A Guide to Making Stuff in Decker

Phinxel's Phield Notes: A Guide to Making Stuff in Decker

A Multimedia Sketchpad

A Multimedia Sketchpad

Decker: Responding to Responses

Decker: Responding to Responses

Additional Resources

Browsable source code and a bug-tracker are available on GitHub. Decker is free and open-source, under a permissive MIT license.

GitHub

MIT license

Periodic binary release downloads for MacOS and Windows are available on Itch.io. The Itch page includes a community forum for discussing Decker and sharing projects made with Decker. We also hold Decker-themed "Game Jams" every July and December; the next upcoming jam will be Decker Fantasy Camp, July 2026.

Itch.io

community forum

"Game Jams" every July and December

Decker Fantasy Camp, July 2026.

back