After forging a great friendship through the Coda community, Brian Shultz contacted me (Leandro Zubrezki) to help him build a Stripe Pack for a doc idea he had to help celebrate revenue milestones with his team at Tango. Brian hoped to build the most ambitious (and goofy) Coda doc of its kind — a milestone bot that sent his team custom memes every time they hit a new ARR Milestone on Stripe. I didn’t even hesitate — and so we teamed up to make it a reality — an amazing Stripe Pack, an amazing Coda doc, and an amazing team!
What it does
The Stripe Pack allows users to connect their Stripe account with Coda to bring their data as tables.
- Subscriptions — enable metric calculations, dashboards and custom reports.
- Customers so you can use Coda as your CRM and more.
- Products for inventory management
- Payments and Invoices to keep track of your pending income. Those are just some examples of the 17 tables that are available at the moment, all interconnected with relations for easy access to data. The Pack also includes formulas so you can get individual records and use Stripe and Coda webhooks for real time automations and some actions to update data back into Stripe, with more to come.
How we built it
We built the Stripe Pack using the Coda CLI, as it gives you more flexibility to work with different files and the ability to use additional dependencies. We used Typescript and Stripe API types to reduce bugs and keep our code clean. In terms of the doc, it showcases the power Coda has when you feed it with the right data. There is extensive use of formulas to make calculations, a Meme Pack to generate the memes for milestones, automations to keep track of ARR changes and some Coda tricks to make it look great!
Challenges we ran into
Relational tables. The biggest challenge was having each of the tables connected with each other. This was a challenge we brought on ourselves in exchange for a better user experience. Wanted to make it dead-simply to lookup customer records, invoices, subscription, and products — all using just a single ID and without having to create any additional columns by the user. We also made sure to split line items for invoices, orders, checkouts and payment links in different tables to simplify the data access.
Accomplishments that we're proud of
The user value created. We are really proud of the Pack and doc we have built. Teams are already using early versions of the pack and doc and have now have a small (but mighty) set of happy users! A quote from one of our users: “I have a small side business and I have to manually confirm who paid me, etc. so to be able to get a log of when payments go in and track against my CRM in Coda is nice!”
What we learned
Nuances of the Stripe API. Once you understand how different entities connect to each other, you understand how difficult it must have been to build a payment infrastructure like that. We also learned some additional Coda tricks while building the doc that we can’t share with you 🤫 (don’t even ask!)
What's next for Stripe Pack
Support all major use cases. The Stripe API is huge and we want to support all major use cases. The plan is to continue adding additional tables, single record formulas, and a few more features to let users update Stripe from Coda. We want to also make it easy for users to create webhook based Coda automations to get real time notifications from Stripe.