Schema Documentation

Define your entire application — data models, authentication, pages, themes, analytics — in a single YAML or JSON file. This is the complete reference for the Sovrium app schema.

Overview

A Sovrium app is a declarative configuration object with 10 root properties. Only name is required — everything else is optional, enabling progressive complexity from a minimal app identifier to a full-stack application.

name: my-app # App identifier (required) version: 1.0.0 # SemVer version description: My application # One-line description tables: [...] # Data models with 41 field types theme: {...} # Design tokens (colors, fonts, etc.) pages: [...] # Server-rendered pages (63 component types) auth: {...} # Authentication & authorization languages: {...} # Multi-language support ($t: syntax) components: [...] # Reusable UI templates ($ref, $variable) analytics: {...} # Privacy-friendly, cookie-free analytics

Configuration files can be written in YAML or JSON. Run sovrium start app.yaml to launch a dev server, or sovrium static app.yaml to generate a static site.

Quick Start

Create an app.yaml file and start building. Here is a minimal example that grows from the simplest valid config to a small but complete app:

# 1. The simplest valid config — just a name name: my-app # 2. Add a table with fields tables: - id: 1 name: tasks fields: - id: 1 name: title type: single-line-text required: true - id: 2 name: status type: single-select options: - label: To Do color: gray - label: In Progress color: blue - label: Done color: green - id: 3 name: due-date type: date - id: 4 name: assignee type: user # 3. Add a theme and authentication theme: colors: primary: "#3b82f6" background: "#0f172a" auth: strategies: - type: email-password defaultRole: member

Then run the development server:

sovrium start app.yaml

Root Properties

The app schema has 10 root properties. Only name is required.

namestringrequired

App identifier following npm naming conventions. Lowercase, max 214 chars, supports scoped format (@scope/name).

versionstring

Semantic Versioning 2.0.0 string (e.g., 1.0.0, 2.0.0-beta.1). Supports pre-release and build metadata.

descriptionstring

Single-line app description. No line breaks allowed. Unicode and emojis supported.

tablesarray

Data models with 41 field types, relationships, indexes, permissions, and views.

themeobject

Design tokens: colors, fonts, spacing, shadows, animations, breakpoints, and border radius.

pagesarray

Server-rendered pages with 63 component types, SEO metadata, and i18n support.

authobject

Authentication strategies (email/password, magic link, OAuth), roles, and two-factor authentication.

languagesobject

Multi-language support with $t: translation syntax, browser detection, and language persistence.

componentsarray

Reusable UI templates with $ref referencing and $variable substitution.

analyticsobject | boolean

Privacy-friendly, cookie-free, first-party analytics. Set to true for defaults or configure with options.