markmark206

markmark206

Monetization on hex.pm? Encouraging sustainable, high-quality contributions?

Q: Are there any plans to expand hex.pm to help authors of packages capture some of the value they created?

Details: The creators and contributors to the Erlang and Elixir ecosystems have created amazing value, but capturing some of that value is not an easy task. An occasional package developer might take it on and build their one-off payment mechanisms (e.g. Oban Pro’s neat subscription machinery), while most others treat their open source contributions as after-work activities, “for exposure,” or for fun. These are great approaches, but they are also limited in terms of appeal and sustainability in a world where we need to pay our bills.

If the author of a package is able to capture some of the value they have created, it might be easier for them to justify dedicating their bandwidth to the package, over longer periods of time. This will likely lead to more high-quality, sustained contributions to the ecosystem.

If anyone can pull this off as an actual positive-sum solution, and an actual Pareto improvement – rather than another example of the Tragedy of the Commons, killing something amazing by privatizing its value – it’s the Elixir team. ; )

Here is one way this might look like:


  1. As a developer, I can use my hex.pm account to “buy” or otherwise contribute to packages I use or otherwise want to support. My hex.pm account comes with a build key that I use in my mix.exs when fetching my dependencies. mix deps.get performs validation of packages’ policy.

  2. As a package author, I can attach a pricing structure to future versions of my package (e.g. “free”, “free for _” / “paid for __”, “paid”, “one-time payment”, “subscription”, “free but appreciate contributions”, “free, with a build-time message”).

  3. hex.pm provides: account/build key management, payments/distribution, and mix deps.get / mix deps.update verifications. hexpm can also provide a bit of curation, reducing the likelihood of fraudulent packages (perhaps contributing to Elixir’s OpenChain initiative). This handling comes with a fee that supports hexpm’s own sustainability and operations (but without the profit-maximization motive).

(This is just an initial draft of possible behavior.)


Helping package authors capture some of the value they have created for the community seems to have a big upside for the community, but, clearly, this is also a non-trivial project to get right. I am wondering what folks here think about this.

I am very interested in your thoughts.

Most Liked

dimitarvp

dimitarvp

I think this has always been much more of a social, policy and financial problem than a technical one.

IMO your idea is great. I love it. But the words “capturing value” are exactly both the solution and the problem. It really depends on what library we are talking about. Oban Pro? Unquestionably great choice because trying to roll your own is a project, to put it mildly. But f.ex. a GPS-to-MGRS (and vice versa) conversion library? Meh. Almost everyone can write that from scratch in a weekend.

“Capturing value” is basically, I think in this case, saying “please give back a little because you are taking so much for free; some appreciation, hello?” – and I don’t think it will work. People just love getting stuff for free and will only pay if they don’t have a choice (again Oban Pro; try replicating it yourself!).

So yeah. “Capture the value” indeed.

So my thoughts here are, except for my well-founded cynicism, is that your idea would likely morph into “let’s try to provide some sponsorship to high-value and very popular but free libraries in the ecosystem”. I think that would be the much better and realistic aim. Though then your next order of business is identifying those…

Where Next?

Popular in Discussions Top

arcanemachine
https://nitter.net/josevalim/status/1744395345872683471 https://twitter.com/josevalim/status/1744395345872683471
New
vans163
So useless benchmarks aside, Its possible to write a webserver that can serve 300k requests per second (perhaps more with optimizations)....
New
WildYorkies
It seems that the more I read, the more I find Elixir users speaking about all the ways that Elixir is not good for x, y, and z use cases...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
PragTob
Hey everyone, this has been on my mind for some time and I’d love your input on it! TLDR: I feel like maps are superioer for storing and...
New
eteeselink
Hi all, In the last days, two things happened: A blog post titled “They might never tell you it’s broken” made the rounds. It’s about ...
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
100phlecs
Are there any downsides, like perf issues, to putting all functional components in CoreComponents as long as you prefix it with the conte...
New
Markusxmr
Since Drab has been developed for a while in the open, introducing the Liveview functionality in a way it happend appears to undermine th...
New

Other popular topics Top

New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 52673 488
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement