[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)
 
web link (github.com)
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)