Julien Calixte df03012c8b style(model): align every sample layout to the 20px grid
Snap all sample coordinates to multiples of 20 so they sit on the
editor grid and read cleanly. Computed midpoint() valves had to land
on grid points too, so a few endpoints were nudged (e.g. escalation
arsenals 300->280, limits-to-growth source -300->-280). Population is
re-laid as a grid cascade so its links no longer overlap the pipes.
2026-06-20 11:19:37 +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
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.

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%