I've tried making snap packages, but I discovered they're very tightly tied to Ubuntu's base packages. They're not portable at all. In essence they're effectively just a secondary Ubuntu-specific package format for user-level applications.
For example, with flatpak you select a base runtime for your package that contains mostly system-agnostic libraries. With snap, you specify an Ubuntu version as a base runtime and additional dependencies that are Ubuntu packages.
My understanding is that the base layer (similar to what FlatPak provides) is shared and downloaded by the snap manager so it is portable as long as you want to download it.
The end result should be similar to FlatPak where you have practically no dependencies as it should package almost everything.