Show HN: We built an open source, zero webhooks payment processor
112 points
2 hours ago
| 15 comments
| github.com
| HN
Hi HN! For the past bit we’ve been building Flowglad (https://flowglad.com) and can now feel it’s just gotten good enough to share with you all:

Repo: https://github.com/flowglad/flowglad

Demo video: https://www.youtube.com/watch?v=G6H0c1Cd2kU

Flowglad is a payment processor that you integrate without writing any glue code. Along with processing your payments, it tells you in real time the features and usage credit balances that your customers have available to you based on their billing state. The DX feels like React, because we wanted to bring the reactive programming paradigm to payments.

We make it easy to spin up full-fledged pricing models (including usage meters, feature gates and usage credit grants) in a few clicks. We schematize these pricing models into a pricing.yaml file that’s kinda like Terraform but for your pricing.

The result is a payments layer that AI coding agents have a substantially easier time one-shotting (for now the happiest path is a fullstack Typescript + React app).

Why we built this:

- After a decade of building on Stripe, we found it powerful but underopinionated. It left us doing a lot of rote work to set up fairly standard use cases - That meant more code to maintain, much of which is brittle because it crosses so many server-client boundaries - Not to mention choreographing the lifecycle of our business domain with the Stripe checkout flow and webhook event types, of which there are 250+ - Payments online has gotten complex - not just new pricing models for AI products, but also cross border sales tax, etc. You either need to handle significant chunks of it yourself, or sign up for and compose multiple services

This all feels unduly clunky, esp when compared to how easy other layers like hosting and databases have gotten in recent years.

These patterns haven’t changed much in a decade. And while coding agents can nail every other rote part of an app (auth, db, analytics), payments is the scariest to tab-tab-tab your way through. Because the the existing integration patterns are difficult to reason about, difficult to verify correctness, and absolutely mission critical.

Our beta version lets you:

- Spin up common pricing models in just a few clicks, and customize them as needed - Clone pricing models between testmode and live mode, and import / export via pricing.yaml - Check customer usage credits and feature access in real time on your backend and React frontend - Integrate without any DB schema changes - you reference your customers via your ids, and reference prices, products, features and usage meters via slugs that you define

We’re still early in our journey so would love your feedback and opinions. Billing has a lot of use cases, so if you see anything that you wish we supported, please let us know!

baobabKoodaa
2 hours ago
[-]
For those who are wondering, like me, what is this? Is this a new alternative to Stripe? The answer is: no. This is an added layer of abstraction on top of Stripe.
reply
codegeek
1 hour ago
[-]
Pretty much my 1st question when I see a new billing product. Thank you for answering that. I don't understand why products like these hide that fact or keep it hidden. A great product that requires connecting a payment processor can still be a great product but it is not an actual payment processor and that part needs to be clear immediately on your landing page.
reply
amelius
1 hour ago
[-]
It's probably because "we built our castle inside Stripe's kingdom" doesn't sound very cool.

However, if enough people start using this then they might become the new gatekeepers because they could swap Stripe for any other payment processor without the need of the user knowing.

reply
theturtletalks
18 minutes ago
[-]
Their website says fully opensource and since it’s a Stripe wrapper, this seems to be an opensource alternative to Stripe Elements. It does require a Flowgrad account and key so it will provide value if other payment processors started using it.

Is there any benefit to using Flowgrad’s react components and hooks over Stripe elements directly?

reply
fn-mote
51 seconds ago
[-]
I thought the whole post was about the benefits, namely that Stripe has too many webhooks and doesn’t handle enough of the tax computation.

Did I misunderstand something? Or is this about a different angle?

reply
Aurornis
1 hour ago
[-]
I’ve been in software long enough to know that there’s a market for products that make things slightly easier for devs and their managers who think even common APIs like stripe are too hard. The number of devs who are struggling with web hooks and simultaneously have some budget to spend is probably bigger than you think.

Often these products are pitched and sold to non-technical managers, too. The sales team will learn that they can make some sales by promising a non-technical manager that buying this product will actually save them money because it’s easier to use.

reply
whizzter
1 hour ago
[-]
Literally describes one company I work for periodically.
reply
skwee357
1 hour ago
[-]
I'm sorry, but seeing the words "dev" and "struggling with webhooks" in the same sentence makes me cringe.

I mean, I have nothing against higher level abstractions, but I'd be worried to ship (as a dev) and use (as a customer) a product that was built by someone who does not have deep understanding of what they are doing.

reply
withinboredom
1 hour ago
[-]
I had the pleasure of working with teams that couldn’t even figure out how to use analytics in their product. They had zero idea who was using it and how many people were using it. They ignored the thousands of DB deadlock messages in the logs; well, they just ignored the logs completely, actually. All they cared about was shipping the next feature and getting the one QA guy to agree it was working correctly so the ticket could be closed.

This is much more common than you might think.

reply
nrhrjrjrjtntbt
10 minutes ago
[-]
Webhooks are not a struggle conceptually. They are a struggle operationally IMO.

In amy case why does a dev need to understand a (yet another) poor DX complex API (stripe) in addition to the other 20 they need to deal with. What is wrong with taking something off the plate. It is like daying dont use high level languages, use Rust, don't use a library to make http calls roll your own etc.

reply
skwee357
5 minutes ago
[-]
I think Stipe is one of the best designed APIs I ever had to work with.

But to reply to your point, there is no way out of this. You either understand the tools you work with, or you end up vendor locked to tools like vercel/next (the target audience of OPs tool, as it seems), which promise simplification, but end up being their own monsters.

reply
ForHackernews
14 minutes ago
[-]
There's a lot of React devs out there who have never touched a server-side anything.
reply
skwee357
8 minutes ago
[-]
I feel like fullstack engineer was a BigTech manufactured title designed to save costs compared to hiring two experienced engineers, one in frontend and one in backend, but ended up leaving the fullstack engineers in a limbo state where they are neither good at frontend, nor good at backend, hence they require a bunch of (VC funded) tools to "simplify" their development life.
reply
agreeahmed
2 hours ago
[-]
For now, yes. The game plan over time is to get deeper into the actual card rails side of things. But first we really want to nail the developer experience.
reply
jfyi
1 hour ago
[-]
You can't standardize the developer experience across different processors. I'm not trying to be negative here, just practical.

You are going to run into things like TSYS closing out batches every three days regardless of what happens.

The handling features for them and their customers thing is going to be a herculean task over even a couple different platforms. Not impossible, but it's big and you would do well to see what's out there before committing to a standard interface. Take a look at https://datacapsystems.com/ to see it done well.

Also, adding another layer like this, you better have an early plan to staff a support desk.

Oh, also, you are gateway, not a processor.

reply
agreeahmed
16 minutes ago
[-]
> Oh, also, you are gateway, not a processor.

Technically right now we are a value-added payment acceptance reseller. Eventually we'd like to become a payfac. And maybe with the new regulations that came out in Georgia, a chartered merchant acquiring bank. But that's down the road.

You're totally right about standardizing the devex across processors. We want to go as "close to the metal" as we realistically could as soon as we could. That's why we very deliberately built our own billing engine from scratch. We could have gotten to market faster by just mapping onto Stripe Billing, but we would have foregone valuable experience mapping processor lifecycle events to our data model. For a while that's going to be much of the work on our plate, standardizing how we map their lifecycle to ours.

We took the past year basically studying the prior art and developing / testing a data model that we feel is well on its way to describing the general case. I was frankly surprised how long it took to really hammer out the primitives.

reply
jfyi
6 minutes ago
[-]
[delayed]
reply
Denvercoder9
1 hour ago
[-]
That's fine, but it does mean that your current submission title is factually incorrect. You didn't build a payment processor, you build a payment gateway.
reply
whizzter
1 hour ago
[-]
You intend to restrict this to a single market? There's some sibling comments that do point out that.

Much "annoyances" when it comes to money is all those weird laws and rules from lower level companies in place, improving things for developers is a laudable goal but I do hope that you guys have some real world experience with these systems apart from frustrations as system users because doing a good DX right now feels like it could make you end up in a dead end.

reply
agreeahmed
47 minutes ago
[-]
100% agree - this is not a space to tread into lightly.

We have some really knowledgeable payments people in our corner, including several veterans with many decades of payments industry experience as leaders at the big payments players. There's a lot that we've been able to learn from them as they help us navigate the financial services side of this business. We're conscious of how much work there is to do, and how the "good DX" is really just the visible tip of the iceberg.

Currently through Stripe we are able to onboard merchants wherever Stripe can serve them directly. Our upcoming merchant of record offering (which we hope to launch soon), will be available to merchants wherever Stripe can send payouts, which is a longer list of maybe 150+ countries.

The pathway to building deeper payment rails will indeed have to be country-by-country as each one requires new banking partners and compliance regimes.

reply
turnsout
1 hour ago
[-]
The DX of Stripe is already great—it sounds like you want to give Stripe reasonable defaults. Not a bad idea, but if you know what you're doing, you can have AI read the Stripe docs and implement something based on established patterns. Who is your ICP?
reply
agreeahmed
8 minutes ago
[-]
Today our ideal customer is someone starting a project on day one who wants an easy pathway to 1) get stood up ASAP, and 2) start iterating on pricing as they learn what customers really care about. What we found when talking with dozens of builders was that the DX is indeed much better than e.g. Adyen, Braintree, etc. But their DX is far from the counterpart best in class devtools in auth, hosting, or databases.

