When building a Salesforce package, there are two ways to create and maintain them: 1GP and 2GP.
1GP uses a development org as the source of truth. Most consultants are very familiar with this way of working. You typically start in a DEV sandbox for development, then migrate changes to a UAT sandbox for testing, and finally to production.
2GP uses a source code repository (SCR) as the source of truth. Popular choices are GitHub and BitBucket. You typically start in a scratch org for development, and push changes back to the SCR. Then you deploy from the SCR to other environments, including production.
There are a number of advantages of each, but Salesforce generally recommends 2GP. However it is more technically complicated this way.
As an Independent Software Vendor (ISV) partner, I build and maintain a 2GP package. As a soloist (with subcontractors), it’s not easy to handle everything myself.
Being an ex-software developer, I’m able to handle a certain level of technical elements. But there are limits. So I rely on tools and applications to keep things running smoothly.
One of the newer applications I use is called hutte.io
Hutte simplifies the technical bits and replaces it with button clicks. So creating a new package version, creating scratch orgs with dummy data, and handling error corrections becomes significantly easier.
The takeaway
After using the application for more than a year, I recently partnered with Hutte. They have saved me countless hours and frustration. If it helps me, perhaps it can help your team.