I highly encourage other founders to do the same. It doesn't require your company to be massively profitable with hundreds of employees to make a $20-30k annual commitment to supporting open source.
It's been established that this may be achievable for a small startup. However convincing key stakeholders that this would lead to an increase in a quarterly return may prove to be a unique challenge.
Separate from a 'what will the shareholders think?' vantage point, this is a valuable question depending on your tax jurisdiction. In the UK, such sponsorships will be tax deductible only if you can answer this question in a satisfactory manner (or if the recipient is a registered charity, which is unlikely).
The lead of the OP is something to follow, though!
Another great example of the overall effect described in the classic https://slatestarcodex.com/2014/07/30/meditations-on-moloch/
When you donate a sizable amount to an open source dependency, you get clout with the devs of that dependency, it's easier to rely on them for support if you need it. You can expect them to care more about the bug reports you send in vs. other people, etc.
In addition, you ensure that the project is healthy, less likely to have serious bugs and issues that could destroy the value of your firm, etc.
This is also why many open source developers sell support contracts or paid support in any shape or form.
Users are terrible project managers. They report things as bugs that aren't bugs, they request features that don't improve the product, they in general have a low hitrate in terms of providing successful direction for a project.
Setting up a system where users pay for a _specific_ thing to happen is just asking for trouble.
Users paying for development they already find useful, or for concepts that they believe have promise - that's the way to do it.
In lichess billions of games are played each month, and lichess is accepting donations of big amounts of money, i.e. 10 dollars, 100 dollars. How about with every game that is played the players pay less than a penny, 0.1 penny of a dollar? Personally that would cost me less than a penny for each day of playing. Lichess would make a lot more money, than individual donors who pay big amounts, and everyone else playing for free.
See how ruthlessly i got downvoted, maybe it is the case that no one knows what bitcoin is. Bitcoin is nothing for free, everything is paid for. Using supercash almost infinitely divided, to small amounts. If that is implemented already in the traditional financial systems how come no one is doing it?
I think what matters mostly is not the contribution size, but the mindset. If every company using open source contributed at least a little, we would have a healthy ecosystem.
You can do anything with any language/technology, it's just a question of how many resources you are willing to dedicate to the task. In my case, as a solo bootstrapper, the resources are very limited.
Main advantages:
* a single language for both client-side (browser) code and server-side code
* a single data representation (maps with namespace-qualified keys), so no conversions necessary
* spec which helps validate data in multiple places (such as :pre/:post conditions)
* core.async which lets me write asynchronous code both in the JVM and in the browser, same primitives
* a library of excellent sequence manipulation functions
* transducers, which let me build composable data pipelines
* the Rum library which lets me use React as a rendering engine, basically a function of my data
* most of my domain code is shared between the browser and the server
There is more, but these were what I could come up with immediately.
I mostly spend time thinking and working on the problem domain, not writing boilerplate (there is none in Clojure, really).
Something doesn't sound right.
In general, I'm a big fan of leading by example. But in situations like open source where there's a tragedy of the commons effect, leading by example can simply mean deliberately putting yourself at a competitive disadvantage. Companies that pay open source developers are doing the right thing morally, but end up with less money available to compete against other companies that don't.
I don't know what the right solution is. Maybe it requires organized action and legislation. Maybe it requires the open source developers themselves to restrict who they let use their code. (Sort of like the fish choosing which fishermen get to catch them.) I don't know. I applaud what Cognitect is doing, but I don't know if it will have any ability to influence other companies that extract value from open source without giving anything back. It may just make them relatively more powerful.
I just always think about the indirect incentives our choices make in the broader ecosystem. Some systemic problems can be solved by individuals incrementally making different choices, but I think some require larger organization and coordination. And, to some degree (but not enough to cancel out the merit of an individual moral choice) a choice to do the right thing can actually make it easier for others to exploit more.
I've also only heard great things about the company culture, specially in the engineering side.
After all, if an open source project hits off with users without the money, it clearly didn't need the money. While who knows what really great things die because the authors needed to focus on stuff that pays them directly instead.
This quarter we funded Calva and clj-kondo which are more established, and O'Doyle Rules and ClojisR which are more experimental.
puredanger - how does this overlap or affect the Clojurists Together support effort?
Please take a minute to peruse their services page and see if they might be doing something you might want to hire at some point.
Their services page: https://cognitect.com/services.html
This appears to be a great side effect of Cognitect joining Nubank.
The reason I'm asking is that I've noticed companies often use their contributions for own marketing. And this is obviously great.
However, how can one validate if a company says "we're contributing $X/month", that it's really contributing and that it's ongoing?
The language cares about the programmers first, in a supporting and liberating kind of way.