To be clear, what Stripe has built is a towering accomplishment. But a lot of why innovation in payments DX has been slower than other parts of the stack is that since Stripe, there haven't really been many others who have attempted to tackle the *entire* job to be done.

reply
brunosutic
21 minutes ago
[-]
> The DX of Stripe is already great

This used to be the case back in 2015, but not anymore. The financial compliance is more strict now. You have to charge taxes. EU enforced SCA / 3DS in 2019. All of these are hard to implement (correctly) on their own - almost impossible together.

Source: I run (paid) Ruby on Rails library for Stripe subscriptions integrations. I also do billing audits. Here's an example audit where I pay $30, get ~$2000 https://www.youtube.com/watch?v=YuXp7V4nanU

reply
guessmyname
2 hours ago
[-]
Who cares about developer experience? Genuinely asking, because I’m a developer too and I certainly don’t care. What we care about is solving the actual problem of payments with the downstream companies.
reply
jazzyjackson
1 hour ago
[-]
DX = developers not shooting themselves in the foot and making it impossible to cancel my free trial because my account got deleted but the autopay didn't

fewers bugs = happier customers not getting charged for shit they didn't agree to be charged for

reply
agreeahmed
43 minutes ago
[-]
Basically this. The existing integration paradigm for payments, at its worst, feels like a warehouse filled with footguns on the floor with the lights turned off. Esp for newer developers who are used to more modern devexes which explicitly try to take reasoning about complex state transitions off of your plate.
reply
poly2it
2 hours ago
[-]
Stripe became dominant by improving developer experience, which cuts implementation costs.
reply
mcflyin619
2 hours ago
[-]
I care about my own developer experience. If i can save a headache and some time integrating payments, I'm all for it.
reply
Scubabear68
2 hours ago
[-]
“Well your payments platform doesn’t actually do payments, but the developer experience of doing nothing was flawless!”

