Filmed this before my talks with stripe - wanted to say they went REALLY WELL. I'm so happy they bought Lemon Squeezy. JR is a legend and genuinely cares. I'm confident that at least SOME of what I discuss here will change...eventually...
@stavroskefaleas6320Күн бұрын
Stripe alternative.
@devinosborne3396Күн бұрын
Theo lemon squeezy is literally so bad. I’ve had so many problems it’s insane. Can you plz ask JR to make it functional. Last Saturday, we legit could not process transactions for 30 hours because internally to lemon squeezy checkout, the stripe security checks failed 100% of the time. So hundreds of people could not checkout (including myself!) just because they’re security checks failed internally and they never acknowledged this. Even once it was fixed. They refused to answer
@360CreatorsКүн бұрын
Lemonsqueezy doesn't reply to emails. Ask their support a question and first you'll need to wait a week or even a few weeks to get a reply. Then the reply still doesn't actually answer the question itself and just continues to ignore. Their whole affiliate link system is a big mess.
@SoularchitectorКүн бұрын
Say hello to CAP theorem
@CarlosEsquivel-dd7doКүн бұрын
Big miss with this one, lets stick with Next.js videos
@cadar8472Күн бұрын
I was expecting a PayThing
@not_jpsenakКүн бұрын
Me too
@raygud5653Күн бұрын
😂
@robimuhammad95Күн бұрын
😂
@KarlOlofssonКүн бұрын
I'm guessing X will come out with similar functionality when they launch payments?
@patchstepКүн бұрын
CheckoutThing
@antopolskiyКүн бұрын
my non-technical cofounder keeps asking me how payments and subscriptions can be so difficult when literally everybody does them. i just shrug. it is kind of beyond me. and dont even get me started on mobile payments and in-app purchases, thats a whole different can of worms
@claytonmarshall1308Күн бұрын
So glad to hear someone else say this. I've been dealing with in-app purchase hell and I swear I've spent more time dealing with payments than I have building anything.
@judemusyoki7052Күн бұрын
I started working on a new mobile app project a few months ago and when I tell you setting up in app purchases on mobile has been hell 😮💨
@garybritland6 сағат бұрын
I am tired of hearing "how **thing** can be so difficult when literally everybody does them" when "everybody" is fortune 500 companies and we have a $10k budget...
@chakritlikitkhajorn8730Күн бұрын
I used to work in payment integration company and connect to more than 10 payment providers. I would say your practice is pretty normal and not limited to Stripe alone. Basically, never ever rely on web hook for important payment state update. Always re-sync using state inquiry API, which should exists for every payment provider (and if not, just no don't use that API). Even if that provider have simpler event schemas and event order guaranteed (technically impossible, btw), it is possible that one side, you or the provider, can have network error and you can't received webhook. And then when you missing the update, the blame game start. Who to blame? Are we sucks at receiving webhook or are they suck at sending event? So just cut it out and manually sync via status inquiry. That's it.
@e-24613Күн бұрын
100% agree. every job i've had that used a high volume webhook/event system would have things come out of order. and mentioning sometimes messages can come in multiple times seems like a strange thing to complain about (you cannot have exactly-once delivery, etc etc). rest is valid though t. engineer at payment company & worked at popular delivery app company
@rawallonКүн бұрын
"If you want something done right, do it yourself"
@LIGhtkeeКүн бұрын
You prefer API polling instead of webhook, did I understand correctly? Or do you combine them somehow?
@e-24613Күн бұрын
@@LIGhtkee i think its good to use webhooks but just have some sort of reconciliation job run in case there's missed events, out of order events, any other weird states that things can get into
@chakritlikitkhajorn8730Күн бұрын
@@LIGhtkee combine. The idea is not to rely on webhook. The implementation is basically we will wait for webhook to send updates for x seconds and if we don’t get it in time, we poll for updates every y seconds. So we don’t immediately bombard the 3rd party side until it’s kinda fishy. X and y is configurable based on stability and SLA of each provider.
@chrissdehaanКүн бұрын
My client wanted to allow guests to make purchases. A user can just open the page, add to cart, checkout. Then, later if they came back and want to make an account, or check their purchase, they had to be able to. What a tangle of local storage, database records that were so devoid of data, and edge cases all around.
@PraiseYeezusКүн бұрын
this is a hard problem that has nothing to do with Stripe to be fair; fingerprinting is hard period
@skyracer-mk8hgКүн бұрын
You need at least some information. For example their email. And then send them a email like hey, you bought something heres the register link. But then again you will get chargebacks/support requests because they mistype their email.
@complexity554522 сағат бұрын
@@skyracer-mk8hg Especially if they fingerprint sessions with phone number -- it causes all types of WTF problems.
@RaphaelAlejandroКүн бұрын
I just send my user ID to the Customer API of Stripe. So they have the same ID as in my DB. Just need to set the property “id” when creating the customer.
@stefan_luptakКүн бұрын
Does this really work? 🤯
@RaphaelAlejandroКүн бұрын
@ yep. I use it for years, including the latest version of their API.
@RaphaelAlejandroКүн бұрын
@ this is my actual code await this.stripe.customers.create({ id: tenantId, preferred_locales: ['en-US'], });
@jack.smith2958Күн бұрын
It works as metadata, you cannot select your own ID. It will always be cus_xxx.
@jack.smith295823 сағат бұрын
@@RaphaelAlejandro You cannot set your own customer ID. It will always be cus_xx. You can store it with metadata on the customer object which is fine.
@PaulPlayКүн бұрын
7:13 doing a checkout before creating a customer can sometimes be useful, e.g. with one-time purchases where you don‘t need accounts and so on. You can later email the purchase details + receipt to the user, for example. But I agree that stripe is a total pain😂
@georgi_myКүн бұрын
Just when I need to setup Stribe this video pops up. This is one of the most convenient things that has ever happened to me.
@patricks7611Күн бұрын
Same for me Theo saves the day 😄
@justinbaker84Күн бұрын
Same
@Vivek2062Күн бұрын
I gotta tell you, it was really hell of 2-3 days of hard core development and I've been wondering why the hell are people subbing twice, after talking with one of my customers I realized that they were able to sub twice because of this bad architecture of webhooks and customer id, I just wanna say thank you Theo for making this video, this video has been a life saver for me, as soon as I heard the words "out of sync" from your mouth, went back, made the changes and now, the customer is happy, dev is happy (temporarily) haha and data is now in sync and that setting that was hidden in stripe dashboard should be default on!!!!!
@MattMcTКүн бұрын
GGWP! 🍻
@Bu7MaiD075Күн бұрын
The Stripe API is fine. Theo just has a simplification itch. It took me a while to understand it and you got to appreciate its design architecture. It aint easy building a developer friendly payments system.
@iceinveinКүн бұрын
And not to mention the hoops the compliance people make the vendors and clients go through to make a fairly simple transaction
@ThenderickКүн бұрын
"Stripe bad defaults tierlist" when?
@ream88Күн бұрын
Lol, all the pain points you described, are things I love as a backend dev. Stripe just let me build whatever the f*** I want, not some teams idea. For example RevenueCat looks super nice, but has not support for tiered plans? Why? Nobody knows!
@jack.smith295823 сағат бұрын
Hard agree.
@rafalpotasz37 минут бұрын
I'm sort of curious, could you give me your favourite example of 'whatever the f***' you built? I'm wondering what that even looks like. I've only setup the most basic buy thing -> redirect user -> activate webhook -> do stuff. And I watched a course (just watched) on setting up a basic subscription service.
@nikpolaleКүн бұрын
Saying LS was better than Stripe at managing subs - is absolutely joke to tell JR seems like a nice guy, but LS is the only platform where I just didn't receive webhooks when the sub expired, which meant user was not paying and could use the app for free, forever On top of that some customers were never charged on LS(and kept using the app for free) And lastly, they were just showing incorrect price during the checkout None of that is fixed till now. All these issues are known for at least half a year. And there's a ton more Stripe is SO MUCH better experience it's not even funny
@MrRandomgamerdkHDКүн бұрын
This is basically how the first party laravel stripe integration works. Listen for relevant hooks, ignore content and sync internal subscription state and customer data
@AtiqSamtiaКүн бұрын
Laravel Cashier is life saver. Handling all of this complexity under the hood.
@ob0-chinaКүн бұрын
daily schedule: - wake up to a theo video upload - go to bed after he uploads again
@jeremysollars5922Күн бұрын
I would love to see an excalidraw tutorial, like all the keybinds, proper notation for umls and stuff. Every resource online is just so scattered...
@nikolaip.9944Күн бұрын
Double subscriptions are not an issue when you create a customer first, then create a payment intent for that customer and then load your checkout forms using that intent. It won't matter whether the user goes back, forward, refreshes or whatever. As long as the payment intent doesn't change, it won't be a double subscription. Also a lot of projects actually do allow multiple subscriptions, so they can't just make such a critical option on by default (limit to 1). On the price IDs between environments - use price lookup keys instead. Most of this video sounds like a rant from someone who tried to hook up Stripe in 5 minutes, then suddenly faced a lot of issues running it with live transactions on a huge user base. Try to work with it in their sandboxes first, test all edge cases, your webhooks and all. I only heard one legit problem which was about inconsistent usage reporting, can't comment on that as I haven't used that in my projects, but it does sound crazy, won't lie. In short, subscribe to their API changes release notes and you'll be on top of things, that's probably the most important API to follow, as you don't want to mess up your payments and become a fraud.
@t3dotggКүн бұрын
You should read the comments on this video :)
@jack.smith2958Күн бұрын
Completely agree with this. Almost all of these points can be filed under "skill issue", and if comments agree with Theo, all that shows is that a lot of people have skill issues, unsurprisingly. The Stripe API is an advanced system for advanced users, and if you want something simple, there are other platforms. Is it perfect? No, of course not, but this whole video is somewhat like saying C++ is terrible and complex because it requires manual memory management when higher level languages use ARC or GC. It's a power-responsibility issue, like we all learned from Uncle Ben.
@fablouping529220 сағат бұрын
@@jack.smith2958 if you want something simple, there are other platforms Could you name some please?
@tcurdtКүн бұрын
We have had not much trouble when using the low-code stripe payment links. Sure, some things are still a head scratcher - but we never had to deal with such complexities. You point people to the stripe checkout. Then you get a webhook that triggers your changes. Done.
@gauthamvijayanКүн бұрын
Very nice tips. I am adding my work flow so people can use it here. 1. I attach the user id generated from my own auth solution as metadata to the stripe customer id created by stripe. If you have not created a stripe customer id - you wont be able to access our app, as I have placed checks that if the user id is not associated with the stripe customer id and is without an active subscription, you will not be able to login in the first place as your user id does not correspond to an active subscription nor does it is available in stripe api. ( Cant disclose it fully here ). 2. In future you have to collect sales tax if you are above a said threshold limit per state/jurisdiction/country. - So asking address for this purpose also eases the sales tax collection later and makes the people who want to troll/scam us out of the picture as they have to use an address and a credit card. And people who want to legit use the app, will not worry about this much. Has worked well till now. Will update later.
@alejandroechavarria53921 сағат бұрын
I appreciate the video, and find it useful. However, the problems described are typical in distributed systems and are not limited to the stripe api. Out of order events is the norm and the webhook can be fired multiple times with the same data. It is responsability of the developers to ensure that the endpoint the webhook hits is idempotent (by using the idempotency key) and handles all the limitations well.
@mariusb.1592Күн бұрын
Would love to hear more about Lemon Squeezy and Paddle.
@bone_broth_00023 сағат бұрын
23:20 If you are ok with making an extra API call, you can use Lookup Keys so that you don't have to wrangle env vars. This introduces other annoyances but overall I have found it to be the less painful approach of the two.
@RaphaelAlejandroКүн бұрын
Stripe I heaven compared to the majority of APIs I had to deal with. Even if it has become more and more complex.
@PaulPlayКүн бұрын
19:46 What I do is check for an active subscription when they check out, and when they do, I‘ll cancel the old one automatically… which is not perfect but a decent workaround..
@twezo11 сағат бұрын
Theo, I don’t normally comment on tech videos. I just observe, but as someone who has also implemented stripe multiple times and have run into many headaches, especially in NextJS, I do appreciate this video and I noticed some things that I think would help you eliminate a lot of headache with implementing this. Note, I’m just a random guy on the Internet, so take what I say with the grain of salt. One in your back end, I noticed that you are not revalidating the path before you redirect a customer in your checkout flow. You should. For me when setting up auth and setting up stripe, this is an important part of keeping your client and server in sync, hence the name revalidate. 2. Creating a stripe custom ID at the initial user sign up and keeping that ID in your database in my humble opinion is FAR better than not. It is worth the extra three seconds to have that data. It is very important as you stated. Making a web hook to keep track of the events is fine and something that I did as well to keep track of the events that are happening in the checkout session. You just have to make sure that you are revalidating things on your server so The client knows what’s happening. This will also eliminate the stale client page that you talked about if you set up things like context providers, etc. correctly. I built a SAAS last year using this exact tech stack and it definitely was challenging but I did it. It’s a new year and I’ve learnt a ton of new things about react from watching videos like yours and from putting in countless hours coding and I am currently revisiting all of these pain points off, checking out, etc. and really trying to make them as simple as possible and almost turn it into a template something that I can use and reference later to avoid these and many other headaches that come with trying to build your own SAAS. This is coming from someone that has implemented stripe. Love your videos, would appreciate any feedback from you or anyone reading. Any questions? Leave a comment.
@Scooplar11 сағат бұрын
I actually did something very similar with a CRM service's webhooks, I just dispatch a job to pull all the states I care about and disregard the webhook besides signature and a list of events I care about, just like you did. This worked out when one user was deleted, I just reenabled the user and updated any field in the CRM, the webhook fired and it updated everything. Made my life much easier
@hovatКүн бұрын
I’ve been tracking usage internally and then just generating at invoice on the 1st of each month for my business. I always thought the stripe usage tracking would not perform correctly and simply never even tried to use it
@artur_aronov23 сағат бұрын
So it wasn’t just me. I was implementing stripe payment for my service last year and it felt genuinely like hell. Third of the user table in db was polluted with the stripe metadata to make the service barely workable. I remember not so long ago when dev community was setting stripe as an example when it came to docs and api. What happened and how it all deteriorated so fast?
@CodexCommunity4 сағат бұрын
Interesting, I pretty much ended up with the same solution after working with stripe many times as well!
@juice2632 сағат бұрын
Instead of using a price id, you can create and use lookup keys. I made this mistake initally by having two separate products: monthly and annual. Instead, create one PRODUCT, then set a Lookup Key key for each price that you can hard code. Saved me a lot of hassle.
@p_o_z_eКүн бұрын
How much easier is lemons queezy? if i have never touched stripe and want payment is lemons queezy / polar the way to go then or is stripe that much better once the hurdles are done?
@furycorpКүн бұрын
What amazes me is that for years now Stripe has been wide open to competition that could destroy them in the identical way that they destroyed their competition back in the day: by making it quick and breezy to add payments (at least vs everyone else). Even at their higher transaction costs devs still went for it.
@i_sometimes_leave_comments5 сағат бұрын
20:00 I think that default for "limit 1 sub per customer" being off makes sense when I consider auto-scaling of cloud infrastructure. They'd rather go with refunds than block your growth/payments when that information is missing.
@hfpo3qieikr9 сағат бұрын
19:13 I've heard something like "CheckoutThing", this sounds like a good name for a startup
@UnderdogThe1Күн бұрын
This whole explanation has a lot of vibes of the "Pepe Silvia" meme
@RadikaRules14 сағат бұрын
Agreed. Theo should recreate that someday
@AdamtheADHDev22 сағат бұрын
I feel your pain. I implemented stripe for a multi tier subscription service last year and it was hell (still is tbh). We support multiple subscriptions and that double sub issue still bites us after several attempts to prevent it.
@MatthewCokerКүн бұрын
Theo, have you looked at foreign data wrappers with Stripe data in Postgres? Doesn't solve all of these issues, to be sure. but it can help alleviate some of the pain points with their unreliable webhooks.
@alejandroechavarria53921 сағат бұрын
It does not solve rate limit. A foreign data wrapper just make a call to the stripe api under the hood. I believe foreign data wrappers are a bad idea, it is more explicit to call the real service.
@Bit-BenderКүн бұрын
So many edge cases.... Thanks for the vid Theo this is great
@MattD-q5u23 сағат бұрын
I wasn't aware of Polar. I'm gonna give it a try. Merchant of Records are actually extremely valuable for a SaaS.
@pikachubolkКүн бұрын
Honestly this is great, I've had so many issues with stripe's own API...
@BuddyJesusКүн бұрын
Ah my first time using Stripe was recently and I also was thinking things were off. I probably did this all bad, but my approach was webhooks to keep a subscription table up to date and then for user interactions I get the subscription (if not present) and set it as a signed cookie that is valid for 24hrs. Then follow up calls to my backend after I check if they are authenticated I check the subscription cookie (check data, verify signature, etc). Since it seemed to be fine I moved forward but really wasn’t sure what was the best approach. I figured it was fast given it can be checked on the edge and not needing follow up external calls. I for seen some customer issues as mentioned and this is VERY helpful. Need to go fix this.
@jack.smith2958Күн бұрын
Never store mutable state in or with an auth/access cookie. It should be reserved for things like user IDs.
@BuddyJesus23 сағат бұрын
@ I created a sub cookie just for the subscription itself including signing it so when a user presents this cookie, after they are verified authenticated, I then check subscription status which if they have a cookie I have a helper that checks it at the edge. I don’t see a risk in this, but maybe I’m not thinking it all the way through. What is the downfall in doing this? I was thinking it was faster since no requests are needed to external services and can validate this at the edge. Of course if their sub expires they still have a day, which isn’t an issue in my eyes. I just took a stab at this, but wasn’t clear best practice to use for this.
@jack.smith295820 сағат бұрын
@@BuddyJesus Of course it depends on what you're building. But like you said yourself, updating the state becomes difficult because the cookie is not in your control (assuming a signed cookie). It would be a lot easier to just look up the status in your database for each request. Unless you are handling thousands of requests per second, this has no practical impact on your system. But not being able to control the auth state of the client is impactful. And if you wanted to "check if the cookie matched the state of the database" you would have to look it up anyway. Preemptive micro-optimizations are not a good idea. If you put auth at the layer you suggest, disabling access (account banned, password changed etc.) also becomes hard, which is potentially a security issue.
@BuddyJesus19 сағат бұрын
@@jack.smith2958 Thanks for clarification. In my middleware I check the user's authentication then if no subscription cookie I make a DB call to get the subscription state from the DB, write the user's id/sub status into a cookie on my server while generating a signature to prevent manipulation. Then in follow-up calls the edge will verify the signature of the cookie and trust it if good instead of making follow-up backend calls for the subscription status (mainly to reduce load on the backend). Not sure I am tracking the auth issue. In middleware I am using getUser (if I recall) to verify authenticated user for Supabase then depending on what they are doing (IE: need a subscription) I have the cookie check (or db read, create/sign cookie). If I banned the user, they would fail the auth check that happens prior to the subscription check, no? Sorry, still learning!
@prabnisКүн бұрын
just use stripe entitlements api
@CombatWombat1212Күн бұрын
Holy fuck this is awesome thank you.
@d123-o8jКүн бұрын
I wish I had seen this a year ago!! Webhook handling the first time round was such a minefield or errors. To add. I just take the webhook data, confirm the headers and update the databases (the allowed events only) and also where the customer ID (oh god, I just remembered that it also requires the metadata which is a clerk ID - that is just horrendous...) match. (postgres so no KV's)
@fgaryКүн бұрын
I wonder if they will add dark support to their checkout pages in our lifetime...
@koossaayyКүн бұрын
Laravel is spoiling us with Cashier
@maxlikessnacks123Күн бұрын
OMG I THOUGH I WAS THE ONLY ONE BAFFLED BY THE CUSTOMER ID ISSUE. Thank you for addressing all the issues and I hope they apply some of those changes.
@efkastnerКүн бұрын
Super satisfying to see that we ended up with mostly the same solutions and workarounds. One thing we do differently is when talking to stripe we use the user’s email address. OH! Also I noticed the other day that Stripe now has “Sandboxes”. I haven’t tried them yet but I’m hoping they solve the dev/prod product id annoyance
@thereal_nsxdavid19 сағат бұрын
Wonderful! Of course I started going this before there was ANY 3rd party anything, much less Stripe. So soup to nuts, the whole thing. You have no idea who much less painful life is when you don't have to store CC info... PCI compliance...blargh!
@kellyaquinastom19 сағат бұрын
This is the way. This should be a best practice library for all services.
@medemi6810 сағат бұрын
This is why I only use Checkout in setup mode, and then use the subscription api with a specific flag that gets it to wait until the subscription is created / updated.
@AnthonySBDКүн бұрын
so what were those better alternatives to stripe?
@christianwooldridge40623 сағат бұрын
This is extremely similar to what I do, glad to know I’m not the only one that felt like there was way too many edge cases to deal with
@SomeAtomsКүн бұрын
Extra fun: a stripe customer cannot only subscribe to subscriptions of one currency. So if you want a user to be able to subscribe to multiple subscriptions with different currencies each user needs to be associated with multiple customers.
@gro967Күн бұрын
Isn’t this code how every experienced developer would solve this? We done pretty much this in multiple projects…
@harambeexpressКүн бұрын
Yes, but what if you trust the stripe docs like an idiot?
@bruhdabonesКүн бұрын
Yup. I fully implemented subscriptions in stripe in about 3 days. Callbacks solve the split brain issue immediately, lmao. I only let people pay me after I get their email and password registered.
@jeremymeesКүн бұрын
Stripe-is-cancer is a wild name for a folder but i'm totally here for it
@kheldinacherchour1576Күн бұрын
You're video came at the perfect timing for my project. Thanks a lot !
@acatch2212 сағат бұрын
yea im so happy i found the create customer before checkout thing while in initial dev.. that threw me for a fkn loop! as well as adding userid metadata to tie it all together
@zaneflow17 сағат бұрын
A Stripe senior architect is going to see this and will explode
@gnorts_mr_alien13 сағат бұрын
they'll just think: yeah it works that way, because reasons
@SanyaZolКүн бұрын
Stripe: let's become new paypal!
@bonk1463Күн бұрын
one thing i hate about stripe is that the dashboard is SO SLOW like what are they loading on there?
@warrenarnoldКүн бұрын
Wait, I thought this was the standard way of handling ipns, you have to do it async! How were yall doing it any different 😅
@moizhusnain17096 сағат бұрын
The pain is so real. You are amazing!
@mohasinkrКүн бұрын
What vscode theme does theo use?
@slyracoon239 сағат бұрын
Just created stripe integration and faced this exact problem. I have a cron with supabase wrapper that sync my supabase tables of stripe if I ever get out of sync. I thought this was just me. But apparently not.
@Syberz2Күн бұрын
Any chance of a T3chat client to use with an offline R1 model?
@hamaadchaudhry5393Күн бұрын
man I can relate to every single line that you said! I have been through the mess and it's horrible I used it with Laravel but it's very limited
@josh.salles22 сағат бұрын
_"You just made your entire service run at the speed of Stripe"_ 😂
@RandomGeometryDashStuff20 сағат бұрын
13:28 is this server code or client code?
@blefnkКүн бұрын
8:21 stripe-is-cancer... 🤔
@garrett-hardinКүн бұрын
Shout out to SST/Pulumi for letting you set up stripe pricing tiers via IaC
@edd692710 сағат бұрын
This brought so many bad memories when back in the day we implemented express checkout with Paypal
@jsalsman9 сағат бұрын
If you get a webhook payment event without a customer id, do you get another one later with one?
@cristianmargineanu14589 сағат бұрын
Create customer on user creation and add the userid in customer metadata, job done
@SUPREMEVANCEКүн бұрын
great implementation, but i would personally put a queue in front of your updateKvWithLatestStripeData since you are still leveraging stripes rate limited api. I may be speaking ignorantly here as I am not aware of if stripe rate limits its event firing for you.
@abhijayrajvanshКүн бұрын
code rabbit: replacing product managers
@kellyaquinastom19 сағат бұрын
This is a classic three body problem each one orbits around the others in an erratic way. There is no known solution unless one is given no mass. That is no authority.
@anti-social159021 сағат бұрын
Hey Theo, I really enjoyed your video and learned a lot in your case you are implementing Stripe into a software as a service application but in my case, I am implementing Stripe in an e-commerce shop, and I am stuck because I want to support guest checkout so in that case, I don’t have an user ID what would you recommend?
@MrAdnan25219 сағат бұрын
This is a pretty standard pattern when integrating systems that talk over webhooks....
@ShootingUtah21 сағат бұрын
Currently attempting to get stripe set up and I think it's working but I guess who the hell knows! Haha
@balduin_b4334Күн бұрын
i was trying to integrate stripe for a side project, to maybe use it in a real project, and man IT WAS AWFULL. all that PRICE_ID stuff made my blood boil
@marchypoliteКүн бұрын
Open source stripe wrapper to make it easier to implement right ?
@inurear23 сағат бұрын
God Bless this man. We have our differences, but, your perspective is without agenda (and understandable based on your experience) and your efforts and opinions are respectable
@gold-junge9112 сағат бұрын
thanks theo ! can you share your stripe implementation ?
@mattisxКүн бұрын
Did a lot of the same mucking about with Stripe in 2016-2018. I see nothing much have changed.
@FaizanAli-visiontech22 сағат бұрын
I use create intent API in my nextjs and Laravel app with full custom code. The goal was to charge without leaving the page and it was hell, in the end I was able to pull it off
@i_Amazin_16 сағат бұрын
"so recently that no LLM's knew about it" God, devs are doomed.
@abdellatifsamlani252Күн бұрын
i use laravel setting stripe was so easy i didn't even know people have hard time with it
@umairrehman9660Күн бұрын
What changes here for one time payments instead of subscriptions?
@harambeexpressКүн бұрын
Easy to understand and very informative. You've definitely saved me from mistakes I was just about to make.
@petursteinn9718Күн бұрын
Is there a video in the pipeline of the state of auth? I want to know more about how you dealt with it in T3 Chat!
@titbarros23 сағат бұрын
Thank you for this video. I received a lot o shit implementing this in a past job. People just assume it's straightforward and "a resolved problem". Constant race conditions handling
@tinyplayerssRumbleКүн бұрын
I loved your content I would like to know what canvas/white board did you use The way You show your explanation is Genuinely Great! I would like to use that board management service.
@johnthejudokaКүн бұрын
The pre-req on the github page was JS on the backend. I wonder if the issues are as bad using PHP with a normal, basic server.
@xtremescriptКүн бұрын
How do you deal with cache evictions?!?
@Robbo92019 сағат бұрын
what do people recommend instead of stripe then?
@andy_pppКүн бұрын
I paid for t3 chat and I still got the problem I didn’t have Pro tier for I think several refreshes… I wonder what happened?
@pablomayobre13 сағат бұрын
STRIPE_PRICE_ID should also be in a KV or DB, specially if you have multiples and you want to update them
@schtormmКүн бұрын
26:13 so Ping should be renamed WrapperCorpThing lol
@chrschoeni23 сағат бұрын
Thank you very much for this video and for providing the code. This is exactly what I have been looking for for a long time.