After its release in 2015, savvy techies quickly realized that a Dash Button could be hacked and subverted into performing other tasks, from ordering pizza to tracking baby poops. It wasn’t simple and it definitely wasn’t supported by Amazon.

In 2016, Amazon responded to the demand and released a customizable version of the Dash Button — the IoT Button, “IoT” being an abbreviation for “Internet of Things.” Tech-minded users could now more easily build and program their own Dash-style buttons.

I ordered my IoT button and dove into the server-side programming while I waited for it to arrive.

There’s no donation API (Application Programming Interface) that I could find to automate the process of sending money to the ACLU, so the first order of business was analyzing the donation form so it could be filled programatically and submitted. Name, address, email, credit card info — all pretty straightforward.

I wrote a script in Python using the Mechanize library, then built that into a function at Amazon’s AWS Lambda service. Lambda lets you run small programs like this that don’t need a full time server—you literally pay only for the milliseconds that your script runs. When it’s triggered, the script loads up the donation page, fills the fields with my name, address, and credit card info, then submits it. If it’s successful, it sends me a text message to let me know.

Using a prepaid gift card so that my bank account wouldn’t empty if the script got stuck in some kind of infinite donation loop, I clicked the “Test” button on Amazon’s site. Success!

Two days later the IoT button arrived and I dove into the work of hooking it into the script I’d built. It’s supposed to be almost plug-and-play, with a helpful iPhone app to connect and set everything up, but the app was never able to complete the process. After hours of frustration and troubleshooting, I eventually got the IoT button registered manually and linked it to the script I’d written. Another test, another $5 to the ACLU.

Finally, because looks rank right up there with function, I designed a graphic for the button, printed it, and stuck it in place so it looks more like a real Dash button.

The button resides near my laptop now, every press sending another $5 into the fight. Sure, I could set up a recurring donation every month, but then there’s not the tactile thrill of the press and I wouldn’t have learned my way around this technology.

I understand that not everyone can build their own ACLU Dash Button, so until they come out with an official version, you can keep making donations here the old-fashioned way.