wickend.dev / Projects / ink-playground
TypeScriptInkinkjs live shipped Nov 14, 2025

ink-playground

a no-setup browser sandbox for Ink — inkle's narrative scripting language — with a Monaco editor, a live story graph, and the same inkjs runtime inkle ships in production games.

§ the story

Ink is a tiny, beautiful language for branching, stateful interactive fiction. The official path to trying it is “set up Unity, or wire a C# project against Ink.Engine.” Both are reasonable. Neither is what I want when I have an idea at 1am and want to type === story === and see what happens.

So this is the blank page + Run button version. Open the tab, write Ink, hit Cmd+Enter, click choices, watch state update. That’s the whole product.

a real engine, not a transpiler

The runtime is inkjs — Yannick Lohse’s port of inkle’s own engine, which is the same engine inkle ships in their production games. Everything I do in the UI is a thin wrapper around it. Knot transitions, variables, weaves, glue, lists, threads — all behave the way the official docs say they will, because the engine doing the work is the engine the docs were written for.

the live graph

The piece I underestimated when I started: drawing the story as a graph while you type makes structural mistakes obvious that would otherwise hide in line numbers. Every knot becomes a node, edges follow -> diverts, and the current knot lights up while you’re playing. Refactoring a tangled flow goes from squinting at code to dragging boxes.

what’s bundled

  • Monaco editor with Ink syntax highlighting.
  • Light + dark themes, with a small picker.
  • Six bundled examples that ramp from Hello World → knots → variables → advanced flow control, so you can learn the language without leaving the page.

A weekend hack that I keep poking at. Live at ink.wickend.dev — paired with the Yarn Spinner version for when you want a different flavor of branching prose.

// shipped on a Wickend, Nov 14, 2025