Show HN: Mass Dissent – Easily send a letter to U.S. Congress representatives https://ift.tt/Zlqdk5F

Show HN: Mass Dissent – Easily send a letter to U.S. Congress representatives Hi HN! I just launched the MVP of Mass Dissent, a website that provides an easy way to send a short message as physical mail to your representatives in the U.S. Congress. The site reduces the effort required to send a letter to an elected official, hopefully resulting in more people writing to their representatives regarding the issues they care about. Originally, the idea was to allow users to select Tweets to print onto a postcard that would be sent to their representatives. However, last fall the Twitter OAuth API stopped working (for me at least), so I decided to pivot slightly to allowing users to compose a message directly on Mass Dissent. This has a side benefit of allowing users to write longer messages than what would be available using Tweets. Some notes on the technologies used: - The code is written in TypeScript[1], uses Next.js[2] and the MUI[3] React component library for the UI, and the backend APIs are created using tRPC[4]. - The site is hosted on Vercel[5] and it's using Supabase[6] for the DB. - The messages themselves are printed and mailed using Lob[7]. I also store the representatives' addresses in Lob so I don't need to maintain a separate DB table for this. - I'm able to get congress member data from the Congress.gov API[8] (though some post-processing is required because, for example, a few members are missing a headshot image). I created a little CLI tool using Rust[9] to fetch the data from Congress.gov, normalize it for usage by the site, and upload the addresses to Lob. The representatives data is pretty static so I just store it as a big JSON file on the server-side. - Payments are processed using Stripe[10] and payment notification emails are sent using Sendgrid[11]. - Previously, when the site was integrated with the Twitter OAuth API, it was also using NextAuth.js[12], but there currently isn't much need for auth so I removed it for now. At my day job I'm mainly a backend dev working with Java/AWS, so it's been a lot of fun playing with all these different technologies! [1]: https://ift.tt/hbe0Fpl [2]: https://nextjs.org/ [3]: https://mui.com/ [4]: https://trpc.io/ [5]: https://vercel.com/ [6]: https://supabase.com/ [7]: https://www.lob.com/ [8]: https://ift.tt/RaTV0Cv [9]: https://ift.tt/nDRThjp [10]: https://stripe.com/ [11]: https://sendgrid.com/ [12]: https://next-auth.js.org/ https://massdissent.com February 4, 2023 at 06:00PM

Comments