1. Build with no dependencies on package manager-based packages. Dynamo handles these very poorly and it creates a terrible end-user experience.

  2. Publish your Dynamo package with an email that you plan on having access to for the foreseeable future. Gmail is forever, work emails are not.

    <aside> 💡 Note: This has became more difficult recently with Autodesk SSO. You cannot simply login to another account and all is well. If you are running into these issues you are able to contact the Dynamo team directly to setup multiple emails to manage a package.

    </aside>

  3. Versioning is very important. Decide on it up front because it does matter. There are several ways to do this. A few of the most popular are:

    Semantic Versioning 2.0.0

    Calendar Versioning

    <aside> 💡 Personally, I use calendar versioning for Dynamo packages. If I published a version of Rhythm February 2, 2021 it would be, v.2021.2.1. Reason being, it is my first release of Rhythm this month of this year. 2021 is the year, 2 is the month, and 1 is the patch number, (not the day of the month as it may seem).

    </aside>

    The important thing with version is to pick one and stick with it. Dynamo's package manager will not allow you to start with Calendar Versioning, "2021.1.1" and switch to Semantic Versioning, 1.0.0 because 2021 is technically a "higher" version. 😒

  4. For Zero-Touch Developers: Never bundles DLLs in your package that the host software already loads. This includes items like the RevitAPI or any of the Dynamo DLLs. This will raise all sorts of errors in Dynamo and can result in crashes.