Skip to main content

Fusion Analyst

Fusion Analyst is a single-page React application for building analyst workspaces. A signed-in user creates workspaces (collections of tabbed views) and arranges widgets on a tiling grid that always fills the view.

This documentation covers the frontend application (the src/ directory). The Python FastAPI + LangGraph backend in api/ will be documented in a later release.

:::note Scope These docs describe the React SPA only. Where the frontend talks to the backend (for long-running agent runs), that contract is summarized but the backend internals are out of scope here. :::

What the app does

  • Auth gate. The app renders a sign-in screen until a user is authenticated — there is no anonymous access. Authentication is pluggable: a MockAuthProvider for local development and a real ArcGisAuthProvider for ArcGIS OAuth.
  • Workspaces and views. A workspace is a named container of tabbed views. Each view is a tiling grid of widgets that fills the canvas. Users create, rename, duplicate, reorder, and delete workspaces and views.
  • Widgets. Every widget is registered in a central registry. Users add widgets from a picker, place and move them with on-tile zone buttons, and resize them by dragging the dividers between tiles. Widgets are schema-driven and configured through a side drawer.
  • Cross-widget actions. Widgets can wire to each other — for example, a map can filter a table when its extent changes, or a details panel can show the feature clicked on a map.
  • Persistence + manual save. Edits mark a workspace dirty; you save from the header, and leaving edit mode or switching context with unsaved changes prompts you first. A per-workspace indicator shows Saving… / Saved / Retry save. Workspaces persist as ArcGIS Portal Items in the signed-in user's account.

Technology stack

AreaTechnology
RuntimeReact 19, React Router DOM 6
BuildVite 5
LanguageTypeScript 5
StylingTailwind CSS 3 + PostCSS
UI primitivesRadix UI + shadcn/ui patterns
IconsLucide React
Grid layoutreact-grid-layout
GISArcGIS Maps SDK for JavaScript (@arcgis/core)
ValidationZod
TestingVitest + React Testing Library

Where to go next