Live data from Hacker News

Building a Developer Cult

subvert.substack.com

121–130 of 132 posts

Re: Building a Developer Cult

#121

If we are taking about Stripe, we should mention the silent competitor barely anyone talks or knows about outside the payments industry: Adyen. Stripe’s current, (private) valuation is $36B. Developers love them. Adyen’s current, public valuation is $43B (they IPO’d amongst little press coverage). Most developers don’t know about them. So what is the difference? Market strategy. Adyen only goes after large businesses…

> So what is the difference? ... The developer experience for Adyen is decent.

That hasn't been our experience at all. In our case (a few years back, they might've improved in the meantime) Adyen experience was pretty lousy. Not especially bad, but average - considering many payment gateway APIs were as bad.

In contrast, Stripe was (at the same time, and continues to this day) miles ahead, a pure developer delight. Properly documented, with working API wrappers, working examples, correct API responses. It just worked as expected and was easy to understand.

Unfortunately I don't recall specifics with Adyen as it was a while back, but I know we were pretty unhappy with it. To this day I've never looked at it again, while I recommend Stripe to anyone in position to use it.

Re: Building a Developer Cult

#122
post #72

If we are taking about Stripe, we should mention the silent competitor barely anyone talks or knows about outside the payments industry: Adyen. Stripe’s current, (private) valuation is $36B. Developers love them. Adyen’s current, public valuation is $43B (they IPO’d amongst little press coverage). Most developers don’t know about them. So what is the difference? Market strategy. Adyen only goes after large businesses…

