Sevro

Introduction

Sevro is an open-source low-code backend platform. Define data models, write business rules, get an API.

What is Sevro?

Sevro is an open-source low-code backend platform. It lets you build the data layer of applications — models, business rules, and APIs — without writing traditional code.

Think of it as a programmable database with built-in business logic. You define your data structures, write rules about how data can be created and changed, and Sevro gives you a fully functional API automatically.

Why Sevro?

Building software backends is expensive and slow. Every project needs data models, business rules, APIs, auth, and audit trails. Developers rebuild these same pieces every time.

Existing low-code tools solve parts of this but are either too opinionated, not extensible, closed source, or UI-first with the API as an afterthought.

Sevro is different: API-first and headless. The API is the product. A UI can be built on top, but the core value is a programmable backend that:

  1. Enforces your data model — define attributes with types, Sevro rejects bad data
  2. Runs your business logic — define methods with conditions and actions; Sevro executes them
  3. Gives you an API for free — every entity is immediately queryable
  4. Is fully extensible — logic is written in CEL, with support for custom functions and integrations
  5. Is open-source — self-hostable, no vendor lock-in

Core concepts

Modules

A module is a self-contained application or feature area. Think "CRM", "Invoicing", or "Inventory". Each module contains entities.

Entities

An entity is a type of thing in your system. In a CRM module, you might have: Contact, Company, Deal. Each entity has attributes and methods.

Attributes

Attributes define the shape of your data. A Contact might have name (string), email (string), age (number), is_active (boolean). Sevro enforces these — bad data is rejected.

Methods

Methods define how data can change. Every action goes through a method with:

  • Conditions — rules that must be true before the action happens
  • Actions — what actually changes
  • Parameters — inputs the caller must provide

A method marked as a "constructor" creates new records.

Example

Module: Invoicing / Entity: Invoice

  • Attributes: customer_name, amount, status, paid_at
  • Constructor: CreateInvoice — requires customer_name and amount, sets status = "draft"
  • Method: MarkPaid — condition: status == "draft", action: sets status = "paid" and paid_at = now()
  • Method: Cancel — condition: status != "paid", action: sets status = "cancelled"

With just this definition, Sevro gives you an API to create invoices, mark them paid, list/filter/paginate, validation that rejects bad data, and an audit trail — no backend code written.

Next steps

On this page