Envisioning LogoEnvisioning App (1.0.3)
Configuration

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

SectionDescriptionDocumentation
settingsGlobal app behavior: localization, SEO, visualizations, filtersSettings
schemaData structure definitions: entities, tags, clusters, metricsSchema
navigationUI structure: menu, pages, and blocksMenu, Pages, Blocks

Project Structure

A typical project configuration is organized as follows:

index.ts
settings.ts
schema.ts
navigation.ts
blocks.ts
pages.ts
radar.ts

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:

  1. Schema validation - Zod validates each property type
  2. Cross-validation - Checks references between sections (e.g., block IDs in pages must exist in blocks array)
  3. 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

  1. Define your schema - Map your data structure to entities, tags, clusters, and metrics
  2. Configure settings - Set project label, locales, and SEO
  3. Create blocks - Define reusable UI components
  4. Build pages - Compose blocks into page layouts
  5. Set up menu - Create navigation structure
  6. Add visualizations - Configure radar or other visualizations
  7. Configure filters - Enable data filtering

On this page