Some realities manifest at different scales. Once you're in the largest tier, the "where is the money" reality affects things. Large corporations are the larger, wealthier segment. A big chunk of "startup business strategies" ignore this market. This makes a lot of sense for a startup. You don't really care what the bigger market is as a startup, you care what market is easier to access. Assuming the market is big (e…

If you are a startup, courting a large customer can compromise the integrity of your project. You have no leverage at all, which means the product will start to look like what they want it to be.

And because you made a deal with them when you had no leverage, the terms will also be awful, and difficult to renegotiate. So you have to go try to increase margins off of smaller customers, all with a product that looks like what the person you aren't making money off of wanted it to look like.

Hypothetically speaking, of course. Because I definitely for sure did not work for a place who tried to go big too soon and ended up with a modest exit.

Re: Building a Developer Cult

#123

If we are taking about Stripe, we should mention the silent competitor barely anyone talks or knows about outside the payments industry: Adyen. Stripe’s current, (private) valuation is $36B. Developers love them. Adyen’s current, public valuation is $43B (they IPO’d amongst little press coverage). Most developers don’t know about them. So what is the difference? Market strategy. Adyen only goes after large businesses…

> Adyen only goes after large businesses and has something many others, including Stripe cannot compete with efficiently: (far) lower pricing, higher market coverage. The reason is: larger businesses will require more payment options than Stripe offers. India? Adyen got you covered: [1] Philippines? Yup, everything [2], including offline payments in stores [3]. Mobile payments in Africa? No worries [4] And so on and…

International is actually really important. It's not just that you are currently international, it's do you have any plans to go international ever? Because if so, you might have to rewrite your entire payment stack at that point.

Re: Building a Developer Cult

#124

In my previous job, I implemented the backend integration with Stripe and also the frontend for iOS (Native Swift App). It was a piece of cake to get the whole implementation done across the stack. Six months later, our company decided to switch to Adyen so we could target more local payment methods in different countries. Back then, Stripe wasn't so flexible on that. With Adyen, we could for example offer "carte ban…

I work for Adyen in our developer experience team. It might have been some time since you integrated but we would love to hear about your experience integrating to Adyen and how we can make it more simple. (You can reach me at directly at lucas@adyen.com or reach out to our team at developer-experience@adyen.com)

Hey Lucas, thanks for the kind response! It has been around 2 years since I implemented and honestly it wasn't that Adyen was bad or anything, but the mental model was different from Stripe. Back then, Adyen was already fully async but Stripe wasn't so it required some learnings. And once it was implemented, I was actually blown away with the flexibility. In my current company, I am actually advocating for Adyen and we had a few calls with the sales team already, so it will most probably happen for us next year.

Re: Building a Developer Cult

#125
post #3

What makes Stripe good now is what made it good way back when they first launched: Handling payments sucks and they make it suck less. The design, etc. is the gravy on top of a successful runaway train.

The remarkable thing about the culture around Stripe is that they still get the credit for the things they did well in those early days, even though they are far from the same service now that they've scaled up. Objectively, today's Stripe is often a relatively expensive and unreliable way to collect money from your customers. The API and developer documentation are no longer as simple and effective as they once were…

> Something fundamentally changed about Stripe's support a few years ago, and it seemed like almost overnight they went from routinely having knowledgeable people replying with helpful suggestions to having people who can't even be bothered to read your message before hitting whatever button sends boilerplate reply #74 with platitudes #27 and #53 at the start and end.

I've found that their email support is far better than their live chat support (and I assume phone support too). The last time I used their live chat support I had a confusing back and forth until being told to just use email support.

Re: Building a Developer Cult

#126
post #22

I recently built a Stripe integration, and can't say I'm especially impressed. Unless I completely missed some aspects, it mostly just seems like an interface to their database. While this is great for some advanced workflows, the vast majority of use cases are all very similar: "create subscription and customer", "change subscription", etc. Common workflows require quite some coding, and there's no support for trans…

(Edwin from Stripe here.) Most people like our built-in search since it lets you quickly navigate and see related things. But if you don't, you can hit Ctrl+F+F to use native browser search. You can turn it off entirely by unchecking "Open on Ctrl-F." Docs now save to your cache, so loading should feel pretty immediate. What should we be more clear about in the Checkout docs? We're working on improving them, but it'd…

Hi Edwin. Will you guys ever add the ability to "pause" subscriptions? The only way to do that right now is to resort to various "hacks", such as adding a 100% discount coupon and then taking it off when unpausing.

Re: Building a Developer Cult

#127

Ah, the new Stripe design. https://dribbble.com/shots/13676278-Home covers it, and the comments on it are unanimously positive (and also shallow). Yet I open https://stripe.com and observe a page mostly incapable of hitting 60fps in its animations, which doesn’t scroll smoothly because of this, and which is intensely CPU-demanding (it immediately makes my laptop’s fans spin up, and I imagine it’d be draining the batt…

You really think anyone looking for a payment processing for their business cares about CPU and frames per second on a marketing website?

As far as they care about anything on the website. Do they care about it looking pretty?

If the CPU load is high enough to impact scrolling, it will hinder people trying to get information from that page.

Re: Building a Developer Cult

#128
post #51

If we are taking about Stripe, we should mention the silent competitor barely anyone talks or knows about outside the payments industry: Adyen. Stripe’s current, (private) valuation is $36B. Developers love them. Adyen’s current, public valuation is $43B (they IPO’d amongst little press coverage). Most developers don’t know about them. So what is the difference? Market strategy. Adyen only goes after large businesses…

When doing B2B with big corps developers opinion is not of such huge importance, they're not making any calls about closing the deal. Also integration will almost always be a part of the deal, so again devs care less, they'll have someone to come over and help set it up. It's in a big contrast with startups and small teams where it's usually up to devs to choose which payment processor will be used and how, and they'…

My experience is that developer opinions don't matter "today", but today's ICs move up the ladder and matter "tomorrow". Much as how consumer brands work so hard to capture teenagers, because brand loyalty acquired in that period can last for decades.

Re: Building a Developer Cult

#129

Earlier quoted context omitted.

(Edwin from Stripe here.) Most people like our built-in search since it lets you quickly navigate and see related things. But if you don't, you can hit Ctrl+F+F to use native browser search. You can turn it off entirely by unchecking "Open on Ctrl-F." Docs now save to your cache, so loading should feel pretty immediate. What should we be more clear about in the Checkout docs? We're working on improving them, but it'd…

Hi Edwin. Will you guys ever add the ability to "pause" subscriptions? The only way to do that right now is to resort to various "hacks", such as adding a 100% discount coupon and then taking it off when unpausing.

Yes! We added this in March: https://stripe.com/docs/billing/subscriptions/pause.

Re: Building a Developer Cult

#130
post #35

Earlier quoted context omitted.

I've been happy with strip. The only other payment processor I've used is PayPal, which is a nightmare. What do you mean by "there's no support for transactions"?

I haven't really worked with PayPal, so I can't really compare. I did some payments years ago with ... I forgot, so I can't really compare it to other competitors. With transactions I mean that if I send two or more API requests to complete a single action (e.g. "create customer and subscribe to plan", but there are many more advanced workflows like accepting multiple currencies etc.) then I'd like to have all of the…

I see what you mean, but I've never used an API where you could wrap arbitrary sets of API calls in a transaction on the remote side. In general once you are in the distributed systems world there are no transactions.

I think that would make for a very hard to use API. You would need to send all the API calls at once without receiving responses for the individual calls. So if you were doing something that requires 4 api calls you would need to send all 4, even if the first one is going to fail anyway.

So you wouldn't be able to get/create a customer ID and use it in the next API call to create a subscription. You would need to generate all the IDs locally first.

Even after all that, the transaction could commit on the stripe side, and you still might not get a response back that it worked. So how would you ask stripe "did this collection of API calls work?"

With their API you either get a customer id back, or you get an error, or you get nothing back. Then you either get a subscription id back, or you get an error, or you get nothing back.

* If you get a customer id back you go on to create the subscription. * If you get an error or nothing back you keep retrying until you get a customer id back. Then you go on to create the subscription following the same retry logic.

The impotency key ensures when you get the subscription id back you have created the customer exactly once, and the subscription exactly once.

Having a "dangling customer" is not a problem - when you fix whatever is wrong with your "create subscription" call you don't create a new customer - you just link that existing customer to the subscription. You'll have the customer ID at that point.

Post reply on HN