Skip to content
Talk to QCS
Home / Open frameworks / Framework M

Open framework · Python · Apache-2.0

Frappe's ideas on a modern Python stack. Built for multi-tenant, cloud-native apps.

Framework M is an open, metadata-driven Python framework inspired by Frappe. DocTypes are typed Python classes, every infrastructure concern sits behind a swappable adapter, and tenancy is part of the core. It is young and moving quickly.

Core concepts

How Framework M is put together.

01

Code-first DocTypes

Typed Python classes rather than database JSON. One definition gives the schema, REST API, Desk UI, validation and permissions.

02

Hexagonal architecture

Repositories, events, storage, permissions and job queues are protocols, so adapters can be swapped through configuration.

03

Multi-tenancy

Tenant isolation is a protocol in the core, rather than a separate site and database per tenant.

04

Async jobs and events

Async request handling, background jobs and an event bus for decoupled processing.

05

Identity

Local users for development; OIDC or SAML sign-in and attribute-based access policies in production.

06

Familiar tooling

An m CLI that mirrors bench (new app, new DocType, migrate) and a visual Studio that generates Python code.

Our assessment

Strengths and trade-offs.

Our view as of November 2026, written for teams choosing a foundation for business software.

Strengths
  • A modern, typed, async Python stack built on mainstream libraries (Litestar, SQLAlchemy, Pydantic).
  • Code-first schemas that are reviewed in Git like any other code.
  • Designed for multi-tenant SaaS, and to grow from a modular monolith into services without a rewrite.
  • Storage, identity and other infrastructure can change without rewriting business logic.
  • Familiar concepts for Frappe developers, under the permissive Apache-2.0 licence.
  • An open-source ERP layer, Business M, already covers multi-depot supply chain, warehouse operations and double-entry accounting and stock ledgers.
Trade-offs
  • Young: first released in January 2026 and still on 0.x versions, so interfaces can change between releases.
  • A small maintainer team and community compared with Frappe or Ash.
  • Its ERP layer, Business M, is also pre-1.0 and focused on distribution and supply chain; its module range is far narrower than ERPNext's.
  • Some enterprise adapters are described as options; confirm each one exists before relying on it.
  • Few production references, hosting providers or experienced developers so far.
Fit

What it suits. What it doesn't.

Well suited to
  • New Python business applications or SaaS products on PostgreSQL
  • Multi-tenant platforms with strict tenant isolation
  • Teams with Frappe experience who want a typed, async stack
  • Distribution and supply-chain operations that fit Business M
  • Pilots and new projects that can absorb early-stage change
Less suited to
  • A broad ERP footprint today, such as manufacturing, HR and CRM together
  • Programmes that need long-term interface stability now
  • Teams that must hire from a large existing talent pool
How we work with it: We follow Framework M closely, assess its fit against your requirements and can prototype services that connect to ERPNext through APIs and events.

Which foundation fits your project?