Thanks Justin for this article!

Currently, I still use customized MerlinWP for theme onboarding.

https://github.com/richtabor/MerlinWP

The problem with MerlinWP, it will not compatible with Theme Check plugin, so it is only for premium/private theme.