I am toying with the idea of creating a software store in gemini. (pay and download binaries kind of workflow)

My idea is to port what I have here:

https://products.menezesworks.com/

to a text based experience. I think it is possible.

I believe it would be the first of its kind as well.

Poll Results

1. do it

███████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 29%

2. don't do it

███████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 29%

3. show results

██████████▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 43%

49 votes were cast.

#gemini 🗳️ #software #tech #web

🚀 LucasMW

Aug 27 · 4 months ago

40 Comments ↓

🐐 drh3xx · Aug 27 at 19:41:

I thought gemini would make a traditional (https/api) payment workflow quite clunky? Are you planning on taking payments out of band? Like... user fills a server side basket (tied to user cert) should be easy enough with Gemini UI and CGI backend, user goes to cash out and a transaction code is generated, shown to user and associated with the basket. Payment is then made out of band using transaction code as payment ref. Server side system uses open banking or other payment processor API and updates db when a received payments ref is matched which would then enable a download link on Gemini UI? Hope that makes sense. I imagine that would give the best user experience on Gemini.

🚀 stack · Aug 27 at 21:20:

My problem with this and all software stores: software generally sucks, and I can't imagine paying to try an app only to find out that hate using it. And there is a ton of free stuff which is no worse.

🛰️ ASCIInaut · Aug 28 at 04:44:

I agree, that I most likely wouldn't buy until I really know I need/want it. My focys was more to unlock the "First gemini shop" achievement 😁

🚀 LucasMW [OP] · Aug 28 at 07:18:

Tie to the user cert seems like a very nice idea. I think it can work like that.

🚀 LucasMW [OP] · Aug 28 at 07:29:

@stack Yeah. I kind of expected this reaction. I don't think many here even like buying or selling stuff.

However, as @ASCIInaut said, the goal is the achievement. And to test if the protocol can handle this usecase as well

🚀 mbays · Aug 28 at 11:27:

Do it, if you want to. I'm not sure it should exist, but I'm interested to see how it could.

🚀 stack · Aug 28 at 15:01:

I don't actually mind paying. It's just that I've paid enough for garbage to not want to do that anymore! And things I use daily are gratis anyway.

🪐 univeige · Aug 28 at 21:03:

Wouldn't it make more sense to just make a download page and ask for payments inside your software (ideally after users had time to test it or using an in-app donation/upgrade button)?

🚀 jsreed5 · Aug 29 at 02:44:

A few years back, Simon Volpert released a proof of concept CGI that placed a generic URL behind a paywall. It sounds like you want to make a similar tool with the specific use case of putting software download links behind such a wall. His program used cryptocurrency for the transaction (specifically Bitcoin Cash), but I imagine with some tweaking, a validation token fron any kind of payment processor would work.

— simonvolpert.com/gmipay/

I think if you want to do it, you should do it. Viable examples of commerce, which is not a bad thing in my book, are nonexistent in Gemini. I'd like to see people play with that concept more.

🦂 zzo38 · Aug 29 at 03:06:

I had the idea to make a "computer payment file" (which would be DER format), with a order division and payment division, and possible encryption and digital signatures (and, if necessary, stuff to avoid replay attacks). It would be independent of the protocol and also independent of the payment type (credit cards, store credit, area code 900, etc), and it would include the amount of the payment, so that you cannot be charged a different amount than you expected. This does not require everyone to use this, or to be the only way to make a payment, but provides it benefits when used if available.

(The order division is only for whoever is selling it; the payment division will have parts used by the seller, parts used by the payment processor, and parts used by both. For some payment methods, the payment processor therefore must support the payment division format (of which the parts specific to the payment processor might be encrypted and/or signed by the buyer).) (Also, using WWW for payment would just result in some (although not all) of the same problems of WWW, even if you otherwise use Gemini. However, if it is only one possible kind of payment (e.g. if prepaid in cash somewhere ahead of time is also acceptable), then it might work.)

🚀 stack · Aug 29 at 11:55:

What would anyone pay for here? In what currency?

🚀 LucasMW [OP] · Aug 29 at 14:22:

@univeige this has disadvantages if you want to commit to have binaries without DRM and data collection. It is also a problem if you want to sell multiple software (seem as completed and finished) instead of one product with a subscription license.

🚀 LucasMW [OP] · Aug 29 at 14:26:

@stack hopefully my stuff.

If we link to a payment provider page via http, could be anything. If we don't want to link, we can support displaying a cryptocurrency address and a link for downloading the binary and only releasing the download once the payment is finished and only to the certificate associated with the order. By following this convention, we could support theoretically any payment method. It all dependes on what we can run and what users demand.

🚀 LucasMW [OP] · Aug 29 at 14:29:

