Skip to main content
View as Markdown

Build a CRM with Sovrium

You want a self-hosted CRM — contacts, companies, and a deal pipeline — without wiring a database or a UI by hand.

Scaffold from the template

The fastest path is the ready-made crm template, which includes companies, contacts, deals with a pipeline, and pages:

>_ terminal
sovrium init crm --template crm
cd crm
sovrium start app.yaml

The first argument is the directory to create; --template chooses what goes in it. Without --template, sovrium init crm scaffolds an empty app that merely happens to be named crm.

Or start minimal and grow

A CRM is just tables. This two-table starter is a complete, runnable config you can extend field by field:

app.ts
export default {
  name: 'crm',
  version: '1.0.0',
  tables: [
    {
      name: 'contacts',
      fields: [
        { name: 'full_name', type: 'single-line-text', required: true },
        { name: 'email', type: 'email' },
        { name: 'company', type: 'single-line-text' },
      ],
    },
    {
      name: 'deals',
      fields: [
        { name: 'title', type: 'single-line-text', required: true },
        { name: 'stage', type: 'single-select', options: ['lead', 'qualified', 'won', 'lost'] },
        { name: 'notes', type: 'long-text' },
      ],
    },
  ],
}

Verify

http://localhost:3000/api/tables/contacts/records and /api/tables/deals/records are live and ready for data.

Next

Last updated September 1, 2026

This documentation was written with AI, so errors or outdated content are possible. Sovrium is in beta. Contributions and corrections are welcome.

Built with Sovrium