- Published on
Mail-A-Tweet
Code: https://github.com/blackmad/MailATweet
The homepage
Story
This project was inspired by @mroth telling me about the lob postcard API which will PRINT AND MAIL A PHYSICAL POSTCARD ANYWHERE IN THE WORLD FOR SEVENTY CENTS
And by @fascinated starting to print tweets at home (an idea I later repurposed for an intimacy exercise at a party)
In late 2017 I ended up needing to get a chunk of my colon taken out, and the recovery lasted a bit longer than I wanted. I will spare you that whole story, but I will say that there were two wonderful women in my life who took extremely wonderful care of me and who I did a shitty of repaying the favor.
I will spare you that whole story, but I will say that there were two wonderful women in my life who took extremely wonderful care of me and who I did a shitty of repaying the favor.
So of course I was going to work on a PROJECT. I was going to LEARN REACT. I was going to use an API to send PHYSICAL POSTCARDS.
The site works! It continues to work! It makes me really happy! Except for all the parts that don’t!
Examples
Learnings
- It turns out that USPS machines mangles postcards of all sorts, as Lob is quick to point out if you complain
- I wish I’d actually started this project by learning react, rather than learning just enough to make progress. It made the project slower and more incomprehensible
- Also wish I hadn’t used a form wizard library that made everything even more incomprehensible
- I don’t love the user flow for this service. If I was going to do all the work to make it a single page app, I wish it was actually single page – enter the twitter URL, slowly load the preview so the user can enter all the rest of the info on the same page.
- I’m still surprised this code works as well as it does considering how hacky it is.
- Given that I’m almost the only person who sends postcards with this, I don’t really need the stripe payment step in there, but hey, it works and it’s cool.
- Trying to get a massive binary (headless chrome / puppeteer – for screenshots) to run on AWS lambda was a pain and I eventually gave up