Adding Stripe billing to an existing app usually goes wrong at webhooks, not checkout. My Stripe Billing and Auth service (from $800, quoted after I see the codebase) covers sign-in, account management, Checkout, subscription plans and webhooks that keep access in sync with payment status.
Taking payments with Stripe? The money moving is only half the story. The other half arrives later as webhooks, and handling them badly means customers who paid but have no access, or orders processed twice.
Six rules I follow on every Laravel build:
Verify the Stripe-Signature header against the raw body
Exempt only the webhook route from CSRF
Respond fast, then process in a queued job
Deduplicate on the event ID
Never assume events arrive in order
Make every handler safe to run twice
Bonus: store the raw event before processing it. You get an audit trail and can replay after a bug fix instead of asking Stripe to resend.
Built + launched in 4 days. 140+ customer bookings since handover.
Before: A barber in Chiang Mai. His Instagram bio asked people to make a reservation, but there was no link. Every booking happened by hand in DMs.
What I built: A Thai and English booking site, linked from his Instagram bio. Customers pick a service and a time in a few taps. He gets an alert on his phone and runs everything from a phone dashboard: today's bookings, prices, opening hours. There's no payment step and no paid messaging service, so there's nothing for him to renew.
Result: The first real customer booking came in on handover day. 140+ customer bookings since handover, and it runs without me.
Still taking bookings through DMs? Message me.
Screenshots shown with demo data.
Episode 7: Your bank balance is not your income. 💸
As a designer, money reaches you from Stripe, PayPal, Wise, direct transfers and Contra. By the time it lands, fees, currency conversion and delays have already taken a cut, and some of it never gets recorded.
That’s why a monthly bank reconciliation matters. It means matching your bank statement to your books, line by line, so you can:
✅ Spot the client invoice that was never paid
✅ Catch the software subscription you forgot to cancel
✅ Find the processor fees nobody recorded
✅ Know your real profit per project
✅ Reach tax time with clean numbers instead of a panic
It takes about 30 minutes a month. A gap you catch in October is easy to fix. A gap you find a year later is expensive.