Skip to main content
View as Markdown

Quick Start

Build your first Sovrium app in minutes. From zero to a running application. Choose the approach that fits your workflow.

Choose your approach

Sovrium supports two configuration formats. YAML is great for simplicity; TypeScript gives you full type safety and autocompletion.

Option A: YAML + CLI

The simplest path. Install the Sovrium CLI, write a YAML config, and start the server:

  1. Install the CLI — Install Sovrium globally with Bun to get the sovrium command.

    bun add -g sovrium
  2. Create a config file — Create an app.yaml with the simplest valid configuration: just a name.

    name: my-app
  3. Add data tables — Define your data models with typed fields, options, and validation.

    name: my-app
    
    tables:
      - id: 1
        name: tasks
        fields:
          - id: 1
            name: title
            type: single-line-text
            required: true
          - id: 2
            name: status
            type: single-select
            options: [To Do, In Progress, Done]
  4. Start the server — Run the dev server and visit http://localhost:3000 to see your app.

    sovrium start app.yaml

Option B: TypeScript + Bun

The power-user path. Create a Bun project, add Sovrium as a dependency, and write type-safe code:

  1. Initialize a project — Scaffold a new Bun project with bun init and move into the directory.

    bun init my-app && cd my-app
  2. Add Sovrium — Install Sovrium as a project dependency.

    bun add sovrium
  3. Write your app — Open index.ts and import the start function with a minimal configuration.

    import { start } from 'sovrium'
    
    await start({
      name: 'my-app',
    })
  4. Add data tables — Extend the configuration with typed fields, options, and validation, with full autocompletion.

    import { start } from 'sovrium'
    
    await start({
      name: 'my-app',
      tables: [
        {
          id: 1,
          name: 'tasks',
          fields: [
            {
              id: 1,
              name: 'title',
              type: 'single-line-text',
              required: true,
            },
            {
              id: 2,
              name: 'status',
              type: 'single-select',
              options: ['To Do', 'In Progress', 'Done'],
            },
          ],
        },
      ],
    })
  5. Run your app — Execute index.ts with Bun. Visit http://localhost:3000 to see your app.

    bun run index.ts

What's next?

Now that your app is running, explore the schema reference to add more capabilities: