frappe is a free, open source content management systems (cms) project written in Python and released under MIT. It has 10,791 GitHub stars, 5,327 forks and 2,003 open issues, and was last pushed 6 hours ago. On this registry it ranks #9 of 47 tracked projects in Content Management Systems (CMS), with 5 head-to-head comparisons available. It gained 34 stars over the last 3 tracked days.

What is frappe?

What it is

Frappe Framework is a full-stack, low-code web framework written in Python and JavaScript, licensed under MIT. It runs on the server side on Python and MariaDB, and it ships with a tightly integrated client-side library that handles the browser layer of an application. The project sits in the Python and JavaScript web development ecosystem, and it has been developed for roughly fifteen years, with its first work beginning in 2005 and its repository now holding over ten thousand stars and more than five thousand forks.

The concrete problem Frappe solves is the amount of code required to build a database-backed business application. Instead of describing only how information is displayed, the framework lets developers define the meaning of the underlying data — a name, an address, an object type — as metadata, and it generates the resulting interfaces from that definition. Applications designed around the semantics of the system rather than around individual screens end up more consistent and easier to extend. The framework also addresses the supporting concerns of a real application: user and role management, permissions, an administrative interface, reporting, and API access all come built in, so a team does not need to assemble them from separate libraries.

Key capabilities

  • Covers both front-end and back-end development so a complete application can be built inside one framework.
  • Provides a pre-built, customizable admin dashboard for managing application data, which reduces the work needed to reach a usable interface.
  • Manages users and roles through a comprehensive permission system that controls access within the application.
  • Generates a RESTful API automatically for every model, which allows integration with other systems and services.
  • Supports customizable forms and views through server-side scripting and client-side JavaScript.
  • Includes a report builder that lets users create custom reports without writing code.
  • Defines applications through metadata, so object types and their semantics drive the generated application.

Who uses it and how

  • ERPNext, described in the README as a beast with more than seven hundred object types, was the first application built on the framework and remains its largest deployment.
  • Teams that do not want to run infrastructure themselves can use Frappe Cloud, an open-source hosting platform that handles installation, setup, upgrades, monitoring, maintenance and support across multiple Frappe deployments.
  • Self-hosters run the stack with Docker by cloning frappe_docker and bringing it up with docker compose -f pwd.yml up -d, with separate instructions provided for ARM architectures.
  • Developers building locally use bench, the command-line tool, and create a working site with bench new-site frappe.localhost.
  • Organisations that need isolation between customers can rely on the multitenant support indicated in the project topics.

Getting started

For a quick look, clone frappe_docker and run docker compose -f pwd.yml up -d; after a couple of minutes the site is available on localhost port 8080 with the default credentials Administrator and admin. For development, the bench install script sets up dependencies such as MariaDB and generates new passwords for the Administrator user, the MariaDB root user and the frappe user, printing them and saving them to ~/frappe_passwords.txt.

When to use it — and when not to

Frappe is a reasonable choice for

project readme (upstream, from github) — read inline

Frappe Framework

Low Code Web Framework For Real World Applications, In Python And JavaScript

Website - Documentation

Frappe Framework

Full-stack web application framework that uses Python and MariaDB on the server side and a tightly integrated client side library. Built for ERPNext.

Philosophy

The best code is the one that is not written

Started in 2005, Frappe Framework was inspired by the Semantic Web. The "big idea" behind semantic web was of a framework that not only described how information is shown (like headings, body etc), but also what it means, like name, address etc.

By creating a web framework that allowed for easy definition of metadata, it made building complex applications easy. Applications are usually designed around how users interact with a system, but not based on semantics of the underlying system. Applications built on semantics end up being much more consistent and extensible.

The first application built on Framework was ERPNext, a beast with more than 700 object types. Framework is not for the light hearted - it is not the first thing you might want to learn if you are beginning to learn web programming, but if you are ready to do real work, then Framework is the right tool for the job.

Key Features

  • Full-Stack Framework: Frappe covers both front-end and back-end development, allowing developers to build complete applications using a single framework.

  • Built-in Admin Interface: Provides a pre-built, customizable admin dashboard for managing application data, reducing development time and effort.

  • Role-Based Permissions: Comprehensive user and role management system to control access and permissions within the application.

  • REST API: Automatically generated RESTful API for all models, enabling easy integration with other systems and services.

  • Customizable Forms and Views: Flexible form and view customization using server-side scripting and client-side JavaScript.

  • Report Builder: Powerful reporting tool that allows users to create custom reports without writing any code.

Screenshots

List View Form View Role Permission Manager

Production Setup

Managed Hosting

You can try Frappe Cloud, a simple, user-friendly and sophisticated open-source platform to host Frappe applications with peace of mind.

It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.

Try on Frappe Cloud
</a>

Self Hosting

Docker

Prerequisites: docker, docker-compose, git. Refer Docker Documentation for more details on Docker setup.

Run the following commands:

git clone https://github.com/frappe/frappe_docker
cd frappe_docker
docker compose -f pwd.yml up -d

After a couple of minutes, site should be accessible on your localhost port: 8080. Use below default login credentials to access the site.

  • Username: Administrator
  • Password: admin

See Frappe Docker for ARM based docker setup.

Development Setup

Manual Install

The Easy Way: our install script for bench will install all dependencies (e.g. MariaDB). See https://github.com/frappe/bench for more details.

New passwords will be created for the Frappe "Administrator" user, the MariaDB root user, and the frappe user (the script displays the passwords and saves them to ~/frappe_passwords.txt).

Local

To setup the repository locally follow the steps mentioned below:

  1. Setup bench by following the Installation Steps and start the server

    bench start
    
  2. In a separate terminal window, run the following commands:

    # Create a new site
    bench new-site frappe.localhost
    
  3. Open the URL http://frappe.localhost:8000/app in your browser, you should see the app running

Learning and community

  1. Frappe School - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
  2. Official documentation - Extensive documentation for Frappe Framework.
  3. Discussion Forum - Engage with community of Frappe Framework users and service providers.
  4. buildwithhussain.com - Watch Frappe Framework being used in the wild to build world-class web apps.

Contributing

  1. Issue Guidelines
  2. Report Security Vulnerabilities
  3. Pull Request Requirements
  4. Translations


Frappe Technologies
</a>

Frequently asked questions

Is frappe free to use?

frappe is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does frappe do?

Low code web framework for real world applications, in Python and Javascript

What is frappe written in?

frappe is primarily written in Python. Its source is publicly available at https://github.com/frappe/frappe, and it has 10,791 GitHub stars.