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

Open framework · Python · MIT

The framework behind ERPNext. Records, permissions and workflows first.

Frappe is a full-stack, metadata-driven framework. Define a DocType and you get the database table, forms, list views, REST API, permissions and reports. It is the base of ERPNext, Frappe HR, CRM, Helpdesk, Insights and a large ecosystem of open-source business applications.

Core concepts

How Frappe Framework is put together.

01

DocTypes

Metadata defines each record type: fields, naming, validation and links. Changes migrate the database and are versioned as JSON inside the app.

02

Desk

Generated forms, list, report, kanban and calendar views for every DocType, with no front-end build.

03

Permissions

Role permissions, user permissions on linked records, field-level permission levels and document sharing.

04

Workflows

Configurable states, transitions and approvers, with assignments, comments and a version history on every document.

05

APIs and events

A REST API for every DocType, whitelisted Python methods, webhooks, document event hooks and scheduled jobs.

06

Multi-site

One bench serves many sites, each with its own database: strong isolation for group companies or hosted customers.

Our assessment

Strengths and trade-offs.

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

Strengths
  • Ready business applications: start from ERPNext, HR or CRM instead of an empty project.
  • Very fast for record-heavy back-office software: forms, lists, reports and permissions come with the schema.
  • Customisation without code (custom fields, client and server scripts, print formats), with full Python when needed.
  • Mature, MIT-licensed and widely deployed, with a large partner and developer community.
  • Self-host anywhere or use Frappe Cloud; the data stays in a standard SQL database.
Trade-offs
  • Opinionated: designs that work against the DocType and Desk model end up fighting the framework.
  • MariaDB first; PostgreSQL support is less complete across the app ecosystem.
  • Synchronous request model with request-global state; streaming and very high-concurrency work belongs in separate services.
  • Major-version upgrades of heavily customised sites need planning and regression testing.
  • Highly designed customer-facing interfaces usually need a separate front end.
Fit

What it suits. What it doesn't.

Well suited to
  • ERP, accounting, inventory, manufacturing, HR and CRM
  • Internal systems built around records, approvals and reports
  • Extending ERPNext for an industry or a group of companies
  • Replacing proprietary ERP with software you can own and host
Less suited to
  • Real-time, high-throughput event processing
  • Consumer-scale applications
  • Products where a bespoke user experience is the main differentiator
How we work with it: Our primary delivery platform for more than a decade: ERPNext implementations, custom Frappe apps, integrations and migrations from proprietary ERP. Recognised as Frappe's Best Partner at Frappeverse 2025.

Which foundation fits your project?