Is there a "best practice" doc that defines how to prepare an ERPNext app for public distribution?

I understand that the app should install itself from GitHub, but are there standardized ways to ensure that it is correctly configured?

In my case, I have:

  • hooks into Core modules
  • customized forms
  • a NodeJs application

What would a future user expect the complete package to look like and behave like?