I was looking to get a dedicated Waveshare GSM HAT for the Pi but Twilio is so dirt cheap that I never really got into messing around with a DIY solution.
In my experience it's very unstable however. Sending and receiving SMS can take anywhere from 5 to 30 seconds, and the modem can't do both at the same time. I tried configuring gammu's timeouts, loop delays and whatnot, but couldn't get something that's reliable enough for production.