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:
- Automation through Server and Client Scripts
- Building Web Pages and Portals
- Custom API Development
- Email and Notification Systems
- Frappe Workflow Automation
- Role-Based Permissions and Access Control
- 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
- Create a Site in Frappe Framework v15
- Create a DocType in Frappe Framework v15
- Form Scripts in Frappe Framework v15
- Portal Pages in Frappe Framework v15
- Controller Methods in Frappe Framework v15