| name | frappe-backend |
| description | Frappe backend guidance for Python and backend-adjacent JavaScript surfaces such as client interaction patterns, hooks, APIs, patches, scheduler logic, reports, and server-side review. Use when implementing or reviewing Frappe backend behavior. |
Treat Frappe backend work as a Python-first system with important JavaScript touchpoints.
Cover:
- controllers and document lifecycle methods
- hooks
- whitelisted methods
- scheduler jobs and background work
- patches and migrations
- server scripts when they are the right layer
- report backends
- client-to-server API contracts
Principles:
- prefer framework APIs over ad hoc patterns
- keep imports clean and explicit
- use permissions deliberately
- separate document logic, service logic, and integration logic
- avoid accidental public APIs
Before writing code, decide whether the request should instead be handled by:
Custom Field
Property Setter
Client Script
Server Script
Workflow
Report
Workspace