One of my brilliant, trillion-dollar ideas was text-to-blog. You send a text to a phone number and it appears on your website. Brilliant, I know. Novel, definitely. I wanted a simple solution for myself and had seen val.town recently, so I figured I could use that and Twilio to create text-to-blog functionality for myself.

My first plan was to use Twilio, consume Twilio's webhooks for each received SMS, and then use Github’s APIs to update a JSON file that is my data source for my texts/blog entries. This is nice because my long-form posts and notes live in GitHub and are created/updated/deleted via git commits. I would also get deploys for free because my Vercel project redeploys after every commit. I need deploys because my site is a static site generated using 11ty.

Naturally, I ran into a few issues. After signing up for Twilio, I got "fraud blocked" and received an email asking for more information. Only after I respond and they review will they (maybe) unblock me. Instead, I switched to Nexmo, which also gave me $2 in credit to test out. Their setup process was also quick and painless.

My second issue, if you can call it that, was that using GitHub's APIs seemed more complicated than I wanted, so I pivoted to just storing a JSON file in S3 (via Supabase cause I’m lazy and don’t want to deal with AWS).

To update the file in S3, I host an HTTP endpoint (my webhook consumer) on val.town. It consumes webhooks from Nexmo, updates the file in S3, and then uses Vercel’s deploy hook to trigger a redeploy (my site is a static site and thus needs to be rebuilt and fetch the new data from S3).

In about 30 seconds, I can text and have it appear on my personal site. It required maybe a couple hours of work and $0 (each text received via Nexmo costs ~$0.0062, but I have $2 in credit). An evening well spent, if you ask me.

UPDATE

The microblog or text-to-blog is no longer available after I realized (1) I didn't use it at all and (2) I didn't feel like paying for Nexmo even though it was quite cheap. There was just no point in having my card on file and maintaining the Nexmo number and s3 bucket for something I wasn't actually using.

But, it was still a fun exercise!