Problem Statement
Architecture diagrams are dead pictures. Tools like Excalidraw or Lucidchart let you draw a system, but they can't answer the questions that actually matter: what happens to latency when traffic spikes? If this service falls over, does the failure cascade? Where's the bottleneck? Engineers reason about these dynamics in their heads (or learn them the hard way in production). Systyfield's premise: make the diagram executable.
Proposed Solution
Systyfield is a browser-based system-design tool where you build a design and then simulate it. You lay out services/nodes and edges on a canvas, then watch virtual traffic flow, metrics spike, and failures cascade in real time. It spans three modes in one product (design → simulate → observe), with starter demo templates so users can see a working simulation immediately.
Full Solution Details
- Canvas — a node-graph editor (custom
base-nodeand simulation edgessim-edge) with node and edge config panels, an onboarding tour, and a "cinematic" presentation context for playback. - Node palette — drag in system components to compose a design.
- Metrics panel — live readouts as the simulation runs.
- Demo templates — pre-built designs to explore the simulation instantly.
- Sessions — save/manage designs.
- Three modes — design the topology, run the simulation (traffic + failures), and observe the resulting metrics.
Technical Documentation
React + TypeScript + Vite, built on @xyflow/react (React Flow) for the node/edge canvas — the right primitive for an interactive graph editor with custom node and edge renderers. UI is composed from Radix UI primitives (dialog, dropdown, popover, slider, switch, tabs, tooltip, scroll-area, etc.) with class-variance-authority + tailwind-merge for a tokenized component system, Tailwind (+ tailwindcss-animate) for styling/animation, TanStack Query for data, and the author's meemaw utilities. The codebase is Feature-Sliced (canvas, demo, metrics-panel, node-palette, session), with the canvas feature owning custom nodes/edges, config panels, hooks (use-canvas), a typed node model (canvas-node.types), and a cinematic context for animated playback. The simulation layer animates traffic along edges and propagates state (load, failure) through the graph so downstream nodes react.
Tech Stack
React, TypeScript, Vite, @xyflow/react (React Flow), Radix UI, class-variance-authority, Tailwind CSS (+ animate), TanStack Query, meemaw, uuid; Feature-Sliced Design.
System Design
Node Palette ──drag──► Canvas (React Flow)
├── base-node (custom renderer) + node-config-panel
├── sim-edge (animated) + edge-config-panel
├── use-canvas hook · typed canvas-node model
└── cinematic-context (playback)
│ run
▼
Simulation: traffic flows along edges → load propagates →
metrics update → failures cascade downstream
│
▼
Metrics panel (live readouts) · Demo templates (instant start)
Modes: Design ──► Simulate ──► Observe
Smart Architectural Decisions
- Right primitive for the job. Building on React Flow (@xyflow) rather than hand-rolling a canvas means pan/zoom, node dragging, and edge routing are solid from day one, freeing effort for the hard part — the simulation.
- Custom nodes + animated sim-edges. Modeling edges as simulation conduits (animated
sim-edge) and nodes as stateful components is what turns a diagram into a live system — the core technical idea. - Tokenized, accessible UI via Radix + CVA. Composing from Radix primitives with CVA gives a consistent, accessible control surface (sliders for tuning load, tabs for modes) without reinventing widgets.
- Demo templates as onboarding. Shipping pre-built simulations + an onboarding tour solves the "blank canvas" problem — users see value before building anything.
- Feature-Sliced canvas isolation keeps the complex canvas/simulation logic self-contained (nodes, edges, panels, hooks, types) and the rest of the app simple.
Impacts
Turns static architecture diagramming into an interactive simulation — letting engineers visualize traffic, bottlenecks, and cascading failures before they happen, with an approachable, template-driven onboarding.
Demonstrated Skills
Interactive graph/canvas engineering (React Flow custom nodes/edges, config panels, pan/zoom); simulation modeling (traffic propagation, cascading failure across a graph); design-system composition (Radix + CVA + Tailwind tokens); React + Feature-Sliced Design; animation/playback state (cinematic context); product onboarding design (templates + tour).