React · config-driven UIThe config-driven interface: pages, widgets, and flows rendered from definitions, not hardcoded screens.
Shared platform component. Domain applications are documented separately.
Sky is what you're looking at. It's a factory UI: dashboards, forms, and multi-step flows are rendered from configuration served by Grove, through a widget registry and a handful of generic renderers. New screens are new config, and when config can't express something, a self-registering widget extends the factory without touching the renderers.
Choose one or two columns, assign cards, and reorder them within each column. Narrow screens stack the columns while retaining the saved desktop arrangement.
Home includes Home and Today tabs. Investments includes Tools, Ideas, Financial Digest, and Macro. Visible tabs continue to follow account access.
A page is a layout of widgets bound to data, served by Grove’s bundle and rendered generically. New page = new config.
A single registry; generic widgets self-register and resolve everywhere, so a new widget type is added once and reused.
Walks a user through Grove’s human-in-the-loop workflows (start, render the form, submit, advance) entirely from flow config.
Heatmaps, charts, and lists are prop-driven primitives reused across features; the index-by-sector heatmap is the first of many.
A domain ships its own widgets and registers them into the same factory registry, so domain UI resolves everywhere a generic widget would, with no renderer changes.
Sky doesn’t hardcode screens. It fetches a page bundle from Grove, a layout of widgets each bound to data, and renders it with generic components. The adaptive home rotates its hero by how much data you have; domain examples such as the Investments research heatmap and goal carousel use configuration over the same shared renderers.
When configuration can’t express something, the widget registry lets a component self-register under a type name and be resolved from anywhere: dashboards, flows, and forms all fall back to it. The generic HeatmapGrid is the model citizen: a domain-free, accessible, prop-driven primitive reused across features.
For multi-step work, the HITL flow renderer drives Grove’s human-in-the-loop workflows end to end: starting a session, rendering each form from config, submitting, and advancing, so a complex guided experience is, again, mostly data.