Julien Calixte d570425402 fix(editor): align the playhead with the chart's left gutter
valToPos returns CSS pixels relative to the plot area, but the overlay
sits on the canvas, so the playhead was short by the y-axis width and
started before x=0.
2026-06-20 15:01:21 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00
2026-06-20 01:28:32 +02:00

meadows

A canvas for thinking in systems — stocks, flows, converters, and feedback loops. Inspired by Donella Meadows' Thinking in Systems.

Deployed at https://meadows.apoena.dev

Design & docs

  • CONTEXT.md — the ubiquitous language: Stock, Flow, Converter, Information Link, Polarity, and the Feedback Loops (Reinforcing / Balancing) the wiring forms.
  • DESIGN.md — goal-driven design (QFD): goals → functions → components, the House of Quality, the performance budget, and recorded tradeoffs.
  • Architecture decisions (docs/adr/):
    • ADR-0001 — feedback loops are detected from structure, not stored.
    • ADR-0002 — Vue Flow is the editor substrate; the domain Model is the source of truth.
    • ADR-0003 — a Flow is a node; Source/Sink clouds are materialised nodes.
    • ADR-0004 — simulation behaviour comes from a small fixed vocabulary of rules over Information Links, not free-form formulas.
    • ADR-0005 — uPlot draws the behaviour-over-time chart; a charting dependency that earns its keep.

Stack

Vite + Vue 3 + TypeScript, Tailwind v4, DaisyUI. Lint/format via oxc (oxlint + oxfmt). SPA-only — diagram model is client-side.

Develop

pnpm install
pnpm dev           # frontend on :5173
pnpm lint          # oxlint  (pnpm lint:fix to autofix)
pnpm fmt           # oxfmt   (pnpm fmt:check to verify only)
pnpm build         # type-check + production build (what Coolify runs)

Deploy

Pushes to main are picked up by Coolify at https://platform.apoena.dev.

Description
meadows.apoena.dev
Readme 879 KiB
Languages
TypeScript 70.7%
Vue 28.4%
CSS 0.6%
HTML 0.2%
Dockerfile 0.1%