bundler-thankyou analyzes a project's gem dependencies, extracts recipient information from the gemspecs and sends donations through the Bitcoin lightning network.
No additional central directory/service or # is needed.
Thanks to lightning transactions happen anonymously directly between the funder and recipient.
The gem author adds funding details to the gemspec (in the metadata hash). This currently can either be a lightning node pubkey (that can receive keysend payments) or a LNURL.
That's it. That is all the author needs to do.
The author could also decide to dedicate the donations to somebody else. For example the rails gems could say thankyous should go to RailsGirls or similar projects.
Connect bundler-thankyou
to a LND lightning node.
Then run bundle thankyou
and specify a desired amount. The amount will automatically be split among all the gems.
- No # whatsoever
- User and maintainer do not need to agree on a service (like paypal) to perform the transaction
- No central directories or custodial services
- Based solely on existing tools (rubygems)
- Implemented on a "protocol level" - additional service can be built on top of that (like subscriptions, etc.)
- Works internationally
- Usable at the moment where the user interacts with the gems (in the terminal running a bundle command)
- Minimal fees and all the Bitcoin/Lightning advantages
Or install it yourself as:
$ gem install bundler-thankyou
Or you can add it to your Gemfile
gem 'bundler-thankyou'
bundler-thankyou builds on rubygems. Simply add a funding
metadata entry in your gemspec.
The value is either your node's pubkey or a LNURL.
Gem::Specification.new do |spec|
spec.metadata['funding'] = 'lightning:<YOUR NODE PUBKEY OR YOUR LNURL'
end
Full example: bundler-thankyou.gemspec
Once the gem is pushed to rubygems you're ready to receive thankyous.
use the bundler-thankyou
command to fund your favorite gems.
# in your project folder run:
$ bundle thankyou
Have a look at this example screencast
$ bundler-thankyou fund <gem name>
$ bundler-thankyou fund lnurl
Have a look at this example screencast
Have a look at this how to screencast
$ bundler-thankyou setup
# follow the instructions and provide the host, cert file and macaroon file to your LND node
$ bundler-thankyou --help
It is pretty much the only adopted solution to build such things.
Bitcoin is used as a method/"protocol" to transfer value.
We could provide additional services (for both user and project separately) to better fit their needs - for example different payment methods, subscriptions, etc.
Again Bitcoin is the "protocol". There are already plenty tools out there that for example give you a visa/master card for spending the received bitcoins.
Bundler is the tool to manage dependencies in the ruby world.
I am very critical about the human perception of the "payment". I do not want it to feel like I've "paid" somebody for something.
The tone/message is super important and it should not be "payment" but a way of saying "thank you"... thus bundle thankyou.
Bug reports and pull requests are welcome on GitHub at https://github.com/bumi/bundler-thankyou.
If you have questions, feedback, ideas please contact me... or even better open an issue.
Michael Bumann
@bumi
The gem is available as open source under the terms of the MIT License.