I somewhat recently settled on using use-package and straight — I highly recommend this approach. You can get pretty far using what comes with emacs and adding a bit more.
You can see how I do it in my emacs config[1] but it's a little bit special with meow[2] for a colemak keyboard. There's a youtube channel that I've skimmed[3] that helped me modernize my config by relying more on emacs' basic features.