Show HN: Mass Dissent – Easily send a letter to U.S. Congress representatives

massdissent.com

5 points by spencewenski a year ago

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://www.typescriptlang.org/ [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://api.congress.gov/ [9]: https://www.rust-lang.org/ [10]: https://stripe.com/ [11]: https://sendgrid.com/ [12]: https://next-auth.js.org/

h2odragon a year ago

This kind of effort does sometimes rise to the notice of Congresscritters. They get reports form their staff, which may feature counts of constituent and non-constituent communications on specific issues and positions. Things from a service like this go into the "generated" category, not quite "spam" but not trustworthy numbers.

It's much more impactful (or used to be anyway) if you get your users to print, hand sign, and individually mail your form letter "this is how i feel about $issue" communications.

aww_dang a year ago

Maybe you could combine this with an affiliate program for political bloggers or social media types. They would earn a commission by referring users to their form letter campaign. Maybe offer a few embeds for bloggers, cards for social media.