Julien Calixte 21a459256a feat(editor): dock flow arrows square at any pipe angle
Swap the filled-triangle arrowhead for an open arrow on flow pipes and
information links, and route flow pipes through a custom cubic edge whose
horizontal flatten arm scales with the vertical drop, not just the
horizontal gap. Vue Flow's default arm collapses toward zero when the
valve sits nearly above the stock, so a steep pipe stayed flat only in
its last pixels and the arrowhead detached from the visible line. The
pipe now keeps a real horizontal run into the stock's left edge at any
approach angle.
2026-06-20 11:51:34 +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%