Quick Payment Page

Receiving money online has never been easier, but there are a couple of small problems:

  • everyone has preferred sending and receiving platforms
  • if I want to get money, I end up copy/pasting my various links everywhere

I wanted a link like panozzaj.com/$ that was easy to remember so I could type it on my phone.

Ended up making a page on this blog for this. Buttons link to my preferred receiving platforms so folks can pick how they want to send money.

Payment page showing Cash App, PayPal, and Venmo buttons

It also takes an optional ?amount= query parameter (in cents) and pre-fills the payment links. For example:

panozzaj.com/$?amount=1500

shows $15.00 and links directly to that platform's payment page with the amount pre-filled.

Gotchas

Shell escaping. $ triggers variable expansion in bash, so any scripts or commands that reference the file need quoting.

I host my blog in S3, so there were a couple of additional production tweaks.

Jekyll permalink needs a trailing slash. permalink: /$ generates $.html, which means S3 serves it at panozzaj.com/$.html instead of panozzaj.com/$. Using permalink: /$/ makes Jekyll generate $/index.html, which S3 serves correctly.

S3 adds a trailing slash redirect. Requesting panozzaj.com/$ returns a 302 to panozzaj.com/$/. To avoid this, after s3 sync, we copy the object to an extensionless key:

aws s3 cp "s3://${bucket}/$/index.html" "s3://${bucket}/$" \
  --content-type "text/html"

Categories: main

« Building a /reload Command for Claude Code