Frappe Framework
Frappe Framework is a full-stack Python and JavaScript framework used to build database-backed business applications.
Why consider Frappe Framework?
Frappe Framework is an open-source, full-stack web application framework in Python and JavaScript. It provides a metadata-driven architecture with an automated admin desk, REST APIs, and multi-tenant site management for developers.
Learn Frappe Framework by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide4 sections
Developing Full-Stack Web Applications with Frappe Framework
Frappe's web development framework makes it super easy to build applications with a low code architecture using a metadata-driven approach in Python and Javascript. By defining structured data models, developers can generate fully functional web backends, responsive interfaces, and administrative dashboards without writing repetitive CRUD boilerplate (see Frappe Framework Official Website).
At its core, Frappe Framework is a full-stack web application framework that uses Python and MariaDB on the server side and a tightly integrated client side library. Originally built to power ERPNext, the platform couples an expressive server-side Python runtime with a comprehensive client-side architecture to streamline full-stack software delivery (Frappe Framework README).
Core Architecture and Data Modeling
A DocType is analogous to a Model in other frameworks, defining database tables, column names, model behavior, and how records render across Desk views. When you construct a DocType inside the Desk UI or via code, Frappe generates database schema tables, manages field validations, and configures UI forms and list views automatically (Frappe DocType Tutorial).
To enable rapid integration with third-party software and external clients, Frappe provides an automatically generated RESTful API for all models, enabling easy integration with other systems and services. Every DocType automatically receives standard create, read, update, and delete endpoints alongside role-based permission checks (Frappe Repository Documentation).
Setting Up the Bench Environment
Local development in the Frappe ecosystem is orchestrated through Bench. Bench is the command line tool to manage Frappe apps and sites, initializing virtual environments, installing dependencies, and building static assets (Bench Setup Guide). You can initialize a new workspace directory using the official command:
bench init frappe-benchOnce the bench workspace is initialized, you can scaffold standalone applications. Developers create a Frappe app scaffold using the bench CLI, where hooks.py is used to extend or intercept standard functionality provided by the framework (Frappe App Creation Guide). Generate a new application package inside your bench directory by executing the scaffolding command:
bench new-app library_managementSite Management and Multi-Tenancy
Frappe features built-in multi-tenant site isolation. Each site comes with a database, and Bench allows you to create multiple sites and access them separately in the browser on the same port via built-in multi-tenancy support (Frappe Site Creation Guide). Provision a new site database with its dedicated configuration file by running the following command from the bench directory:
bench new-site library.localhostBefore creating new DocTypes, developers enable developer mode on our bench to facilitate boilerplate creation and track models in version control (Frappe Developer Configuration). You can enable this globally across the bench using the official configuration command:
bench set-config -g developer_mode trueMaintenance, Updates, and Licensing
The platform is actively developed and maintained with frequent releases. The v16.31.0 release adds a between filter for checking whether numbers, dates, and date-times fall within an inclusive range, with date-only limits including the entire ending day (Frappe Release Notes).
For organizations looking to deploy without managing their own Linux servers, managed hosting is also available. For managed hosting, Frappe Cloud takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments (Frappe GitHub Repository).
Frappe Framework is distributed as open source software under the permissive MIT License by Frappe Technologies Pvt. Ltd., giving teams complete freedom to inspect, customize, and self-host their applications (Frappe Official License).
Related tools
More options with a similar category or technology profile.
diskus
Minimal, fast alternative to du -sh written in Rust using multi-threaded directory traversal.
peco
Simplistic interactive filtering tool for Unix pipelines, process lists, and file trees.
Dapr CLI
Command-line tool for managing Dapr distributed application runtime environments and sidecars.
Freeze
Generate beautiful image screenshots and SVGs of code snippets and terminal outputs.