Unlocked packages versus managed packages for internal apps
Key Takeaway
An unlocked package is the right package type for most use cases, unless you plan to distribute the app on AppExchange. For commercial distribution through AppExchange, a managed package is ideal.
A package is a container you fill with metadata, such as related features, customizations, and schema, so you can install the same app in other orgs. When you compare unlocked packages and managed packages, the main question is whether the app stays inside your company or goes to customers through AppExchange.
Package size and distribution
A package can be as small as one component or as large as a set of related apps. You can distribute a package to other orgs, including orgs outside your company.