Waxx

Kanban with workflows that actually mean something.

Define a reusable workflow template — stages, branching transitions, labels, custom fields — then spin up boards that follow it. Cards only move along the edges you drew, so the column layout is also the rulebook.

Get started · invite-only Log in

Wax on — draw the path

Cards flow where the graph permits

Wax off — ship the work

What's in the box

Real workflow modelling, not just three columns and good intentions.

Branching workflows

Each board's columns are a directed graph. Cards can only move along transitions you defined — both the UI and the server enforce it. Visual editor in the template draws the graph; backward edges loop out to the side.

Reusable templates

Stages, transitions, labels and custom fields live on a template. Boards clone the template at creation time and then drift independently; future template edits propagate by name to boards that haven't drifted.

Labels and custom fields

Tag cards with coloured labels, attach due dates, locations, free text, or pick-one selects. Toggle "show on card" to surface a field as a chip on the kanban tile.

Drag, drop, assign

HTML5 drag-and-drop with green / red drop highlights that match the workflow rules. Reorder within a column or drop into a new one — same gesture, same enforcement. Multi-assign per card.

Live multiplayer

Phoenix PubSub broadcasts every card change to other tabs viewing the same board. Edit a template stage and every board using it grows the new column in place.

Invite-only by default

App-level invites gate registration; board-level invites grant membership on a specific board with a role (owner / editor / viewer). Mint links from the UI or from mix phx.gen.invite.

Auto-archive what's done

Cards that sit in a terminal stage (no outgoing edges) longer than the board's threshold drop out of the view automatically — 7 days by default, per-board configurable, blank disables. Per-stage entry timestamp means title edits don't accidentally reset the clock.

Board history

Every card mutation lands in the activity log with actor and timestamp. Denormalised meta strings mean the log stays readable even after a stage is renamed or a card deleted. One click from any board.

Quiet labels when you need them

A per-user, per-board toggle collapses label chips to just their coloured dots — same information at a glance, less ink on the board. Sticks across sessions via a single user prefs jsonb column.

Subboards — second dimension

Split a board into rows. Stages run across the top, subboards run down the side. Drag a card into a row to assign it; new cards land in a "default" row until you move them. Same workflow rules apply across the whole grid.

From zero to a board in three steps

The shape of your work first, then the work.

  1. 01

    Draw the workflow

    Open /workflow-templates, add a stage, click another stage to draw a transition. Skip-ahead arrows arc out; back edges loop. Add labels and custom fields while you're there.

  2. 02

    Create a board

    Pick a template. Waxx clones its stages, transitions, labels and fields into a per-board copy you can tweak without breaking other boards.

  3. 03

    Invite, drag, ship

    Mint board invites for collaborators, drop cards into stages, watch updates land in real time. The graph keeps everyone honest.

Phoenix LiveView, all the way down

Server-rendered HTML, websocket diffs, colocated JS hooks for drag and drop, PubSub for fan-out, UUIDv7 primary keys so rows sort by creation time, daisyUI themes including six ported from neiam-co plus a blueprint palette. Open source.