[HN Gopher] Show HN: A source-available billing system I've spen... ___________________________________________________________________ Show HN: A source-available billing system I've spent 18 months building Author : that_guy_iain Score : 176 points Date : 2024-07-22 08:22 UTC (11 hours ago) (HTM) web link (billabear.com) (TXT) w3m dump (billabear.com) | lionkor wrote: | Cool license [0]! | | [0]: https://github.com/billabear/billabear/blob/main/LICENSE.md | notpushkin wrote: | From what I see it's basically BSL (and BSL _was_ used until 4 | months ago). It 's neat that the new license is using "plain | English" language, but were there any specific problems with | BSL that prompted this change? | hnbad wrote: | The short answer is that FSL was designed as an evolution of | BSL that doesn't allow for as much variance in what the | license means in practice, i.e. it got rid of the "additional | grants" and mandates a shorter, fixed expiration date. | | As I understand it, nothing FSL does couldn't be expressed in | a modified BSL but having it as its own license makes it less | ambiguous by not allowing for much variation beyond which | specific license it converts to upon expiration. | ezekg wrote: | To add: the problem with the BUSL was that every variation | of the BUSL was effectively its own license. The FSL reins | that in so that a company's legal department could approve | FSL full-scale, allowing all FSL projects to be used. The | same full-scale approval could never happen for the BUSL | due to the variances. | fasteo wrote: | https://fsl.software/ | forkerenok wrote: | Thanks for sharing! Got an answer to my question about | updates there in the FAQ: | | > How exactly does the two years work? | | > The two year timeframe applies to each software version | that is made available. Methods of making software available | include pushing a Git commit, publishing a package to a | repository, or mailing out a CD in a tin. For example, one | could clone a repo, run git checkout `git rev-list -n 1 | --before="2 years ago" master`, and--if LICENSE.md is FSL-- | use that version under MIT or Apache 2.0. | phkahler wrote: | So the key is to download the source for each version you | use and record the date and the current license text. Also, | use the oldest version you're comfortable with since it | converts the soonest. I'm thinking for down the road when | new releases are under a different (even commercial) | license and the pull the source for old versions. Then cost | starts to go up a lot. Not saying it will, but I hope the | software is successful but that sometimes leads to bad | things for customers. | ezekg wrote: | Or just use git: git checkout `git rev- | list -n 1 --before='2 years ago' master` | | and if the license is FSL, you're g2g. | inktype wrote: | Thanks. My initial reaction upon reading the submitted title | was dismissive because I dislike when companies mimic the | prestige of open source by saying "source available" while | having a practically proprietary license. | | This is the first time I've seen FSL and it is quite nice. | Surely "source available" is the wrong term to label the | license with. | ezekg wrote: | > Surely "source available" is the wrong term to label the | license with. | | There's a new term coming very soon, "Fair Source." :) | | See: https://fair.io | swyx wrote: | > mimic the prestige of open source by saying "source | available" | | no, its just the correct term, we literally ask people who | use the wrong license to change their terminology to "source | available", lets not punish people who do it right from the | get go | inktype wrote: | You misunderstood my comment; we probably agree. If | something isn't open source, it shouldn't be labeled as | open source. | | I'm saying that there ought to be a more descriptive term | for this license to differentiate from the usual | proprietary "source available" licenses. ezekg's comment | gives an appropriately descriptive label, "Fair Source". | foresto wrote: | > I dislike when companies mimic the prestige of open source | by saying "source available" | | It can be a practical need, rather than a prestige grab. Some | people can only sink time into developing their software if | sales of that software pay their bills. The redistribution | rights granted by an open-source license somewhat conflict | with this, by allowing another party to appropriate their | original work and use it to undercut them. (This is part of | why a revenue model based on services, rather than sales, is | often encouraged in open-source.) | | Meanwhile, the author might very much want to offer customers | other rights granted by open-source licenses, like the | ability to inspect the code, or to have it audited, or to | modify it, or to build it from source as an assurance of what | instructions are being executed. This is a situation where | "source available" makes sense. | | Looking at it from the other direction, some potential | customers will only accept software that grants the latter | rights, but don't care about redistribution rights. "Source | available" is a viable option for them as well. | | I wonder if it would be helpful to have a new, clearly | defined term for a class of licenses granting inspection & | modification rights without redistribution rights, and | explicitly protecting users from additional restrictions like | fees for source access. That could help make licensing of | this kind easy to identify and understand, and if that meant | wider acceptance, perhaps more developers would be willing to | release their source code to users. | | (I do see "Fair Source" mentioned in another comment, but I | haven't investigated to see if it aligns with what I'm | describing.) | louloulouhoo wrote: | Super cool. I feel like images with fewer colours will work best. | hnbad wrote: | I was very surprised to see that it's localised (at least into | German) and even has an imprint (in the German language version | at least) despite being based in the UK. | | I guess my main concern with using it as a SaaS would be that | it's located outside the EU (which creates GDPR headaches despite | what "GDPR compliant" services outside the EU will tell you) and | whether this also means it can be adapted to comply with any | given country's laws (e.g. in 2025 laws will come into effect in | Germany and the EU that will place certain requirements on B2B | "e-billing" such as using a specific XML format). | that_guy_iain wrote: | > I guess my main concern with using it as a SaaS would be that | it's located outside the EU (which creates GDPR headaches | despite what "GDPR compliant" services outside the EU will tell | you) and whether this also means it can be adapted to comply | with any given country's laws (e.g. in 2025 laws will come into | effect in Germany and the EU that will place certain | requirements on B2B "e-billing" such as using a specific XML | format). | | Well the UK is GDPR compliant it literally has the entire GDPR | law as GDPR (UK). If there is an issue in the future I'll just | move the company to Germany. The servers are currently in | Germany. I will be implementing everything and anything to | comply with EU laws. | Sander_Marechal wrote: | > The servers are currently in Germany | | With what company? All good if it's a EU company like | Hertzner, but it can still give GDPR headaches if you are | hosting on e.g. AWS in Frankfurt because Amazon is still a US | company. | badcppdev wrote: | What headaches are they? Do you have any references of | people having problems? | that_guy_iain wrote: | Basically, the US is not compliant with GDPR because of a | couple of laws, which I've forgotten the name of. Some | courts have found that because the company is US then | even if the data is in the EU a US court can force the | company to hand it over. This is why Google Analytics is | illegal in a few countries. | mhitza wrote: | > couple of laws, which I've forgotten the name of | | https://en.wikipedia.org/wiki/CLOUD_Act | that_guy_iain wrote: | It's Hertzner for that specific reason of it's an EU | company. | | Yea, the EU really needs to fix the EU-US GDPR issues. It's | not like the US will. | Tehnix wrote: | I feel I should bring up that in the EU there almost exists | two worlds when it comes to GDPR: Germany - and the rest of | the countries. | | I've made software for the childcare industry, where the | data concerns are greater than most other industries. | | Nobody had any problem with AWS, or really any non-EU | vendor, as long as they lived up to the GRPR agreements and | could provide the usual agreements. | | Only in Germany would you run into requirements to either | host in Germany (at worst) or at least within EU (at best). | Additionally, there's a lot of German specific laws on top, | that simply aren't in the other EU countries, and the | general population is also much more concerned about data | privacy and residency than any other EU country. | | It was a world of difference, and honestly enough for me | that I would not enter the German market again if it meant | needing to comply with any additional effort than the rest | of the EU market. | | A bit more of a rant: The hosting solutions in Germany are | also quite atrocious once you get to a certain scale. Lack | of proper managed services, tons of instability, insane | maintenance policies, poor security support (eg no 2FA for | many). Once you've gotten used to how AWS/GCP/Azure handles | things, it's hard to go back to that world. | | Edit: Almost as response to my last point, AWS is setting | up a unique EU sovereign cloud | https://aws.amazon.com/blogs/aws/in-the-works-aws- | european-s... | that_guy_iain wrote: | > I feel I should bring up that in the EU there almost | exists two worlds when it comes to GDPR: Germany - and | the rest of the countries. | | Well, Germany isn't the country that made Google | Analytics illegal. Other countries do care. | | > Nobody had any problem with AWS, or really any non-EU | vendor, as long as they lived up to the GRPR agreements | and could provide the usual agreements. | | I was in charge of the tech for a massive man in the | middle company where we integrated with lots of companies | to provide data for other companies. Noone had an issue | with AWS because they were all using it. It's consumers | who care and consumers who will make reports and it's | companies that will pay the fine. | yayoohooyahoo wrote: | I'm not sure I understand what this does compared to Stripe? It | actually seems like all the features are what Stripe already | does. | meiraleal wrote: | If that's the case, it is a great software, no? | yayoohooyahoo wrote: | Again maybe I'm missing something but since it's built on top | of Stripe, I would expect that it does more than just Stripe. | Otherwise I don't see why I would try to install this? | skrebbel wrote: | For one, Stripe Billing has been getting pretty pricey | mynameisvlad wrote: | Once again, this tool builds on top of Stripe and Stripe | alone. You aren't really escaping their fees by using | this tool. | danenania wrote: | 'Stripe Billing' is a separate product from the core | Stripe service with additional fees. | VoidWhisperer wrote: | The main difference is that the source code is available under | a FSL license and after two years converts to the apache 2.0 | license... compared to Stripe where the core part of the system | is closed source and proprietary | yayoohooyahoo wrote: | Ok but it integrates with Stripe, right? If you still need | Stripe anyway you may as well use their features directly | rather than go through an indirection layer? | canadiantim wrote: | It's actually better to use a buffer layer so your own | payment logic is platform independent, eg if stripe bans | you accidentally you can easily use another payment | provider | yayoohooyahoo wrote: | I agree it would be great in this situation but currently | it only supports Stripe, and they don't mention plans of | supporting any other payment platform. | datavirtue wrote: | That being said, this does not look to be targeted at | small businesses and that problem is one that is only | faced by small businesses. Small operations need to have | every payment system they can get their hands on (lest | one of them throw the ban hammer). A killer feature for | smaller operations would be multiple payment | integrations. | antaviana wrote: | I would recommend to have the Spanish website linguisticaly | reviewed. | | There is an awkward mix of formal and informal sentences, and | also some too literal translations here and there. | | I would also recommend localizing the screenshots into Spanish | (I'm assuming the product is localized). | KingOfCoders wrote: | German doesn't work either, most words are too large. | yard2010 wrote: | While working on i18n projects I always test German first. It | breaks most of the UIs. | 91bananas wrote: | Omg i have seen this so much in our i18n translations, UI is | completely broken. So there is a proper solution for this? | willsmith72 wrote: | My German friend's recommendation: | | We can read english quite well. | NetOpWibby wrote: | LMAO pretty good | electroly wrote: | It's no joke, really. I worked on a product (B2B, not | consumer software) that was primarily sold in the US and | Germany. Not only did we leave the product in American | English, but the Germans requested that we force all | numeric inputs/outputs to use American formatting (period | for decimal point, comma for thousands separator, even on | computers configured for German formatting). To them, it | was American software and thus it made sense for it to be | in American English. Their English was certainly better | than our German. | soperj wrote: | In most of my interactions with Germans, their English is | also better than my English. | shreddit wrote: | "German" is even spelled wrong in the language selector: | "Deustch" instead of "Deutsch" | KingOfCoders wrote: | [Edit] But of course I appreciate the effort. | f1shy wrote: | I can confirm german and Spanish, also the Italian version is | strangely written. | markus92 wrote: | Same with Dutch, Google Translate quality if not worse. | teamspirit wrote: | I have found, in my experience, that Chatgpt's translations | are pretty spot on - especially when compared to Google | translate. | abakker wrote: | Agree - ChatGPT is doing a better job. | olivierduval wrote: | Same for french: "tax rate" is definetly not "taux | d'imposition" but "taux de taxe" in that context | nikolayasdf123 wrote: | > "With out of the box SDKs integration is easy" | | I read it like "without". I think you mean "with out-of-the-box"? | kstrauser wrote: | "Out of the box SDKs make integration easy." | ramon156 wrote: | Can I help out with the translations? Dutch is awful | 6510 wrote: | een krachtig belastingsysteem | ruune wrote: | krachtig is such a great word | elaus wrote: | German as well. I guess it's AI translated on a string by | string basis, therefore translating the same thing into | different words when it's in another paragraph or list item | (missing context). | kfir wrote: | Daring tech stack! | | (50%+ in php) | badcppdev wrote: | Boring tech stack! | datavirtue wrote: | There is nothing more enjoyable and fun than developing on a | mature, boring tech stack. We might be able to keep web devs | more than a year if the kneejerk choice wasn't React or | Angular (Vue3 is a joy). | badcppdev wrote: | The Tax Solution page doesn't make it clear as to whether it | handles US State Sales Tax problems? | turnsout wrote: | Yeah there's a lot of nuance state-to-state, like Illinois | charging for certain digital services. | kayodelycaon wrote: | It's worse than that, it can also vary by city. | turnsout wrote: | It can even vary within the city--in Chicago there's an | extra tax on the F&B industry to support Navy Pier, with | very specific boundaries. | chrismorgan wrote: | Once I was long-distance cycling in the USA during the | summer, and rather fond of chocolate shakes. Somewhere at a | fast food place, I got asked if I was eating in or taking | out. I asked what the difference was--it seemed incongruous | to ask on such an item when that's the entirety of the | order. My curiosity was rewarded: apparently there was an | extra tax in that city on one or the other; so I did | whichever was cheaper (and honestly, either drinking it | inside, or sitting on my trike). | | I even came across taxes that were only present in _half_ a | city, even--one side of a road but not the other, that kind | of thing. | fencepost wrote: | That's probably not uncommon since municipality borders | don't follow county borders. | nanidin wrote: | It can even vary within a city, and within a zip code - see | TID's, NID's, and CID's. | kayodelycaon wrote: | It's even worse than that. You need a complete address to | actually know what the correct tax is. | TechDebtDevin wrote: | I miss the good ole days when Boomer politicians didn't | realize you could buy things on the internet (or that it even | existed) and everything was without sales tax. | szundi wrote: | That was the reason they retaliated with hate probably | FabHK wrote: | So, let's look at what actually happened. Boomer Bill | Clinton signed the Internet Tax Freedom Act into law in | 1998, prohibiting taxation of internet sales to support the | growth of commerce on the internet (which itself was | invented by Boomers and even older generations). | | Much much later there were efforts to tax sales on the | internet no matter where in the US, and for good reasons. | | https://en.wikipedia.org/wiki/Internet_Tax_Freedom_Act | Suppafly wrote: | >like Illinois charging for certain digital services | | I live in IL and haven't heard of that. Generally if | something is a 'sale' it's taxed though. I miss the old days | when anything purchased online was some gray area they | couldn't figure out if they should tax or not. | Thorrez wrote: | I think it's specifically Chicago: | | >Chicago's 9% amusement tax extends to all "amusements that | are delivered electronically." If you stay home and watch a | movie, you pay the same tax rate as you would if seeing it | in theaters. | | https://www.illinoispolicy.org/this-christmas-your-gift- | from... | meekaaku wrote: | How do ppl currently handle it in big systems like | oracle/dynamics or whatever. | djbusby wrote: | Integrate with Avalara or TaxJar | calvinmorrison wrote: | Avatax is amazing | stevenschmatz wrote: | Sales tax in the US is exceedingly complex. It's simply out of | scope for most companies to tackle without using a specialized | sales tax vendor. To properly create a model of just US states' | rules, you need to take into account dozens of factors like | product type, exemptions, various address types, fulfillment | info, and more. | | You can get to a basic level of compliance fairly easily with | state- and customer-based rates in select circumstances. But | unless you dig deep, you will get things wrong, and you will | only know about it when you get a potentially expensive audit | years later. | | Context: CTO of [Taxwire](https://taxwire.co), writing software | for sales tax. | karolist wrote: | If anyone wonders what the stack is and how to host it -> | https://github.com/billabear/hosting-docker-compose/blob/mai... | mtmail wrote: | PHP, Postgres, Stripe API | bmonteirog wrote: | Signed up for the free trial... but I cant see anything on the | dashboard, only a blank page with an Environments h1. :( Cool | concept though. Oh! and the ui from the screenshots is way better | than the live version | dvh wrote: | How much does a say $5 payment cancellation costs? I've heard | these diy billing systems have very high cancellation fees. | Malidir wrote: | Your website isn't responsive, the whitespace at the sides isn't | preserved | pvg wrote: | A discussion/Show HN last year | https://news.ycombinator.com/item?id=36491975 | spaghetticoder wrote: | The Italian translation needs some love, let me know if you need | a hand with it. | 0xbadcafebee wrote: | Does anyone genuinely make their choices for what product to use | based on if its source is available? | | I don't want to read the source code, I want to use the product. | If there is a bug, I want you to fix it. If you don't fix it, why | am I paying you / using it? Assuming I am a programmer (many | users aren't) and make my own patch, and you don't merge it, I'm | still screwed. Source only helps me if I'm the one running the | code. So the fact that your SaaS is source available has no | bearing on my use of it. | tyzoid wrote: | It's not strictly a SaaS if the license allows you to host it | yourself at no cost. | lytedev wrote: | Of course some people do! Programmers mostly, I would expect, | since they can possibly patch or audit code which may be a | requirement. | | Personally, I would never reach for a tool or component or any | piece of software if I have to run or operate it unless I can | change the code. | | Now, "source available" has another implication, however... | elric wrote: | Lots of businesses have agreements with vendors to keep the | source code in escrow, in order for the business to be able to | ensure continuity if the vendor goes out of business or | abandons the product. | csdreamer7 wrote: | How does that work exactly? They have rights to get a 3rd | party to maintain the product if the original vendor goes out | of business? | elric wrote: | They can either maintain it themselves, or let another | party do it for them, indeed. The contracts specify under | which circumstances the code can be released, but usually | it's going out of business or cancelling a product. | | It's something we had to deal with in a previous job where | we (as a small company) sold products to Global 500 | companies. Either we agreed to this, or there would be no | deal. Every time we released a new version to those | clients, we would place the updated source code (along with | documentation and tooling etc) in escrow. | ezekg wrote: | I think a big value prop is that it reduces vendor lock-in, | especially when depending on a new company. If the company | fails, you can self-host and even fork. You can also choose to | self-host for compliance reasons if your sector doesn't jive | well with multi-tenant SaaS. | bofadeez wrote: | Way too expensive ___________________________________________________________________ (page generated 2024-07-22 20:03 UTC)