Since I keep seeing this come up, just thought I’d share.
https://easyeda.com/RuBisCO/On_Switch-2610688072df43d9976cee88fc640fe3
https://easyeda.com/RuBisCO/LowsideSwitch
They both work. The first one is easier to assemble on PCB and I trust it a lot more by virtue of high side switching
The second one is easy to build on protoboard, no need for a PCB.
Both have been tested by members of the community, I can cite their testimony if someone wants. There could still possibly be issues, if someone makes these and encounters one, please let me know.
Both require a latching pushbutton, I recommend this one from adafruit:
Some smart antisparks are on the way in the near future.