@zzo38 Not sure I understand your proposal, but seems interesting and innovative. If you have a link with some implementation or draft, I would like to see it.

🚀 stack · Aug 29 at 14:46:

I think a lot of liberal minds are decidedly anti-crypto. Central banks are after all a Marxist construct.

🚀 LucasMW [OP] · Aug 29 at 15:00:

@stack what?

⛄️ gim · Aug 29 at 15:53:

FTFY: anti-gambling.

🪐 univeige · Aug 29 at 16:48:

Why do you need DRM for that? Just add a popup that asks how your user wants to pay and a button that opens a link to the selected payment processor or link to your capsule to continue from there - that's basically the same thing with download and payment in reversed order

(also it reduces the risk of refunds since people can test it and don't find out later that they don't like it or they can't use it because of incompatibility)

🚀 LucasMW [OP] · Aug 29 at 17:00:

@univeige So you have a trial binary and a payed binary and the trial binary leads to the buy page where you can buy and download the complete binary?

I mean, that could work without the trial binary don't collecting user data and it is an interesting approach. However, it does seem like the store with extra steps:

Maintaining multiple binaries and multiple storefront for each products, instead of a store with all binaries.

I will think about it.

🪐 univeige · Aug 29 at 17:49:

or a single binary that switches from trial mode to paid mode after the user enters an unlock code you could provide after paying (or better: a link that redirects to your software and unlocks it automatically)

🚀 RubyMaelstrom · Aug 30 at 07:00:

I think that the more we experiment with different types of content on Gemini, the better! I don't think I would get a lot of use out of commercial sites like this on Gemini, but who's to say that nobody would? If you can set it up in such a way that it's not a major effort for you to maintian, then what does it hurt?

🎮 jprjr · Aug 30 at 11:00:

Back in my day we had a term for trial binaries that you could unlock - "shareware."

Not a new concept. It'd be fun to see it come back into fashion. You don't really need to track a lot of stuff, just need a way to get somebody an activation code - either via email, or their SSL client certificate, or whatever.

Your audience will be very small though. A lot of people have accepted the idea of never owning anything and instead just rent software forever.

🚀 LucasMW [OP] · Aug 30 at 12:45:

@univeige "single binary that switches from trial mode to paid mode " after the user inputs a code or visits a page is a DRM system. You can also call it a software license system.

It depends very well on implementation if the system collects user data or not, but is hard to design one which doesn't collect any data and still protects from piracy.

I once designed an OFFLINE software license system, which could unlock the binary with the right code without ever connecting to the internet, and would work forever in theory: great for software preservation.

(The system would still try to send an alert to the server if it thought it was being tampered with, though)

🚀 LucasMW [OP] · Aug 30 at 12:50:

@jprjr I don't really care for a small audience, though. It should be easier to please a few than a lot of people. I have some concerns with the shareware model but it might be an idea worth exploring.

The point is how you do ensure the activation code

1) isn't being abused. (100s of people with the same code, for example)

2) works forever (perpetual license) and is great for software preservation.

The design of a good DRM system which is consumer friendly is no easy task.

🚀 stack · Aug 30 at 13:06:

These days of Open Source I cannot imagine running a binary that does god knows what. Except when I use my phone to do banking.

🚀 LucasMW [OP] · Aug 30 at 13:09:

@stack I offer a" buy the source snapshot and instructions to compile yourself " package for some of my software. No one ever bought these packages, though.

🚀 stack · Aug 30 at 13:13:

I get what you are saying. But, I would try _all_ the free opensource packages, before bothering to buy source.

I rarely look at source, but knowing it's there and maybe someone else has reviewed it gives me confidence. Also, compiling it myself makes me feel like you are less likely to try to sneak something in in plain sight.

Not having a financial motive means to me that you actually do this for joy and pride, and maybe trying to help others and share your knowlege, and are not trying to make a fast buck.

🚀 LucasMW [OP] · Aug 30 at 13:24:

I understand, but disagree. My policy is that I don't sell my work and craft for free. And I pay for the work and craft of the people who did what I use.

I'm a fan of source available movement, but not much of the open source movement, especially the ones which demand that everything must be open source and open contribution.

You can say you don't like my work and this is fine, but I will not open source all the things. Specially now that open source kind of means publishing to Microsoft Servers so they copilot and profit. That's a big no.

🚀 stack · Aug 30 at 13:32:

I totally get it, and it is entirely your choice.

I am on the other side. I love coding and sharing my work with my fellow humans. I do not want to make it transactional, have deadlines and contracts to deal with, track users, send invoices, or otherwise pollute my pleasurable activity. I've fixed many bugs, built many libraries, and hopefully made a tiny difference. It is my privilege.

I believe in freedom, so GPL makes no sense to me. I use the BSD license, as a small protection from predators (and for places where public domain does not exist).

