But as @allObjects says if you're happy with a Node.js server and using Bluetooth LE then it may be that Puck.js does exactly what you want without having to do any hardware work at all and while being really low-power. There's even a tutorial here showing you how to use Puck.js as a simple button with some Node.js code to get the state back.
Otherwise if you want WiFi, since it's connected all the time (because you'd be pressing the button so often) I'd say Espruino WiFi plus a USB power bank would be really straightforward. POST is done just like in Node.js:
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I'd just posted a reply on your reddit post: https://www.reddit.com/r/espruino/comments/8ye7sr/is_espruino_the_right_solution_for_my_project/
But as @allObjects says if you're happy with a Node.js server and using Bluetooth LE then it may be that Puck.js does exactly what you want without having to do any hardware work at all and while being really low-power. There's even a tutorial here showing you how to use Puck.js as a simple button with some Node.js code to get the state back.
Otherwise if you want WiFi, since it's connected all the time (because you'd be pressing the button so often) I'd say Espruino WiFi plus a USB power bank would be really straightforward. POST is done just like in Node.js: