- Status: Partially implemented
- Authors: @vgeorge
- As of: December 2025
- Purpose: Document architectural work started in 2024
- Label: veda v2 issues
In 2024, the VEDA team undertook significant architectural work (dubbed VEDA2) to modernize the UI library. This ADR documents that work and its outcomes, capturing the current state of the architecture as of December 2025.
The work addressed limitations in the original submodule-based approach:
- Complex integration requiring git submodules and custom Parcel resolvers
- Tightly coupled architecture with embedded data management
- Limited support for modern build tools like Vite and NextJS
- Maintenance burden from container patterns across instances
This architectural evolution runs in parallel with discussions captured in the Version 7 Roadmap and Maintenance Mode tickets.
The work shifted from a monolithic, submodule architecture toward a modular, library-based model that supports:
- Direct component consumption instead of wrapper containers
- npm package distribution instead of git submodules
- Decoupled data layer for better separation of concerns
- Modern build tools support (Vite, NextJS, etc.)
- Data scaffold in
/data-layer/datasets - Datasets dependency removed from Data Catalog
- Pattern for data-agnostic components
- Data managed directly in page views
Data Catalog — PR #930
- Layout components moved to wrappers
prepareDatasetsextracted- Initial data-agnostic component refactors
Map / Exploration — PR #962
- Exploration extracted as core UI feature
ExplorationMapandTimelineas reusable components- State lifted to container level
- Sandbox examples for direct usage
Time-series analysis — #900
- Composite feature extraction planned
NextJS prototype (#947)
next-veda-uirepo created- Validated modern React integration and direct consumption
Design system migration (#804)
- Started replacing DevSeed UI with USWDS
- Improved maintainability and Vite compatibility
Build pipeline (#800)
- Core UI library access layer
- Template instance scaffold (#803)
Two patterns coexist:
-
Legacy support — containers marked with
@LEGACY-SUPPORT- Examples:
DataCatalogContainer,ExplorationAndAnalysisContainer - Keeps existing instances working
- Examples:
-
VEDA2 pattern — direct component usage with explicit data management
- Submodule consumption
- Container wrappers managing data
- Virtual modules via custom Parcel resolver
- Direct component consumption
/data-layer/datasetsarchitecture- Library-style distribution (npm pattern)
- NextJS support via
next-veda-ui
- Version 7 Roadmap (#1889) — breaking changes to clean up architecture
- Maintenance Mode (#1912) — possible freeze of veda-ui
- VEDA Dashboard Future — successor architecture direction
- #893 — Data layer scaffold
- #930 — Data Catalog modularization
- #962 — Map / Exploration breakout
- next-veda-ui — NextJS prototype