Building custom applications with Frappe framework


In today's fast-paced world, every company needs quick solutions that can keep up with their unique & dynamic  needs. Therefore it would be difficult to create an app for anyone. Therefore people generally prefer using frameworks like Frappe. Frappe is the most used open-source framework that empowers companies to rapidly easily develop & quickly deploy apps with ease.

Whether you're an experienced professional developer or just a newbie starting, Frappe offers a powerful & intuitive platform for building scalable, user-friendly, & feature-rich apps. In this article, we'll show you how to get started building any custom apps. So buckle up & get ready to unleash creative experience with Frappe!

When to use Frappe?

Frappe is a great choice when you need to create an app quickly & efficiently. It has many features built-in, which means you don't have to worry about reinventing the wheel. You can use it to create apps for various purposes, such as ERP systems, CRMs, project management systems, & much more. Frappe also provides a lot of flexibility, so you can customize your app to meet your specific needs.

If you are a developer who needs to create specialized apps, Frappe is a better option. It is an open-source framework, so you can access the source code & customize it to meet your needs. If you are new to Frappe, there are many resources available to help you get started, including documentation, tutorials, & a highly active community of developers.

How to Solve the Problem of Building specialized apps With Frappe?

Are you tired of the limitations of your current ERP system? Do you wish you could have a specialized app tailored to your specific needs? Look no further than the Frappe, an open-source ERP platform that allows you to create specialized apps & extend existing ones to fit your company's needs.

Step 1: Create a site:

The first step to building a specialized app with Frappe is to create a new site using Frappe cloud or install it on your server. Frappe provides easy-to-follow instructions for both options on their website.

Step 2: Create a specialized app:

Once you have your site set up, you can create a specialized app using the Frappe. The process is simple, & you can follow a tutorial like this one to get started.

Step 3: Create a doctype:

A doctype is a data structure that represents a type of document in Frappe. You can create a doctype for your specialized app using the Frappe. This doctype will be the foundation for any data you want to store & manage in your app.

Step 4: Create a Tab Report for the ToDo report:

One of the most powerful features of the Frappe is its ability to generate reports. You can create a Tab Report to display your ToDo data in a table format, making it easy to manage & track tasks.

Step 5: Add the Tabulator library files to the app:

The Tabulator library is a powerful tool for generating interactive tables in your app. You can add this library to your specialized app to enhance the functionality of your Tab Report.

Step 6: Load the Frappe query report inside the Tabulator Report:

By loading the Frappe query report inside the Tabulator Report, you can make use of Frappe's powerful query tools & filters to further refine your data.

Step 7: Add a column formatted to handle HTML, and link fields:

When displaying data in your Tab Report, you may want to format certain fields. By adding a column formatted, you can handle HTML & link fields to display them in a user-friendly manner.

Step 8: Create a Script Report:

In addition to Tab Reports, you can create Script Reports to generate specialized reports using JavaScript. This allows for even more customization & control over your data.

Step 9: Load filters & specialized js from report settings:

Finally, by loading filters & specialized JavaScript from the report settings, you can further customize & control the behavior of your reports.

How To Override a Method in Frappe:

One of the powerful features of the Frappe is the ability to override methods. This allows developers to specialize the behavior of the framework without modifying the core code. To override a method in Frappe, you need to create a new Python module that contains the new implementation of the method. You can then tell Frappe to use your module instead of the default implementation.

1. Set Up frappe_docker & Visual Studio Code Dev Container:

The first step in building a specialized app using the Frappe is setting up frappe_docker & Visual Studio Code Dev Container. This allows developers to set up their development environment quickly & start working on the specialized app without any hassle. The setup process involves configuring hosts, creating a new site, & setting bench developer mode on the new site.

2. Setup Hosts:

The first step in setting up the development environment is to configure the hosts. This involves adding the IP address of the server to the host's file. This ensures that the server can be accessed from the development environment, & the developer can start working on the app.

3. Configure Honcho (not required since version-13-beta?):

In earlier versions of Frappe, developers had to configure Honcho to manage the development environment. However, with the release of version 13-beta, Honcho is no longer required. Developers can now start the development environment by running the "bench start" command.

4. Create a New Site:

Once the hosts are configured, the next step is to create a new site. This involves running the "bench new-site" command & providing the necessary details such as site name, MySQL root password, & administrator email address. This creates a new site with a default database & a set of default apps.

5. Set Bench Developer Mode on the New Site:

After creating the new site, the next step is to set bench developer mode on the new site. This allows developers to make changes to the site & see the changes in real time without having to restart the server. This is achieved by running the "bench --site name set-config developer_mode 1" command.

6. Install ERPNext:

The next step is to install ERPNext, which is an open-source ERP solution built on top of the Frappe. This provides a range of functionalities such as accounting, inventory management, HR management, & CRM, making it an ideal solution for building enterprise-level apps. Developers can install ERPNext by running the "bench get-app ERPnext" command & then running the "bench install-app ERPnext" command.

7. Start Frappe with Visual Studio Code Python Debugging:

