Configuration Overview
Understanding the app configuration system
Introduction
Every Envisioning App project is driven by a single configuration object that defines how data is structured, how pages are organized, and how visualizations behave. This configuration is validated at runtime using Zod schemas, ensuring type safety and helpful error messages.
The configuration object has three main sections:
import type { Config } from "@envisioning/app";
export const config: Config = {
settings: { /* app settings */ },
schema: { /* data schema */ },
navigation: { /* pages and blocks */ },
};Configuration Sections
| Section | Description | Documentation |
|---|---|---|
settings | Global app behavior: localization, SEO, visualizations, filters | Settings |
schema | Data structure definitions: entities, tags, clusters, metrics | Schema |
navigation | UI structure: menu, pages, and blocks | Menu, Pages, Blocks |
Project Structure
A typical project configuration is organized as follows:
The main config/index.ts combines all sections:
import type { Config } from "@envisioning/app";
import { navigation } from "./navigation";
import { schema } from "./schema";
import { settings } from "./settings";
export const config: Config = {
navigation,
schema,
settings,
};I18n (Internationalization)
Most text properties support internationalization using the I18n type:
// Simple string (default language)
label: "Technologies"
// Multi-language object
label: { en: "Technologies", pt: "Tecnologias" }The first locale in settings.locales is the default language. See the Translation documentation for more details.
Validation
Configuration is validated at runtime with helpful error messages:
- Schema validation - Zod validates each property type
- Cross-validation - Checks references between sections (e.g., block IDs in pages must exist in blocks array)
- Auto-join preparation - Automatic relationship creation based on naming conventions
If validation fails, you'll see descriptive errors pointing to the exact issue:
Block "tech-detail" not found in blocks. Check content_blocks on page "technologies"Quick Start Checklist
- Define your schema - Map your data structure to entities, tags, clusters, and metrics
- Configure settings - Set project label, locales, and SEO
- Create blocks - Define reusable UI components
- Build pages - Compose blocks into page layouts
- Set up menu - Create navigation structure
- Add visualizations - Configure radar or other visualizations
- Configure filters - Enable data filtering