For something that only uses your home folder, I recommend checking out mise https://mise.jdx.dev/
Basically, /etc/apk/world keeps a list of explicitly installed packages.
When you manually install a package, it's added to this list, when you manually remove a package, it's removed from the list.
Installation and upgrading (and "fixing) merely ensures that those packages and their dependencies are installed, no more, no less. This also automatically cleans up stale, unused dependencies.
It's a lovely way to get deterministic results. You can just back-up that world file, or copy it to another machine and get the exact same installation.
BTW how much of it is vibe coded?
The difference is that it strives to track all non-user files, (not just packages, and especially /etc), but you can adopt it partially.
The ppa directive hints that this is intended for Ubuntu because otherwise installing PPAs is a great way to break a non Ubuntu distro.
The deb directive uses the old and soon to be deprecated .list file extension. DEB822 format is the replacement.
The key directive adds the key as globally trusted for all repos instead of locking it to a specific repo as recommended by Debian. I think this is required under the new DEB822 repo format.
Good luck share the progress and let us know how it goes. Is it similar to nix? but from what I can feel, is intending to be simpler?
Edit: oh this aptfile doesn't do the one thing I actually use brew bundle for: cleaning up the mess of leftover packages
https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper#Worl...
Still, can you share your script?