Captain's log-

Billing job improvements, subscription gating, and UI feedback

What I worked on today

  • Focused on billing jobs and logic, ensuring smooth transaction processing.
  • Designed and implemented a beautiful upgrade plan page that also serves as a block page for users attempting to add monitors without a subscription—making it easier for users to see available plans and make informed decisions.
  • Faced issues with billing jobs sending too many updates, potentially hitting Stripe rate limits.
  • Implemented Laravel’s ShouldBeUniqueUntilProcessing, which resolved the issue perfectly.
  • Got UI feedback from my dad on the activity feed, now renamed to timeline, with insights on how it should function.

Lessons learned

  • Stripe rate limits can be tricky, but Laravel’s queue uniqueness handling is a lifesaver.
  • Subscription gating is necessary but should be well-designed to ensure a good user experience.
  • External feedback, even from unexpected sources, can bring valuable UI insights.

Challenges faced

  • Preventing billing jobs from overloading Stripe while maintaining accuracy.
  • Deciding how best to implement UI changes based on the timeline feedback.
  • Struggled with proration and billing anchoring on the first billing cycle—my way of thinking was off. Spent too much time on it before deciding to drop the approach.

What’s next

  • Process and implement the timeline UI feedback to improve navigation and usability.
  • Continue refining the billing logic to ensure stability under load.
  • Evaluate the block page design for further enhancements.
Photo of captain Davy de Vries

Davy de Vries

Captain 🏴‍☠️