Skip to main content

What’s Next in Frappe Framework (Version 15)

Introduction — What’s Next After Learning Frappe Basics?

If you’ve completed the foundational Frappe tutorials such as Creating a Site, Building DocTypes, and Using Controller Methods, you now understand the basic building blocks of Frappe development.

The next step is to move beyond these fundamentals and explore advanced capabilities that make Frappe one of the most powerful low-code frameworks for enterprise applications.

In this guide, you’ll discover what to learn next in your journey — including automation, web development, integrations, and API-based app building using Frappe Framework Version 15.

Next Steps in Your Frappe Learning Journey

Frappe offers a modular ecosystem. Once you’ve learned how to create a site and DocTypes, the next logical steps include:

  1. Automation through Server and Client Scripts
  2. Building Web Pages and Portals
  3. Custom API Development
  4. Email and Notification Systems
  5. Frappe Workflow Automation
  6. Role-Based Permissions and Access Control
  7. App Deployment and Production Setup

Each of these areas deepens your understanding of how Frappe integrates the front-end and back-end to build seamless ERP and business applications.

1. Server Scripts — Backend Automation

Server Scripts allow you to execute custom Python logic without modifying the core codebase.
You can create automated routines that run when specific document events occur, such as before saving or after submitting.

Common Script Types:

  • Document Events: Run automatically on document actions (e.g., validate, on_submit).
  • API: Create custom endpoints callable via HTTP requests.
  • Scheduler Events: Execute scheduled jobs periodically.

Example:

# Server Script Example: Automatically set the approval date
if doc.status == "Approved" and not doc.approval_date:
doc.approval_date = frappe.utils.nowdate()

Learn next: Controller Methods in Frappe v15

2. Client Scripts and Form Interactions

Client Scripts (also called Form Scripts) control form behavior on the front-end using JavaScript.
They enable field validation, auto-population, and user interface customization.

Example:

frappe.ui.form.on("Task", {
validate: function(frm) {
if (!frm.doc.due_date) {
frappe.throw("Please set a Due Date before saving!");
}
}
});

These scripts run directly in the browser and enhance usability without backend changes.
Learn next: Form Scripts in Frappe v15

3. Building Websites and Portals

Frappe includes a built-in Website Module that lets you create dynamic and interactive web pages powered by Jinja templates and Portal Pages.

Key Components:

  • Web Pages: Static or dynamic pages available to all visitors.
  • Portal Pages: Personalized pages for logged-in users (e.g., Orders, Invoices).
  • Web Forms: User-facing data entry forms linked to DocTypes.

Example Portal Page:

/www/sales_orders.html

Displays a list of sales orders for the logged-in user.
Learn next: Portal Pages in Frappe v15

4. REST API and Integration Development

The Frappe Framework includes a robust, RESTful API layer for interacting with DocTypes, workflows, and custom apps.
Every DocType automatically exposes standard REST endpoints.

Example API Endpoints:

Method Endpoint Description
GET /api/resource/Customer Fetch list of customers
POST /api/resource/Customer Create a new customer
PUT /api/resource/Customer/{name} Update customer details
DELETE /api/resource/Customer/{name} Delete a record

Authentication:
APIs support Token-Based, OAuth2, and API Key authentication methods.

Advanced Tip:
You can extend Frappe’s REST API by defining whitelisted Python methods with @frappe.whitelist() decorators.

@frappe.whitelist(allow_guest=True)
def get_active_customers():
return frappe.get_all("Customer", filters={"disabled": 0}, fields=["name", "customer_name"])

Learn next: Frappe REST API Documentation (v15)

5. Notifications, Emails, and Alerts

Frappe v15 provides an integrated notification and email system for internal communication and automated alerts.

Email Templates:

You can define reusable templates with placeholders:

<p>Dear {{ doc.customer_name }},</p>
<p>Your order {{ doc.name }} has been successfully confirmed.</p>

Notification Rules:

Use the Notification DocType to send automated messages when conditions are met (e.g., “status = Overdue”).

Channels Supported:

  • System Email (SMTP)
  • Slack / Microsoft Teams (via Webhooks)
  • Desk Notifications

Learn next: Frappe Email and Notification Module

6. Role-Based Permissions and Access Control

Security in Frappe revolves around Role-Based Access Control (RBAC).
You can configure access at the DocType, field, or record level to ensure data integrity and compliance.

Example Configuration:

Role

Read

Write

Create

Submit

Cancel

Sales User
Sales Manager

Advanced users can use User Permissions and Custom Scripts for contextual access control.
Learn next: Frappe Role Permissions Documentation

7. Workflows and Approvals

Frappe’s Workflow Engine allows you to design document-based approval flows.

Each Workflow defines:

  • Document States (e.g., Draft, Pending, Approved)
  • Transition Conditions
  • Role-Based Actions

Example:

A Purchase Order can move from “Draft” → “Pending Approval” → “Approved” based on user roles.

Configuration Path:

Desk → Settings → Workflow

Learn next: Workflows in Frappe Framework v15

8. Custom App Development and Deployment

Once you master Frappe’s core features, you can start building custom applications.

Key Commands:

bench new-app my_app
bench --site mysite.localhost install-app my_app

Deployment Essentials:

  • Configure Procfile and Supervisor for background processes.
  • Use NGINX for reverse proxying.

Enable Production Mode using:

sudo bench setup production frappe

Learn next: Deploying Frappe Applications (v15)

Advanced Learning Paths

Once you are comfortable with the fundamentals, explore these advanced topics to master Frappe development:

Topic

Description

Custom REST Endpoints Extend core API functionality using Python
SocketIO Integration Build real-time chat and notification systems
Report Builder & Query Reports Create data-driven dashboards
Job Queues & Background Workers Automate long-running tasks with frappe.enqueue
Frappe Framework Testing Write unit tests using frappe.test_runner
App Version Control Manage updates via Git and Bench

Recommended Learning Roadmap

Stage

Key Learning Area

Outcome

Beginner Creating Site, DocTypes, Form Scripts Build and customize core modules
Intermediate Portal Pages, APIs, Workflows Develop full business apps
Advanced Integrations, REST APIs, Deployments Build enterprise-grade ERP apps

Cross-References and Related Tutorials

Click to rate this post!
[Total: 0 Average: 0]