know.2nth.ai โ€บ Technology โ€บ tech โ€บ frappe
tech/frappe ยท Sub-domain hub

One framework.
Thirteen apps.

Frappe started as the Python framework underneath ERPNext and grew into a full open-source suite โ€” HR, CRM, helpdesk, learning, BI, knowledge, drive, chat, and a hosted layer of its own. Every app is built the same way: declare a "doctype" once, and you get a database table, a list view, a form, a REST endpoint, and an RPC surface for free. This hub is the map.

13
Apps
1
Live explainer
AGPL
v3
01 ยท The ecosystem

Frappe, by what it builds.

Five bands โ€” foundation, ERP & finance, people & CX, knowledge & collaboration, and builders & hosting. Each card maps to a leaf in tech/frappe/*. The framework is the only one with a full explainer today; the rest land in sequence.

Foundation ยท 1
ERP & Finance ยท 2
ERPNext
biz/erp โ†—
biz/erp/erpnext

The flagship app โ€” the open-source ERP that Frappe was originally built to support. Manufacturing, stock, sales, purchasing, accounting, projects. Lives in the biz/erp branch of the tree because it's a system of record, not a framework.

Frappe Books
Stub
tech/frappe/books

Free desktop accounting for small businesses. Single-user, offline-first, built on Electron โ€” the answer when ERPNext is too much and a spreadsheet is too little.

People & CX ยท 3
Frappe HR
Stub
tech/frappe/hr

HRMS โ€” employees, payroll, leave, attendance, expense claims, performance, recruitment. Spun out of ERPNext as a standalone app in 2023 so HR teams don't need the manufacturing baggage.

Frappe CRM
Stub
tech/frappe/crm

Lead-to-deal pipeline, kanban boards, email integration, call logs. The 2024 rebuild โ€” Vue 3 frontend on the Frappe backend. Distinct from the older ERPNext CRM module.

Frappe Helpdesk
Stub
tech/frappe/helpdesk

Ticket management with SLAs, escalations, customer portal, knowledge base, and email-to-ticket. Built to pair with Frappe CRM but stands alone.

Knowledge & Collaboration ยท 4
Frappe LMS
Stub
tech/frappe/lms

Open-source learning management โ€” courses, lessons, quizzes, batches, certificates. The platform Frappe School itself runs on.

Frappe Wiki
Stub
tech/frappe/wiki

Markdown-first internal knowledge base. Versioning, sidebar navigation, search, and the same role permissions every other Frappe app uses.

Frappe Drive
Stub
tech/frappe/drive

Self-hosted cloud file storage with sharing, previews, and folder ACLs. The Google Drive replacement for orgs that want files inside their own infra.

Raven
Stub
tech/frappe/raven

Slack-style team chat โ€” channels, threads, reactions, file uploads, bots. Talks to the rest of the Frappe stack natively, so a CRM event can become a chat message in one hook.

Builders & Hosting ยท 3
Frappe Builder
Stub
tech/frappe/builder

Visual website builder โ€” drag pages onto a canvas, bind to Frappe doctypes, publish. The no-code surface for marketing pages and customer portals on top of an existing Frappe site.

Print Designer
Stub
tech/frappe/print-designer

Visual print format editor. Lay out invoices, quotations, and statements without writing Jinja โ€” replaces the old code-based print formats with a WYSIWYG canvas.

Frappe Cloud
Stub
tech/frappe/cloud

The official managed hosting layer. Bench instances, automated backups, app marketplace, custom domains, regional sites. The fastest way to run any of the apps above without standing up your own infra.

02 ยท The shared pattern

One doctype model holds it all together.

Thirteen apps could look like thirteen different codebases. They don't, because every one of them is built on the same primitive: the doctype. Define a doctype in JSON, and you get a database table, a list view, a form, validation, role permissions, audit trails, REST, RPC, full-text search, and webhook hooks โ€” all without writing a controller, a route, or an SQL migration.

Doctypes, not models

A doctype is the unit of everything in Frappe. It's metadata: a JSON file that declares fields, links, child tables, permissions, and naming rules. The framework reads that metadata at runtime and synthesises the rest. That's why ERPNext, CRM, Helpdesk, and LMS share the same look, the same auth, and the same API shape โ€” they're all doctypes on the same engine.

# A minimal doctype JSON โ€” Frappe synthesises the rest
{
  "doctype": "DocType",
  "name": "Customer Visit",
  "module": "CRM",
  "naming_rule": "By \"Naming Series\" field",
  "autoname": "naming_series:",
  "fields": [
    { "fieldname": "customer", "fieldtype": "Link", "options": "Customer", "reqd": 1 },
    { "fieldname": "visit_date", "fieldtype": "Date", "reqd": 1 },
    { "fieldname": "notes", "fieldtype": "Long Text" },
    { "fieldname": "items", "fieldtype": "Table", "options": "Visit Item" }
  ],
  "permissions": [
    { "role": "Sales User", "read": 1, "write": 1, "create": 1 }
  ]
}

From that one file you immediately get /api/resource/Customer Visit for CRUD, a list view at /app/customer-visit, role-checked permissions, the right Postgres columns, child-table editing inline, and a hookable on_submit server event. This is the same mechanism every app in this hub uses โ€” learn it once and the whole ecosystem opens.

03 ยท Related branches

Where the Frappe branch connects.

Frappe is unusual in the tree โ€” it sits in tech/ as a framework, but its flagship app (ERPNext) lives in biz/erp/. Think of tech/frappe/framework as the substrate and the business apps as instances of it. The integration patterns you learn here apply to every Frappe-built system you'll meet downstream.