Week 2: We added Payments and More to the Starter Kit

During two streams we added stripe subscriptions with webhooks and decorators.

What’s up, Full Cycle Devs?

I’m checking back in after two streams this week. Here are the stats, because everyone likes stats:

Monday, 15 April

Friday, 19 April

Interpretation

So the two streams were noticeably slower/with fewer viewers than last week, but that was to be expected. I didn’t announce much on Reddit this time. Also, I didn’t do a great job informing community members about today’s stream. 😕 

Thanks to our new and recurring subscribers, 🇦🇹 chutneyy0 and 🇬🇧 Budbomber!

VODs

As always, recordings are available on YouTube for those in unfortunate time zones or with other commitments. Your interaction does not mean less!

Next Stream

Next stream will be Tuesday, 23 April 2024 · 09:30 - 13:30 GMT+2, so mark that on your calendars!

I still can’t commit to a fixed schedule due to lots of new topics with my upcoming real estate company, with full-day appointments on both Monday and Wednesday.

Progress This Week

This week was all about payments. We researched multiple payment providers and settled on stripe. During 8h streamed (nothing was done off-screen or off-stream), we accomplished the following (and thoroughly talked through):

  • Evaluate payment providers → go with stripe

  • Evaluate existing 3rd party packages (like djstripe) → go with 1st party stripe SDK

  • Import stripe plans via a custom admin add form and action

  • Research ideal way for users to interact with active subscriptions → go with official stripe customer portal (less code and responsibility on our end, big players such as X also use it)

  • Implement subscriptions for organisations (we added multi-tenancy last week)

  • Checkout session tracking for later reminders on not-completed subscription attempts

  • Webhook handler for subscription changes off-site (like customer portal/admin dashboard), verified locally with stripe-cli

  • django admin management command to register the webhook with stripe

  • Config for webhook endpoint, storing secret in db

  • @stripe_subscription_required decorator to easily put views behind a paywall

  • lifecycle hooks for transition changes on stripe subscriptions

Not bad, considering I was also explaining and talking a lot with chat. Thanks again for being so active and interacting with me!

Plans For Next Week

Glancing at my github issues, we have a few fixed points to cover next week:

  • Verify stripe webhook calls with the webhook secret

  • Also add subscriptions on a user level (only on org level at the moment)

  • Toggle for certain features (e.g. switch off organisation support)

  • Async/delayed jobs for upsell and expensive jobs

Request More!

You’ll always find me with an open ear when requesting features! You can reply to this post or email (depending on how you’re reading this) and I will read and consider it!

Thanks again for being an FCD,

Michael

Reply

or to participate.