Project Meru

Open source · Pre-alpha · Dual licensed

Addons included.One kernel.

Sumeru is an open-source modular ERP framework in Go. Business functions are addons: contacts, products, CRM, sales, invoicing. Each addon is a folder with a manifest, Go models and XML views. The kernel discovers it, resolves dependencies, creates tables and wires menus.

3Go modules
12Addons today
1Database
0JS dependencies
Heads up. Sumeru is pre-alpha. The framework runs and the lead-to-cash flow works end to end, but there is no release, no upgrade guarantee, and no test suite in the addon repos. Do not run your business on it yet.

01 / Foundation

One design.
Every addon.

The ORM, XML views, access rights, event bus and JSON-RPC API ship as one kernel and share one addon contract. Declare a model once: it becomes a table, a form, and an API resource.

account_journal.go
package models

import "sumeru/core/sdk"

type AccountJournal struct {
    sdk.BaseModel
}

func (AccountJournal) ModelName() string {
    return "account.journal"
}

func (AccountJournal) Fields() []sdk.FieldDefinition {
    return []sdk.FieldDefinition{
        {Name: "name", Type: sdk.Char, Required: true},
        {Name: "code", Type: sdk.Char, Required: true},
        {Name: "active", Type: sdk.Boolean, DefaultVal: true},
    }
}
Typed field metadata becomes a real PostgreSQL table on boot.

02 / Capabilities

One framework.
One addon contract.

Every capability is first-party. Nothing to assemble from eleven packages with eleven config styles.

sdk.RegisterModel
func init() {
    sdk.RegisterModel(sdk.RegisterModelInput{
        Model:  &AccountJournal{},
        Module: "account",
    })
}

// Tables and columns are derived from Fields()
// and synced additively on boot.

Models register from init(); the kernel keeps a name-to-model registry.

03 / Sumeru systems

One idiom,
every subsystem.

Dependency-free addon integration, server-rendered UI, and multi-company on a single database. All following the same shape.

01 · Addons

A folder is a product surface

Manifest, models, views, menus, security. The kernel discovers it, topologically orders depends, syncs schema and loads data files.

02 · UI

Server-rendered, no build step

Go templates plus a render package. Plain CSS and native ES modules: no bundler, no minifier, no Node toolchain for the product UI.

03 · Events

Integrate without importing

Invoicing reacts to a confirmed sales order it has no compile-time knowledge of. Registry lookups keep optional counterparts optional.

04 · Companies

One database, many companies

Switcher in the top bar, per-user company access, record rules scoped to the active company. Not multi-tenant. Separate customers need separate deployments.

04 / Start

Start with PostgreSQL and make run.

Go 1.26+ · PostgreSQL · Apache 2.0 community edition · Open source on GitHub

terminal
$ make run