Hi everyone,
We are starting a project using Frappe, specifically the CRM Portal and Lending apps. Most of the basic features are perfect for us, but we need to make some significant and deep changes.
I know Frappe recommends building a separate Custom App for our changes so we can easily update the official apps later (forward compatibility).
However, the specific customizations we need seem too invasive to manage easily in a custom app. I’m worried about breaking things when we update the core apps.
Our Main Customization Needs:
-
Rename Core Items: We need to rename the actual DocTypes and pages for things like Leads and Deals. We also need to remove, rename, or add many fields to the core Lead and Deal DocTypes.
-
Advanced Tasks: We need a complex Task system where the popup window (the Task Modal UI) changes completely based on what Task Type is selected.
-
Automation: We plan to use Workflows and scripts heavily for things like automating the Lead-to-Deal conversion process.
-
UI - Create new Pages written in vue utilizing the Frappe backend, and render within CRM Porta or Lending apps
The Problem:
When I try to do these changes using the recommended custom app method, it seems almost impossible or super complicated to maintain. Doing it by modifying the official app files directly works, but then we can’t update easily
My Questions to the Forum:
-
Is this level of deep customization (especially renaming core DocTypes or altering the Task UI behavior) normal or supported for Frappe apps?
-
Am I missing a standard, easy way to make these big changes while keeping the ability to update the official apps smoothly?
-
What is the community’s best practice for managing these invasive customizations without getting stuck on an old version?
-
For those who have heavily customized core apps - Do you rely on Fixtures/Hooks, or did you end up forking the apps?
Any advice on handling deep customization for Frappe’s core apps would be appreciated!
Thanks!