Sorry for the snark, but been in payments a long time, and seen too much of this nonsense.

reply
runako
1 hour ago
[-]
It looks like this is more akin to a React-only Chargebee where entitlements etc. are stored with the billing provider.

(Apologies if I am misreading the site.)

reply
redbell
1 hour ago
[-]
So, this is somehow similar to Polar (https://polar.sh/)
reply
brunosutic
2 minutes ago
[-]
How do you guys handle past due / grace period if there are no webhooks? Like, do you notify the end-user that their card failed and they need to update their card? Or do you let Stripe send emails?

What's your approach to 3DS and related race-conditions for subscriptions? In my experience 3DS is by far the biggest problem for subscription integrations - not the webhooks.

reply
dperfect
1 hour ago
[-]
It looks like this does make some things easier, but I'm not sure if it's actually better.

From what I can tell, any time you use this to check something like the customer's subscription state (or anything else payment-related) - either from the front end or the back end - it's going to perform an API request to Flowglad's servers. If you care about responsiveness, I'm not sure that's a good idea. Of course, you can cache that state if you need to access it frequently, but then it kind of defeats the purpose of this layer.

Stripe integration can be tricky, but if you don't want to store anything locally, you might as well just hit Stripe's APIs without the middleman. For the payment systems I've worked on, having cached state in the database is actually really nice, even if it's a bit more work. Want to do a complicated query on your customers based on payment/subscription state and a bunch of other criteria? It's just a DB query. With this, I think you'll be hoping they expose an API to query what you need and how you need it. Otherwise, you'll be stuck waiting for a thousand API requests to fetch the state of each of your customers.

reply
agreeahmed
25 minutes ago
[-]
Yeah this very true.

We have a plan to allow you to store more of this data on the merchant's side and still benefit from the work we've done to refine our data model, and make the SDK super usable. Even if you do hit Stripe's APIs, you will need to maintain mappings of price ids to your plans, your plans to what features you grant for each, stripe customer ids to your customer ids, etc. That's the kind of grunt work and maintenance burden we'd like to eliminate.

Plus, Stripe is explicitly designed to be a write-optimized system, and discourages[0] using them as a realtime read layer. We're super early in the journey but that's the problem we want to solve: how can we give software devs the same unified money movement + value movement experience that Shopify has availed to DTC brands for nearly 20 years?

[0] https://docs.stripe.com/rate-limits

reply
D_R_Farrell
56 minutes ago
[-]
Very cool guys. Curious about a few things if you’re open to sharing:

- How are you handling tax/VAT and edge cases? Like usage backfills or retroactive credit grants, etc. etc.

- What’s the failure mode if your service is down?

Either way, refreshing to see someone go after this with the opinionated DX!

reply
agreeahmed
40 minutes ago
[-]
Very helpful callouts - both areas we want to build more robust product coverage.

Handling tax and VAT edge cases are coming up on our roadmap. We want to offer a merchant of record service soon, and eventually make it so that you can steer the funds flow at a per-transaction level.

We monitor our uptime closely[0], but we're also working on giving more options to self-host the source of truth component of our offering for people who want to be more in control of their certainty.

[0] https://status.flowglad.com

reply
baobabKoodaa
1 hour ago
[-]
For what it's worth, the landing page is one of the most beautifully designed things I have seen in a long time. Congratz on the launch, didn't want to be so negative. I just hate that this is built on top of Stripe :(
reply
willcodeforfoo
1 hour ago
[-]
I liked it too, reminds me of zed.dev...
reply
game_the0ry
1 hour ago
[-]
I have an idea. Would be happy to get feedback + criticism.

What if there was some standard API interface for payment processors? Basically AWS S3 API, but for payment processors.

The idea being that migration between payment providers should be low friction and standardized. If you're in Stripe jail or banned, start using paypal (or something else) just by changing endpoints + credentials.

Since Stripe is the gold standard, we could standardize on that (like how cloud providers standardized on S3).

I think India has implemented something to this effect.

Thoughts?

reply
Denvercoder9
45 minutes ago
[-]
It won't work, the feature set offered by different payment processors differs too much to capture in one consistent API. Even Stripe itself already offers 3 or 4 different ways to integrate with them.

What you want already exists though, and it's called a payment orchestrator. They integrate with different payment providers and provide you one API. You pay for that by getting a much smaller feature set.

reply
clintonb
2 hours ago
[-]
> Not to mention choreographing the lifecycle of our business domain with the Stripe checkout flow and webhook event types, of which there are 250+

You don’t need to listen for all event types if you aren’t using _every_ Stripe feature.

reply
OsrsNeedsf2P
2 hours ago
[-]
Sure, but everything from the Stripe UI down to their API is feature creeped. I remember using it 10 years ago and I got it working in 10-20 minutes. Last month I see it up for my new project and it took almost a whole day
reply
Scubabear68
1 hour ago
[-]
You setup a payment flow and it took you less than a day, and you are upset? I don't understand.
reply
tyre
1 hour ago
[-]
Were you using it in the same way?
reply
agreeahmed
1 hour ago
[-]
I'd bet the typical payments integration has more complex requirements now than those from 10 years ago. That's what usually happens as a space becomes more important and, therefore, more regulated. Usually new entrants will come in and try to provide a tidier interface for solving an increasingly complex problem. In payments, as others in the comments have pointed out, that process is hampered by the gatekeepers involved.

You'd have to commit to building an amazing developer experience and navigating bank partnerships and compliance (per country), risk, antifraud, etc.

That's why the payments devex feels so behind the DB, hosting, or auth devex today.

reply
seanw265
2 hours ago
[-]
Stripe billing definitely leaves something to be desired and agree that a layer on top can improve the DX tremendously.

What differentiates you from competitors like Lago and Autumn?

reply
agreeahmed
54 minutes ago
[-]
Gotta say we admire both teams, and have a lot of respect for anyone trying to make progress in this space.

As far as differences: both are an additional service you need to bolt-on in addition to signing up for Stripe. We're aiming to consolidate onboarding as a single provider that both processes. A lot of work still to do on our side, but that's where we want to end up: that you get your dream devex without needing to sign up for 2 products.

Both are essentially billing-only services where you bring your API key. We have a billing engine that we built from scratch, and are actually processing the payments, currently using Stripe Connect under the hood.

Lago seems to still require you to deal with webhooks - if not theirs, then Stripe's - and is focused on "billing as write operation" (their first-class concern is producing a correct, well-formed charge or invoice object). We want to solve both the "read" (what features can my customer access, what balance does their usage meter have?) and the "write" more conventional billing operations like charges, prorations, converting free trials to paid, etc.

With Autumn we're tackling a similar problem but they currently still require you to use Stripe Billing + your API key. So you'll be paying for Stripe Billing + Autumn (unless you self host). Overtime as we get deeper into the money movement side of things our paths will look more different, as more of our devex will include smoother ways to handle funds flows, tax compliance, etc.

And compared to both, at least from what I can tell from the outside, we're putting relatively larger share of our brain cycles towards making our SDK and docs deeply intuitive for coding agents.

We want to design our default integration path around the assumption that you will have a coding agent doing most of the actual work. As a result we've got some features like e.g. an MCP-first integration path that makes it easy for your coding agent to ask our docs pointed questions that may come up as it integrates Flowglad. And a dynamically generated integration guide md file that considers both your codebase context. A lot of that is the result of our own trial and error trying to integrate payments with coding agents, and we're going to be investing a lot more time and care into that experience going forward.

reply
aftbit
2 hours ago
[-]
How does the actual payment processing work? Do you need a Stripe token or Braintree or some other fixed provider?
reply
agreeahmed
2 hours ago
[-]
Currently we're using Stripe to process payments, so you get all the benefits they provide for antifraud etc. baked in. You don't need to provide a Stripe API key, you just go through a Stripe Connect account creation through us. You're still the settlement merchant.

Over time, we'd like to go deeper on that layer of the stack. But it's a long journey and we're still super early.

reply
pat_space
2 hours ago
[-]
They say they use stripe for now
reply
ahstilde
51 minutes ago
[-]
i do wish i could vibe code payments. stripe is good but LLMs need help.
reply
agreeahmed
4 minutes ago
[-]
We're working on getting there. What got us out of our seats to build this was realizing that LLMs still struggled with the fairly basic data modeling and distributed systems problems that existing payments providers pose. Any solution they came up with was only ever narrowly correct, brittle, and a nightmare to maintain
reply
harrisontelyan
38 minutes ago
[-]
give the product a go and lmk how vibe coding payments performs
reply
fuddle
2 hours ago
[-]
I have to say, this is a great approach to open source licencing: https://github.com/flowglad/flowglad/blob/main/LICENSE

It makes it very clear, and easy to understand.

- ./packages: MIT

- ./playground: MIT

- ./platform: AGPLv3

reply
fuddle
2 hours ago
[-]
It looks like you need to update this file https://github.com/flowglad/flowglad/tree/main/platform#read... Its still using the Mintlify starter kit
reply
harrisontelyan
2 hours ago
[-]
thanks for heads up, fixing
reply
swedishuser
2 hours ago
[-]
> 2.9% + 30¢

Very expensive!

reply
rickcarlino
2 hours ago
[-]
Isn't this pretty much what every processor everywhere charges? I have been out of the industry for 10+ years but I remember this being pretty standard.
reply
agreeahmed
2 hours ago
[-]
It ain't by much, but we're a tiny bit cheaper than Stripe when you consider how much they charge for Billing (.7% for them vs .65% for us). And pretty much every Stripe integration uses Stripe Billing (unless they pair with a 3rd part billing SaaS)
reply
runako
1 hour ago
[-]
> pretty much every Stripe integration uses Stripe Billing

Isn't Stripe Billing only for subscriptions?

reply
agreeahmed
1 hour ago
[-]
Stripe Billing handles subscriptions and usage based billing now. Most software products fall in one of those two categories, or sometimes both. As a result, most software companies are paying more than 2.9% + $0.30 for Stripe, closer to 3.6% + $.30.

To only pay Stripe 2.9% + $.30 they'd need to only use Stripe just for charges, and either build their own billing engine (usually poor use of time) or use a 3rd party SaaS.

reply
skramzy
2 hours ago
[-]
That's Stripe's transaction fee, not theirs
reply
irisman
2 hours ago
[-]
Don't think there is a cheaper alternative to stripe. Polar and Dodo is 4% + 40¢
reply
tyre
1 hour ago
[-]
Braintree says it is 2.89% + $0.29 USD. Specifically priced at one bip and one cent cheaper lol
reply
koakuma-chan
1 hour ago
[-]
Name "Braintree" is much worse than "Stripe" so them being one bip and one cent cheaper is completely cancelled out.
reply
baobabKoodaa
2 hours ago
[-]
Standard.
reply
koakuma-chan
2 hours ago
[-]
Something tells me the main problem with payment processing is integrating with card companies like visa and mastercard, and not whether you use webhooks or not (if I understand correctly how online payments work).
reply
agreeahmed
2 hours ago
[-]
Closer-to-the metal integrations with providers is definitely a big headache. Solving that problem takes a bit longer because you need bank partnerships, in many cases have to pass compliance screens, etc. We're aiming to tackle the more tractable part first which is the developer experience
reply
koakuma-chan
2 hours ago
[-]
If you're trying to be like Vercel—it's a red flag for any reasonable person when you clearly spent more effort on your landing page than your actual product. What made Stripe so successful is that, I personally would not even attempt, like you said, "integrations with providers" "bank partnerships" "compliance screens" because that sounds basically impossible.
reply
harrisontelyan
1 hour ago
[-]
we're lucky enough to have a founding designer who makes it look easy in about a week - we spent about a year on the product in silence.
reply
irisman
2 hours ago
[-]
"It's hard so you shouldn't try doing it"

thank you, very productive reply

reply
koakuma-chan
1 hour ago
[-]
I'm not saying they shouldn't be doing that. It's actually the opposite—they got the VC money, they might as well do something actually useful with it.
reply
agreeahmed
1 hour ago
[-]
That's definitely the gameplan. We believe very sincerely that developers deserve more choice when it comes to payments than they currently have. It's a central reason why we started building this.

It just takes longer to make progress on that problem because of all the institutions involved.

reply
baobabKoodaa
2 hours ago
[-]
Yep! I would love for somebody to actually solve that problem.
reply
mcflyin619
2 hours ago
[-]
What sold me on flowglad was the single source of truth and not having to hold customer stripe info in my DB. Although it took me a little while to figure that out lol
reply
baobabKoodaa
2 hours ago
[-]
Six minutes after this story was posted on HN you made this HN account to post this. So when you say it took you a little while to figure out... by little while you mean less than six minutes?
reply
mcflyin619
1 hour ago
[-]
I appreciate your concern and can understand your suspicion of when my account was made and when this post was posted. I am in their discord, because I have used their product for about 6 months now, and they mentioned hackernews, and I was curious because I have never heard of it. Now does that mean my comment about how the product has helped me in my projects is now not valid? Have a great day, and either try it or dont, but no need to try and bring me down for supporting a company that has made my job easier.
reply
baobabKoodaa
1 hour ago
[-]
Okay, fair enough. It just looked like a sockpuppet account, but okay, I believe you you're real. Sorry.

FWIW your claim here is false: "Everything you have commented on this post has been negative". I don't think this comment of mine was negative: "the landing page is one of the most beautifully designed things I have seen in a long time". Also note that when someone criticized the level of fees, I responded to that comment by saying that the fees were "standard" (as opposed to high). So just to set the record straight, not "everything" I commented here was negative.

reply
mcflyin619
1 hour ago
[-]
I hadnt seen those, and went ahead and edited my comment to remove that.
reply