If you build using nice!nano controllers, you can get batteries that fit neatly under the (socketed) controller, you can just tuck it in there loose or tape it in place. If you use those batteries, which are very small, it's best to build the board without any power-drawing features, such as LED illumination or OLED display. Most PCBs that are designed for batteries will put contacts in that vicinity, or you can wire the batteries directly the nice!nanos.
If you build this way, there's no impact on the external size or portability. If you want to use larger batteries, you will need to make room in the case for them, if you're using a case. [I have some chunky batteries taped to the bottom of my caseless Kyria, which is obviously not doing anything good for portable use or aesthetics, but it does work.)
If you haven't used ZMK before, that will be a bit of a transition. ZMK is great, and in some ways it's a much more elegant solution than QMK, but it can be a little tricky to get used to at first and if anything goes wrong, troubleshooting is usually more annoying.
For portable use, a PCB that supports a power switch to disconnect the battery from the controller is kind of essential IMO, since without a hardware switch, there's no way to turn the board off or put it to sleep. So if it's in your bag, it'll constantly be waking up and connecting to your phone if paired.