Once the development environment is set up & ERPNext is installed, developers can start building their specialized app using the Frappe. Visual Studio Code Python Debugging provides an intuitive & robust debugging environment, allowing developers to debug their code efficiently. This is achieved by configuring the Visual Studio Code Python Debugging extension & then running the "bench start" command to start the server.

Install specialized App into an Existing ERPNext Site:

Once the Docker image is pushed to the GitLab container registry, developers can install the specialized app into an existing ERPNext site. To do this, developers need to first create a new site using the Frappe cloud or their infrastructure. Once the site is created, they can install the specialized app using the Frappe bench tool. This tool allows developers to manage & install specialized apps on their ERPNext sites.

Logging, Debugging, & Monitoring:

Frappe provides a robust logging & debugging system that helps developers monitor their apps' behavior. The following are some of the features of the logging & debugging system in Frappe.

1. Desk Logs:

Desk logs provide a detailed history of all the activities that have taken place on the desk. Desk logs capture all changes made to documents, including updates & deletions. With desk logs, you can easily track down errors & fix them. Desk logs also provide a detailed audit trail that helps administrators track user activity.

2. Server Logs:

Server logs capture all server-side activities, including request logs, error logs, & debug logs. With server logs, you can easily identify & fix errors in your app. Server logs also provide useful information that can help administrators optimize the server.

3. Printing Log Messages:

Frappe provides an easy way to print log messages to the console. With the Frappe, you can easily print messages to the console, making it easier to debug your app.

4. Logging/Printing Exception Stack Trace:

Frappe provides an easy way to print the exception stack trace to the console. With the Frappe, you can easily print the stack trace of an exception, making it easier to debug your app.

5. Doc Navigation:

Frappe provides an easy way to navigate between documents. With doc navigation, you can easily move between documents, making it easier to work with multiple documents at the same time. Doc navigation also provides an easy way to search for documents, making it easier to find the document you are looking for.

Deploying to Frappe Cloud:

Frappe Cloud is a cloud-based platform that offers hosting & deployment of Frappe apps. It allows users to easily deploy their customized apps without worrying about server maintenance & setup. To deploy our app on Frappe Cloud, we first need to create our app & push it to GitHub.

1. Pushing Our App to GitHub:

GitHub is a web-based platform used for version control & collaboration. We can push our app to GitHub to make it accessible to other developers & also to deploy it on Frappe Cloud. Once we have pushed our app to GitHub, we can create a private bench.

2. Creating a Private Bench:

A bench is a collection of apps that run on the Frappe. A private bench is a bench that runs locally on our machine. To create a private bench, we need to install the Frappe & set up a local environment. Once we have set up a private bench, we can add our app from GitHub.

3. Adding Our App from GitHub:

To add our app from GitHub, we need to clone the repository to our local machine & then add it to our bench. Once we have added our app to the bench, we can create a new site.

4. Creating a New Site:

A site is an instance of our app running on the Frappe. To create a new site, we need to run a command in the bench & specify the name of the site & the app we want to install. Once we have created a new site, we can deploy it to Frappe Cloud.


In conclusion, Frappe is a powerful & flexible open-source tool for building customized apps. It has many built-in features that make it easy to create apps quickly & efficiently. Whether you need to create an ERP system, a CRM, or any other specialized app, Frappe is a better option. With a highly active community of developers & extensive documentation & tutorials available, Frappe is easy to learn & use.


1. What is the Frappe Cloud, & how does it differ from the Frappe?

Frappe Cloud is a hosting platform for Frappe apps, while Frappe is an open-source framework for building customized apps. Frappe Cloud provides hosting, deployment, & support for Frappe apps, while Frappe provides the tools for building these apps.

2. Can I use Frappe to create a specialized ERP system?

Yes, Frappe is a better option for building specialized ERP systems. It has many built-in features, such as user management, data modeling, & workflow management, that make it easy to create an ERP system quickly & efficiently.

3. How does Frappe compare to other web frameworks like Django?

Frappe & Django are both web frameworks, but they have different strengths & weaknesses. Frappe is focused on creating specialized company apps, while Django is more general-purpose. Frappe has many built-in features that make it easy to create specialized apps quickly, while Django provides more low-level control over the app's implementation.

4. Can I extend the functionality of Frappe using third-party libraries?

Yes, Frappe is built on top of Python, so you can use any Python library with it. There are many third-party libraries available for Python that can extend the functionality of Frappe, such as NumPy, Pandas, & Matplotlib.

5. Is Frappe suitable for large-scale apps?

Yes, Frappe is highly scalable & suitable for large-scale apps. It has been used to create many large-scale apps, including ERP systems, CRMs, & project management systems. With its highly active community of developers & extensive documentation & tutorials, Frappe is a better option for building specialized apps of any size.

Similar readings




Advanced RAG 04: Contextual Compressors & Filters



We’re a leading global agency, building products to help major brands and startups, scale through the digital age. Clients include startups to Fortune 500 companies worldwide.


Flat no 2B, Fountain Head Apt, opp Karishma Soci. Gate no 2, Above Jayashree Food Mall, Kothrud, Pune, Maharashtra 38