After what felt like months (but was actually only 3 weeks), I finally launched Cushion’s new invoice page. Most folks won’t notice the change, but anyone with a keen eye for detail (or has read my recent posts) will know how substantial this is. The focus of this page was migrating from the legacy Stripe Checkout to Stripe Elements, so it’s ready for the SCA deadline at the end of the year. This means that any European charge that requires SCA will now be able to complete the 3D Secure flow. This probably sounds like gibberish for folks in the US, but it essentially means that some European users’ clients wouldn’t be able to pay invoices if this migration wasn’t in place. Now that’s pretty serious.


Alongside the move to Stripe Elements, I also included the migration to Cushion’s new design system and component library, “Lite”, which is fully unit tested with Jest and documented with Storybook. It also focuses on improved accessibility and better responsive support, which will pave the way for a better mobile experience down the road. The component library has been in the works for a while, but this invoice page is the second page to actually use it in production, after the new onboarding flow. This progress gives me more confidence in the system, but also lets me delete a ton of legacy code, which is like Christmas to a dev.

While I did fit quite a bit into this launch, I still have a few “fast follows” on my list. Top on the list is rebuilding the invoice component to be part of the new system. I actually started this a couple weeks ago before realizing how much it’d take me off course from the main focus of SCA-readiness, so I bookmarked it for another time. Rebuilding the invoice component would let me make it responsive, which would open up mobile support for the invoice page and mobile-friendly payments, like Apple Pay. I’ll most likely bundle this with my work on Cushion’s invoice section, so I can make sure it works well for both implementations.

I can’t tell you how relieved I am for this new invoice page to be live. Well, I’m pretty much telling you right now. I’m relieved. Despite my entire career revolving around deadlines, I don’t love working under the pressure of a deadline. Ironically, I do my best work under this pressure, but nevertheless, I don’t enjoy the deadline itself. SCA created a deadline for an otherwise easy-going pace for Cushion, so that’s precisely why I’m relieved. With this behind me, I’m back to a casual day-to-day with Cushion—working on whatever it’s calling me to work on. This is how I like it.