[HN Gopher] Kill Bill - Open-Source Subscription Billing and Pay... ___________________________________________________________________ Kill Bill - Open-Source Subscription Billing and Payments Platform Author : Whitespace Score : 280 points Date : 2022-10-19 15:26 UTC (7 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | Whitespace wrote: | Submitted the github link because I couldn't find it from their | marketing site: https://killbill.io/ | Operyl wrote: | I went on a trip to see how hard it would be to fine, and I | _sort of_ found it, and it was not obvious. | | 1. Started at the homepage, clicked "Start Now" at the top | right. It lands on a page called /download/. | | 2. The word download is nowhere to be seen on that page, but, | the third box in the row is "On premise", and has a "Select | plan" which redirects to https://github.com/sponsors/killbill. | | 3. We land on the Github sponsors page for the org. The | repository is listed below. | | Yeesh, that was a trip of obfuscation. | jlund-molfese wrote: | It is hidden in the FAQ too-- https://killbill.io/faqs/#faq- | item-where-is-the-code | | But yeah, not emphasizing their GitHub page is an interesting | choice, maybe they figure that their audience isn't | developers? Although many of the reviews are from technical | people, so that doesn't make sense either. | zinclozenge wrote: | It's pretty absurd that the quickest way to find their (and | honestly a lot of companies') github is by googling | "companyname github". | marykms wrote: | We have corrected this oversight! Thanks for noticing. It's now | under the About menu. | ranger_danger wrote: | Very unprofessional name, this is not something I could even | bring up in a commercial setting if I wanted to use it. Please | consider a different name. | newone2three wrote: | Why? | jjgreen wrote: | In the UK, "the Bill" is "the old Bill", the police. "Kill | the Bill" is a favoured chant by cross anarchists opposing | the "Take-Away-You-Freedom bill (2023)", and/or wishing an | early demise to the police. | veb wrote: | my first thought was the movie. but if you think about it, | they're talking about killing billing problems so I'd say | that's where the name comes from. (if you check out their | website). | | a name that makes people go "hmm that's a bit odd" is | actually a very efficient way to get people to remember it | next time they need them. | jjgreen wrote: | That's true enough ... hmmm ... [searches web to see if | anyone is making "CopKilla soda"] | geoffeg wrote: | Big Ass Fans (https://bigassfans.com/) has what some might | consider to be an unacceptable/unprofessional name and they | seem to do great. One might argue that they're "unprofessional" | name has helped them. | ranger_danger wrote: | There is no comparison between murder and a buttock. | incomingpain wrote: | Say I had an project that produces a file that people will | subscribe to get access to said file. Is this what you would use | to sell it? Why not say shopify? | thedangler wrote: | Shameless plug -You can use my stuff sytescope.com $20/m CAD | jmacd wrote: | That really strikes me as a better use case for Square or | Gumroad than either Shopify or KillBill. | thedangler wrote: | And shameless plug... sytescope.com lol You can have password | protected sections or email digital products after purchase. | modeless wrote: | Maybe this is a good place to ask. I'm considering trying a | subscription model for some client side software I'm developing | as as a side project. I think something like this would be | overkill for me. For a single developer project, what would be | the easy way here? Using something totally managed like Patreon? | Would Patreon even be a reasonable choice? | ggregoire wrote: | Stripe (and its competitors) solves exactly what you need. | | It takes 1 or 2 days to integrate into your app [1] and you | more or less never have to deal with it again (i.e. very low | maintenance/administration). | | I also think it's worth learning just to have an understanding | of how online payment works. | | -- | | [1]: 1 day for a basic subscription model, with granting or | removing access when the payment succeeded or failed or the | period is over and a new payment hasn't been done. | | Maybe 2 days if you want to handle different plans (e.g. free, | basic, pro) giving access to different features, and also like | a 14 days free trial. | adave wrote: | Just remember when you run into problems or have a spike they | will temp ban and hold your funds so just like paypal. | Depending on your situation the convivence might be worth it | though. Do consider pros and cons as it'll be painful later | on. | victor9000 wrote: | If you don't mind coding in php, check out Laravel Spark. | | https://spark.laravel.com/ | nickstinemates wrote: | Stripe is pretty straightforward if you're taking in USD | mansilladev wrote: | I typically think of Patreon as a way for content creators to | charge folks for "memberships." So, while I think their billing | mechanisms may work for you from a mechanical perspective, I'd | perhaps look at alternatives for monthly billing for your | client side software licensing. | | As for Killbill being overkill.. I think that running/managing | your own payment/subscription service behind the scenes | probably isn't something you want to spend your time doing, nor | would your customers want you spending your time on. Search | google for "SaaS billing" and you'll find plenty of options to | choose from. | modeless wrote: | Yeah I know what Patreon is typically used for, but I'm still | figuring out what will work best for me. It's possible that | positioning myself as a content creator would be OK, with the | software mostly free, maybe even open source, but a few paid | features unlocked by Patreon. Or something. It's a developer | tool and I think developers want everything to be free and | open source so it will be tough to monetize. | dewey wrote: | Look into Paddle or Stripe Checkout. It can be as easy as just | dropping in a link if you want to do it half-manual until you | have the need for it. | javier2 wrote: | This sounds like a awesome idea and a great project, and I work | with subscription billing. Attempted to try it out for a while, | and my first impression is that the UI is terribly ugly, even as | I literally could find only 3 buttons to click a side from the | Log out button. | mpaepper wrote: | If you use this in combination with Stripe, then what do you gain | in addition to Stripe? | paulryanrogers wrote: | One would hope you'd be decoupled from their rebilling, and | therefore could swap vendors more easily. | | I actually just ran into the need to bypass Stripe rebill | recently. Ultimately a workaround was found, yet sometimes you | really just need more control. | pamonrails wrote: | It really depends on your usecase, but some benefits: | | * Lower cost (just pay for payment processing, not the | subscription features) * Ability to integrate with multiple | gateways (to lower cost, support more payment instruments, | higher resiliency, etc.) * More advanced subscription features | * Ability to customize the system through custom code (plugins) | * Data ownership (easier to run analytics reports, since you | own the subscription data) | jmacd wrote: | They have a cloud offering. [1] Which is a good way to check | things out without needing to deploy and run Java code. | | 1: https://cloud.killbill.io | pamonrails wrote: | FYI this is just a managed sandbox, to test things out. We | don't offer Kill Bill aaS, as it goes against our value | proposition (Kill Bill is a framework to build your own | internal subscription billing and payments platform). | onebot wrote: | Nice to see stuff like this. But won't use it since built on | Java. I try to avoid the JVM as much possible. | hartAtWork wrote: | A significant amount of the worlds software runs fine on JVM | vlunkr wrote: | I hear 3 billion devices run Java. | [deleted] | canadiantim wrote: | As an alternative you can use: getlago.com, which isn't built | on Java | readams wrote: | Lago is AGPL so no go. | Andrew_nenakhov wrote: | If you are not modifying it, this is the same as MIT in | every practical way. | throwup wrote: | Beggars can't be choosers. If you're going to reject every | open source solution, you might as well just sign up for | Stripe. | rexreed wrote: | I'm not too familiar with the problems of AGPL - what's the | specific issues I should be concerned with Lago being AGPL? | hobo_mark wrote: | https://opensource.google/documentation/reference/using/a | gpl... | cupofjoakim wrote: | Care to explain why? | onebot wrote: | Java was great at the time it was created. But now, I think | there are several better languages that are more suited for | today. Like Go as an example. Easy to develop and easy to | maintain. You get very good performance for little effort. It | is just my personal preference, but I don't care to maintain | Java or JVM anymore. FWIW, I was at the very first every Java | One conference. Have used it for many years. | mahmoudimus wrote: | It might make sense to revisit your stance given the most | recent JEPs that have been introduced. Java 19 introduced | virtual threads and structured concurrency, which will | arguably make Java + the JVM a great alternative to Go, | etc. Especially since it's very backward compatible. | | W/ Graal as well, the AOT compilation comes 90% of JIT | performance. | | I really think the JVM is an exciting eco-system that has a | very bright future if it keeps going the way it is. Brian | Goetz' "Paving the on-ramp" discusses how to reduce the | boilerplate even further. So these things are definitely a | priority for the Java/JVM team[0]. | | [0]: https://openjdk.org/projects/amber/design-notes/on- | ramp | AzzieElbab wrote: | I haven't seen a single business app written in Go | password4321 wrote: | Oracle / licensing | | edit: IIRC the official Java runtime auto-update happily | upgraded to not-even-free-as-in-beer pretty nonchalantly. | | https://news.ycombinator.com/item?id=28543265 (2021) | | https://news.ycombinator.com/item?id=20799424 (2019) | chrisseaton wrote: | It's GPL with the 'classpath exception' so that you're even | exempt from the GPL the you link. Seems pretty good | licensing? Do you prefer even more permissive than that? | mahmoudimus wrote: | This is no longer a real reason. It's licensed as GPL with | a "classpath exception." That's pretty permissive and this | article[0] does a pretty good job of explaining some | questions you may have. | | [0]: https://www.mend.io/resources/blog/top-9-gpl-with-the- | classp... | anotherrandom wrote: | I don't understand this complaint anymore. Hotspot and | OpenJDK are all GPL, licensing and Oracle aren't worries at | this point | zinclozenge wrote: | I'm not the OP, but generally JVM applications are very | resource hungry under small loads, although I will concede | this matters less as load increases, and the extreme OOP | style of programming that Java encourages, in my opinion, | leads to a lot of faults that require more operational | babysitting than I'm ok with. | | I don't have any empirical evidence, just experience. As such | I'm very biased against it. | sieabahlpark wrote: | smashed wrote: | That's very harsh. If it were a bunch of cobbled together perl | and bash scripts I could understand poopooing the software | stack, but java for enterprise accounting software is a super | common stack and arguably one of the most suitable solution for | this type of software. | inson wrote: | Or Kotlin. People usually complain about JVM but lots of | enterprise software runs on it. Spring boot ecosystem | provides lots ready to use libraries. Kotlin can be much | easier to use compared to Java. Yes Go can be better language | now, but still lacks lots of library and API support. And | Rust, I'd rather code in jvm language fast and ship it fast | than building up whole infrastructure that takes way more | time to implement. | RamblingCTO wrote: | In my main gig we run on kotlin (fintech/accounting saas) | and I absolutely despise it, the overhead is massive. But I | wouldn't want to write it in golang, we really need proper | OOP. It's also so unbearably slow, it's actually | impressive. But it is what it is -\\_(tsu)_/- | djcannabiz wrote: | what would you say is a fast language then? | onebot wrote: | It is just my preference. But your right, java is very | "enterprise" hence my trepidation. I think there are much | better enterprise worthy languages now, like Go. Which are | far easier to develop and maintain. | encryptluks2 wrote: | Same here. It really is a headache and slow compared to a nice | Go, Rust or C program. | halfjoking wrote: | If this supported tons of payment gateways through their plugin | system out of the box then it would be worth considering. But if | you go to the page about payment gateways they don't have a | listing of 50 integrations you could easily drop in. Instead they | basically say you'll probably have to write the integration | yourself: | | https://docs.killbill.io/latest/userguide_payment.html | | No thanks - I'll just use a payment processor that has a good API | for subscription billing, and a flag on my users table that the | subscription is up to date. | jmacd wrote: | They do have Stripe, Adyen, CoCardless [1] | | I do agree this would be something a fully commercial project | would/should focus on. | | https://github.com/orgs/killbill/repositories | adave wrote: | Yeah that's good sine the vendors get a lot of control for | writing the basic API's. This is open source so they let you | choose which means not getting everything spoon fed. | leonidasv wrote: | As a software engineer who focus on developing payments and | billing systems, I assure you that gateway integration is by | far the easiest part. | [deleted] | davedx wrote: | Great low effort dunk on an open source project. Go you | halfjoking wrote: | Yeah I was too negative. Vendor lock-in sucks so I'm glad | someone is tackling it and I should have started with that. | | But I think people shouldn't hold back criticism either just | because something is free or open source. Stability AI | (Stable Diffusion) just sold out and took $100 million from | investors after being open source. Even if they're providing | something altruistically now you never know if that will | change after VC, buyout offer, or some other event. | ihattendorf wrote: | But the open source code is still there, the community is | always able to fork and continue development. True, that | rarely happens, but does occasionally (e.g. Emby -> | Jellyfin). | [deleted] | pamonrails wrote: | FWIW the very vast majority of our users are integrated with | either Adyen, Braintree, or Stripe (all open-source plugins). | | I know of ~20 integrations with more advanced | gateways/processors: these are closed-source plugins, but the | overall community wouldn't benefit much from accessing them | (e.g. it doesn't make sense for many companies to directly | integrate with mastercard APIs). | sdfhbdf wrote: | It's interesting to see that even though the project seems to | boast being about 10 years old it still doesn't have 1.0 version. | For some this might not be important but it does seem to subtly | convey a message of instability of the product. I haven't read | much into it but have to wonder what is stopping them from | releasing a "stable" 1.0 | dvt wrote: | I mean this only makes sense in a world where everyone uses | semantic versioning (and the project doesn't seem to indicate | this anywhere). Versioning numbers, per se, don't really have | any bearing on application stability. | mccorrinall wrote: | Even when using semver it just means that there were never | any major breaking changes. React is also still 0.x :) | [deleted] | dvt wrote: | Interestingly, being `0.y.z` as a major released version | (e.g. not in development or a release candidate) does seem | to break semver[1], but I do realize it's more of a | guideline and no one really cares: | | > Major version X (X.y.z | X > 0) MUST be incremented if | any backwards incompatible changes are introduced to the | public API. It MAY also include minor and patch level | changes. Patch and minor versions MUST be reset to 0 when | major version is incremented. | | [1] https://semver.org/ | bitdivision wrote: | For versions < 1.0.0 this does not apply: | | > Major version zero (0.y.z) is for initial development. | Anything MAY change at any time. The public API SHOULD | NOT be considered stable. | riquito wrote: | > React is also still 0.x :) | | It moved away from 0.x around 6 years ago | lelandfe wrote: | https://github.com/facebook/react-native/releases | | React Native is still 0.x, since 2015! | pamonrails wrote: | We don't follow SemVer (yet?). | | We use even minor versions for LTS releases (e.g. 0.22.x) and | odd versions for dev releases (e.g. 0.23.x). Kill Bill is very | much stable now :-) | johnmaguire wrote: | Don't be bullied out of ZeroVer - https://0ver.org/ | lgl wrote: | Thanks for this gem of a link. I had a good chuckle all | around but found this part particularly very funny: | | Apache Kafka was named after Franz Kafka, who lived as an | author in turn-of-the-20th-century Austria. Like the | project named after him, he was slow to start, inconsistent | in delivery, and left a mess of unpublished work after a | tragically early death. | TedDoesntTalk wrote: | Wish i'd known about this before signing up with Recurly and, | later Stripe Subscriptions. Now existing subscriptions are locked | in and I can't move to other vendors without losing those | existing subscriptions. | kareemm wrote: | Stripe used to help you migrate away. Not sure if they still | do. | voiper1 wrote: | Stripe indeed helped me migrate away to a vendor in a foreign | country - they did a one-time encryption of all the raw | credit card numbers for my new processor to import. | | The trouble was finding a processor that actually knew what | it meant to import the raw credit card numbers (because | stripe wouldn't send it to me). But I found one and it all | worked out. | btown wrote: | I recommend Spreedly for things like this - having a card | vault that's independent of your processor can massively | de-risk operations and allow you to dynamically route | specific transactions to different gateways to optimize | profitability. While I haven't tried an import with them, | they do support this workflow: | https://docs.spreedly.com/guides/migrating/one-time/ | TedDoesntTalk wrote: | > But I found one and it all worked out. | | Who? | voiper1 wrote: | In Israel, sumit.co.il was able to cooperate with Stripe | to import my tokens. (I had to pay for some developer | time.) | nwilkens wrote: | Also pretty interesting, Equinix Metal appears to be using this | product: | | https://feedback.equinixmetal.com/changelog/new-kill-bill-bi... | | https://metal.equinix.com/blog/under-the-hood-kill-bill/ | manv1 wrote: | We're hunting for a subscription product, but our use case means | that we may have to do a few hundred thousand provisioning checks | in a few seconds. | | Not a lot of products can do this, which means we're going to use | redis (or it's ilk) as a cache for subscription information. | However, there doesn't seem to be a supported way to subscribe to | changes to subscriptions. Is that a roadmap feature or is | something that "we should do ourselves?" | jmacd wrote: | I would love to speak with you to learn more. This is a very | good use case for something I have been working on. My email is | in my bio page if you are interested. | aylons wrote: | I'm sorry I don't have anything further to contribute to the | discussion, but this is an amazing name for the project. The | double-pun in the logo with the duck is the cherry on the top. | | Actually, here's a small contribution: I do not work with web | apps or nowhere near this kind of development (yeah, I also | wonder why I'm a regular at HN), or have a use to the end | product, but the name and logo grabbed my attention enough to | click the link, see the discussion and read the front page. | There's power to clever branding. | [deleted] | rodelrod wrote: | I've built a (proprietary) telecom billing system with the same | name back in 2005. I can't claim that as a particularly | brilliant pun since the system we were replacing was called | "BillGates" so it was kinda obvious. | inanutshellus wrote: | It is a bit perverse, right? A solution called "kill bill" | that... creates bills. | sbrossie wrote: | Perverse is a bit strong :-) To be understood as killing the | 'billing problem'... | inanutshellus wrote: | One could say it kills problems, or headaches, or anxiety. | But what does it create? It creates _bills_. "Perverse" | seems like a pretty good descriptor. | tmpz22 wrote: | Is Groupon/HP/Square/etc really using this or is it just a fake | marketing page? | [deleted] | pamonrails wrote: | No fake marketing :-) | rco8786 wrote: | Can confirm that Square uses it internally | paxys wrote: | It seems to have been created by ex-Groupon folks, so that one | is believable. Not sure about the rest. | brianm wrote: | It predates Groupon, was actually started at/around Ning (if | anyone remembers them). Groupon hired a bunch of the core | folks at the time they decided to adopt it. | jmacd wrote: | I've met with the founders of the project before. They really | don't strike me as the bulls#$ng type of promoters we've all | grown jaded over. | | They love this project and what they do. | AngeloAnolin wrote: | This is the type of project that should gain more traction / | support. | | Good name as well. Catchy! | pipeline_peak wrote: | Normalize open sourcing things companies monetize that aren't | really that special. | | Competition breeds innovation | diamondage wrote: | surely docusign is another target | pipeline_peak wrote: | Absolutely | jonahbenton wrote: | Met with this team probably 8 years ago for consideration on a | (at the time) large subscription product. Didn't go with it | because of issues in the organization I was working with, but | KillBill folks were good people, impressive, good product. Glad | to see them still around. | AzzieElbab wrote: | Tried to adopt it about 8 years ago but their very traditional | architecture didn't fit well with the infra we were using. Also | some jruby based plugins were buggy | adave wrote: | You mean the flawed microservices architecture where | everything is so complicated it's almost not worth doing. | pamonrails wrote: | Fair. That being said, we've come a long way by now. Lots of | our users deploy Kill Bill in "cloud-native" environments | these days (e.g. k8s). | | Also, we've deprecated JRuby support. Plugins are either | written in Java or in other languages through grpc shims | (e.g. Go). | AzzieElbab wrote: | Great to see you guys take all the things into account. | jiripospisil wrote: | > Does Kill Bill support taxes? | | > Kill Bill does not support taxes. Instead, we partner with | Avalara to outsource tax compliance. Our AvaTax connector | provides real-time and on-demand calculationsto prevent | overcharging or undercharging tax. | | I expected as much. Handling taxes internationally is a major | PITA and it changes all the time as politicians get new ideas how | to make things even more complicated. I'm pretty sure that many | SaaS companies are unknowingly not compliant with all the rules. | theturtletalks wrote: | So you're saying we need an open-source Avalara alternative. | Countries could even send PRs to change tax rates on the fly. | saddist0 wrote: | It is much more than paying taxes. There is no standard API | to pay taxes even if you can calculate the amount. A lot of | countries require weird registrations on weird portals upon | crossing different thresholds. A lot of countries have | different financial year cycle. | | And.. this is just the tip of the iceburg. | lazide wrote: | Or as often, knowingly not compliant with the unknown, and | unknowable (at their scale) rules | kingsloi wrote: | Interesting name choice and idea, I may try it out if I can | figure out how to run java again. I went with a similar name | https://github.com/kingsloi/medical-billkill for an app I'm | building to digitise medical bills | | oh I see it uses docker, noice | https://docs.killbill.io/latest/getting_started.html#_docker | seaourfreed wrote: | If/when people get censored by their merchant processor, they can | switch to this. ___________________________________________________________________ (page generated 2022-10-19 23:00 UTC)