App authoring guidelines

This page contains guidelines for publishers who are writing Frappe apps to publish on the Frappe Cloud Marketplace

If you are new to Frappe apps, learn more about it on You can also get started by following the Tutorial.

  1. We recommend having a settings doctype in your app to configure global behaviour of your app's functionality.
  2. Make sure your app supports the current stable version of Frappe and ERPNext (if applicable). You can also write version specific code by checking the version of these apps in your python code:
    from frappe import __version__ as frappe_version
    from semantic_version import Version
    if Version(frappe_version).major >= 13:
       # version 13 or above
       # version 12 or below
  3. Don't override base functionalities provided by Frappe. For e.g., Frappe ships with authentication pages like /login for Login & Sign Up, /update for resetting passwords. If you override these, you will have to implement their functionality again.
  4. Extend base functionalities by using hooks provided by the framework.