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.

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.

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, 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.

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.

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.

Decker includes no advertising, telemetry, gamification, 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

Libraries

Documentation

Additional Resources

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

Periodic binary releases 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 Dec(k)-Month The Second, December 2024.

back