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
MockAuthProviderfor local development and a realArcGisAuthProviderfor 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
| Area | Technology |
|---|---|
| Runtime | React 19, React Router DOM 6 |
| Build | Vite 5 |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 3 + PostCSS |
| UI primitives | Radix UI + shadcn/ui patterns |
| Icons | Lucide React |
| Grid layout | react-grid-layout |
| GIS | ArcGIS Maps SDK for JavaScript (@arcgis/core) |
| Validation | Zod |
| Testing | Vitest + React Testing Library |
Where to go next
- New to the project? Start with Getting started.
- Want the big picture? Read the Architecture overview.
- Building features? See the Guides and Reference sections.