Frappe - Full-stack web framework

What is Frappe Framework?

Frappe is a full stack, batteries-included, web framework written in Python and Javascript.It is the framework which powers ERPNext. It is pretty generic and can be used to build database driven apps.

Why Frappe?
The key difference in Frappe compared to other frameworks is that meta-data is also treated as data. This enables you to build front-ends very easily. We believe in a monolithic architecture, so Frappe comes with almost everything you need to build a modern web application. It has a full featured Admin UI called the Desk that handles forms, navigation, lists, menus, permissions, file attachment and much more out of the box.

Why Frappe Framework?
Frappe was built to power our flagship product ERPNext. The core philosophy at Frappe is write as less code as possible. We prefer configuration over code. If a feature is generic and we need it, we put it right into the framework.

This has enabled us to build and maintain a complex application like an ERP which has thousands of features with a small team of developers.

1.Rapid Application Development
After setting up Frappe Framework, you can be productive in no time. Creating models, wiring controller code and updating views are all handled by the framework.

2. Batteries Included
Anything that might be needed by a modern web application is probably built into the framework already. PDF generation, Emails, SMS, Web Pages you name it. If there is something missing in Frappe Framework, we might already be working on it right now 

3. Easy Deployment
Bench is the all-in-one tool to manage all things Frappe. It handles app updates, database migrations, generating configs for nginx and supervisor, scaffolding new apps and much more.

4. Multi Tenant
Bench supports multi-tenancy out of the box. It means you can spin up multiple instances of apps with separate databases on the same codebase. It also supports port-based multitenancy where you can set up multiple bench environments for different versions of apps.

5. Extensible architecture
Build powerful extensions on top of Frappe by creating your own apps. Apps can bring their own models or modify existing ones in Frappe.