AI or anyone else copying or otherwise using my code is not my problem.

Not monetizing things gives you amazing freedom to not worry about most things monetizing forces you to worry about.

I don't mind paying for software I like, but I find very few things out there that I would pay for. In fact most of the time I feel I should be paid for the pain and suffering of using bad code.

With all the options out there, written by people who are solving problems for the joy of it and sharing, I doubt I would ever try code from someone just trying to make a buck.

🪐 univeige · Aug 30 at 15:33:

Oh really? I wasn't aware that already counts as a DRM :o It didn't feel more restrictive than what you already had or entering a password to access an account on a paid service

But since you are so afraid of someone pirating your paid binaries: what is preventing someone from buying your software and then reselling it? That's just copy-paste, no? My suggestion would still require an unlock code

🐙 norayr · Aug 31 at 12:54:

i don't see myself buying and running proprietary programs, but i think selling drm free epubs and drm free artworks, be those image or audio files, can benefit creators.

🚀 LucasMW [OP] · Sep 01 at 15:36:

@univeige I mean, currently the binaries have no DRM or any protection whatsoever.

There is nothing technical preventing you to upload them to a piracy site as is. The only protection is the store itself.

Having to pay adds enough friction to drive away most cheap pirates.

Note that there is no login accounts as well: None of the binaries require an account. They just run normally.

Not even the store, requires you to create an account!

It just need san email o send the order permalinks, In the future, I plan to add other options.

Your idea is interesting, but it does require changing every binary, and they were made at different years with several different technologies.

🚀 LucasMW [OP] · Sep 01 at 15:41:

@norayr the way it works right now on http and how I plan it to work on gemini would definitily work for any kind of digital file on sale. So DRM free images, audio, books, (and even drm free executables, as ir does now) would all work normally.

🚀 LucasMW [OP] · Sep 01 at 15:55:

@stack " I doubt I would ever try code from someone just trying to make a buck." totally your right.

For once I will try to make money with software I do in my spare time. I would prefer to live off an honest business with my users than to be an employee for the rest of my life. So I really want to make this work right someday. Small businesses over monopolies every day!

It is not like I think that every program I do must be payed and I do release binaries for free every now and then.

I did release a lot of code in open source, specially in my early carreer, but all my motivation for it ceased.

From the burnout and helping monopolies, I would rather release free exes than free code.

🚀 stack · Sep 01 at 16:42:

@LucasMW: I did not mean to offend. I speak from personal experience dealing with apps that people slap together and throw into stores. I am sure you are not a part of that. I am also extremely fortunate -- most of my life I had to scramble to survive. However, at least for the next few years, I have the privilege of sharing freely.

🐙 Bobsey · Sep 01 at 23:47:

I can totally see something like Elementary Appcenter (offering FLO software with pay-what-you-can/want or maybe even normal pricing) becoming popular but I can't see that for a proprietary app store. People in geminispace have much more of a community-focused mentality (that does not mean you shouldn't start a proprietary app store if you want to, I just don't feel it fits the preferences people have over here)

🚀 LucasMW [OP] · Sep 02 at 09:24:

@Bobsey Does elementary appcenter offer pay what you want? I didn't know . This is interesting!

I know, this is why I included the poll, so I could measure the sentiment.

What do you mean by FLO or normal pricing?

🐙 Bobsey · Sep 02 at 22:27:

Yep they do. Most apps in the AppCenter are part of the Flathub or Ubuntu repos and not monetized but apps submitted to Elementary (that meet the requirements) can be monetized. Elementary takes a 30 % cut (or 50 cents for low prices)

— Here's the link to the documentation about monetization

FLO software stands for free/libre/open (source) software (FLO is basically the adjective to FLOSS which is more commonly used)

and by normal pricing I meant fixed pricing i.e. if you say it costs $5 it costs $5 and you can't pay more or less than $5 as opposed to pay-what-you-can/want pricing where you can select or enter a price that is lower or even higher than those (suggested) $5\

🚀 clseibold [🛂] · Sep 09 at 09:16:

It won't just work for paywalled content, it would also allow donations to software, or even shareware programs, etc. Expanding it beyond programs is cool too. My only concern is if you plan on using stripe, which probably requires a redirect to their stripe page, or if you'll store credit card info in your own DB (which I would not prefer, myself).

🚀 LucasMW [OP] · Sep 10 at 07:57:

@clseibold . I've implemented stripe in the web version but the idea was always to support multiple payment options and give the user the ability of doing payments with privacy in mind.

Currently, the web version doesn't even require a login, but still uses stripe and requires the email to send a download link.

I think an option is supporting some cryptocurrency payments will work as an alternative to give credit card info to stripe but I would still require an email to send keys and download links. (Or a store account...)