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.