Visualisations

Interactive visualisations of the Life Itself strategy portfolio.

Both draw from the same data (index.js, generated by running node scripts/build-index.js from the repo root, which reads frontmatter from initiatives/, projects/, and ideas/ folders).


Portfolio Map

Visual encoding

Colour = type

TypeColour
InitiativeBlue #4A90D9
ProjectGreen #50B86C
IdeaFaded yellow #F2D96B

Opacity = status (how actively something is being worked on)

StatusOpacityIcon
active1.0
maintenance0.7⚙️
paused0.25⏸️
archived0.15🗄️
idea0.55

Status icons are rendered at full opacity inside the circle so they remain readable against the faded fill.

Size = type

TypeRadius
Initiative18px
Idea15px
Project11px

Grouping nodes (category: grouping) — organisational containers that are not real work in themselves (e.g. Comms, Community, Life Itself Courses). Rendered as hollow circles (stroke only, no fill). Excluded from status counts so that "how many things are active?" reflects real initiatives only.

Links connect child items to their parent initiative (arrows point from parent to child).

Interaction

  • Drag nodes to reposition
  • Scroll to zoom
  • Click a node to open its URL
  • Hover for tooltip (title, type, status, description, tags)
  • Filter panel (top right) toggles visibility by status

Appendix: Deferred encoding ideas

Fill-level / liquid fill — draw each circle with a coloured fill rising from the bottom proportional to vitality (active = full, archived = empty outline). Implemented via SVG clipPath. Intuitive "how full of life is this" read. Would allow a second dimension (e.g. priority) via stroke.

Stroke = status — keep fill for type colour, use border style for status (solid/dashed/dotted). Could combine with fill-level or replace opacity encoding.