A new funding model for open source software - <AUTHOR> https://vriad.com/essays/a-modest-proposal-for-oss-sustainability <comment><USER3> I expected Youtube Red to work like this. Each person has its own pool. Channels should have been weighed by watch time with a minimum weight so that small channels get something as well. If I watch one channel then that channel should get the whole $10 (minus youtube cut).

Instead we got a stupid global pool based on global popularity that primarily benefits PewDiePie even if I don't watch him. The compensation was barely enough to cover the lost ad revenue so it failed to actually provide a viable funding alternative for channels that aren't getting millions of views.

I hope the same thing doesn't happen with this model. If 100 people sign up at $10/month to only support CatacylsmDDA and minetest then these two projects should get $500 each (minus transaction fees). That money should not be diverted to Angular, React, Vue, ... and then when its time for the two mentioned projects they only get a pittance like $5 per month.

<comment><USER4> Doesn't Patreon already solve this problem?

I might have selection bias because I support an OSS dev there but isn't that a pretty efficient way of directly supporting specific projects?

<comment><USER5> Almost, except for the low end. It would be perfect if it grouped donations and charges, and let you allocate any arbitrarily small amount to any creator. As it is, it charges fees per creator you patronize, and limits donation to being at least $1 per creator. I'd put $30/month there easily if I could spread it over 100-200 creators with fees of $0.30 + 2.9% on the $30, but the current $0.10 + 5% on each $1 donation means a lot less of my money is going to the creator (who also gets charged those fees + 5-12% for Patreon services when cashing out) than I think is useful, and that's even after downsizing the pool of creators I'd like to donate to in order to meet the minimum $1/each.

To be fair, in looking this up, I did find it's a lot better than when I cancelled my Patreon account, since at the time they were proposing $0.30 + something% even for $1 donations. But the bundling of donations was my whole point in using them, and when they clearly said they weren't going that way, that was it for me. That's why I like the Brave/flattr/"sponsor pool" approach so much more. It lets me support creators (especially web comics, bloggers, and video creators) in a much more similar scale to the advertising model, which many were on before, and for which I think we need a popular replacement.

<comment><USER6> > As it is, it charges fees per creator you patronize, and limits donation to > being at least $1 per creator. I'd put $30/month there easily if I could > spread it over 100-200 creators with fees of $0.30 + 2.9% on the $30, but > the current $0.10 + 5% on each $1 donation means a lot less of my money is > going to the creator (who also gets charged those fees + 5-12% for Patreon > services when cashing out)

Liberapay lets you donate a minimum of ¢1 ($0.01, and they also support 32 other currencies) a week [https://liberapay.com/about/faq#maximum- amount](https://liberapay.com/about/faq#maximum-amount), and IIUC lets creators choose the cut that goes to them

</comment></comment></comment></comment><comment><USER7> I think that this essay is fundamentally brilliant, but doesn't come out and yell the self-evident truth: the ONLY way this ever takes off is if Github does it.

And man, do I ever hope that they do.

There's no other entity in the ecosystem that even approaches the role Github plays, with all due respect to Gitlab and the rest of the also-rans. It'd be wonderful if they did the same thing, but in the end, they are going to be the contrarian 2%.

It's important to remember that GH sponsors isn't even out of beta, yet - <USER2> still have to apply and make sure that all of your tax docs are in order.

One small proposal I'd make is that I suggest Sponsors and Pool could exist happily in parallel. I believe that there's a meaningful difference between being the patron of a developer and feeling like you're backing a creator with feelings and a story and a family... and wanting to be a good citizen that has an approved list of projects that I benefit from and want to support.

I can sponsor Matz, get his updates and feel good about knowing I am counted as a supporter AND set aside $$$ per month to contribute to all of the tools I use in my projects simply because it's the right thing to do and I want those projects to exist for the long term. They are completely different initiatives. Patreon vs Humble Bundle, if you will.

Perhaps most critically, Github could keep absorbing the cost of processing payments to sponsored developers but also announce that they plan to hold back 3% of your monthly pool amount to cover CC processing fees. I think most people would be more than fine with this.

But if Github isn't on board, this is all just speculative fiction. Please, if you work at Github, make this happen.

<comment><USER8> So we delegate complete control over open source financing channel to Microsoft, because it's most conveniant option? Sounds a bit insane.

I do use both GitHub and its Sponsors feature, but I'm still hoping for open source community to come to consensus to use a service from non-profit organization like Mozilla or EFF.

<comment><USER9> This wouldn't prevent you sending cash to the developer in an envelope, just like Github existing doesn't prevent you hosting your project elsewhere

<comment><USER8> To send someone money I'd have to know their address (not viable). If they only accept money through GitHub sponsorship, then I'm prevented from donating in any other way.

Which option do we (content creators) endorse? We definitely need to transition to better funding model. Seeking out donations and sponsorships is frustrating and that time could be better spent. GitHub Sponsors managed to solve most problems on technical level, but I'd like to see other options.

<comment><USER10> > To send someone money I'd have to know their address

You could just ask them? I recently donated to an OSS project for which the maintainer didn't publish any means of accepting donations - I simply asked and he sent his PayPal address.

Another option would be for maintainers to publish a Bitcoin address in their profile - but again, if not already present, just ask.

<comment><USER11> They're talking about physical address, as that's what the parent suggested.

<comment><USER10> Yes, I got that; I was suggesting you can just ask the author for their address or other means of payment, but in addition made a suggestion of authors publishing Bitcoin address (in reality many would likely prefer fiat currency though).

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Two issues here:

Models like these existed. Flattr and Liberapay. The latter had to switch away from the pooling model because turns out when you do the pooling you essentially become a bank and that's difficult to do legally.

Those models only work if users actually visit your website or your Github. I'm developing an app targeted at end users and I bet 90% of them have never been on Github or even know what that is.

<comment><USER13> I totally take your second point. But for the niche of apps that _is_ developed for tech folks (think sth like ripgrep) this seems pretty viable.

For user-facing apps, it should always be the platform(s) distributing it that should have a pool mechanism. So google for android apps, Apple for iOS. Yeah, I know, that'll be a cold day in hell...

PC software is a tough one there since there's no _one_ app store. Which is the PC platform's strength, but yeah, that makes a pool difficult. As you said, Liberapay tried something like this. Would be cool if something like this could become big enough to justify the legal legwork necessary for this.

</comment></comment><comment><USER14> I remember a company doing this some time ago.

You have an account, filled with a monthly recurring amount, what ever amount that is. Then you click these "contribute" buttons, placed by the open source project webmasters in their pages.

Each click of button registers that project to your account and the site distributes your monthly amount among those registered projects.

Not able to recollect the name of the company though. Spreadrr, or Poolr or something.

Edit: Another comment got it. It's Flattr

</comment><comment><AUTHOR> OP here. I'd love to see something like this exist. Let me know if it does already, or if someone is trying, and I'll link it below.

EDIT: This model is used by Flattr [0]. Unfortunately Flattr isn't targeted at open-source software; an OSS-specific approach (ideally implemented by a highly visible, established player) is (probably) necessary for something like this to reach its potential.

[0] [https://flattr.com/](https://flattr.com/)

<comment><USER15> What you propose exists. It's [https://flattr.com/](https://flattr.com/)

It hasn't made enough impact over its long history. That's not necessarily because the model doesn't work. However, it does set up a zero-sum game. Each click to another project takes away from the ones you already support. Thus, it won't really change the overall economic situation much.

There are also foundations that sponsor multiple projects. E.g. Apache. There are meta-level projects like Ubuntu. In _principle_ these larger downstream projects should do what's necessary to support their upstream dependencies. That doesn't always happen though.

Tidelift does funding that emphasizes awareness of upstream dependencies and supporting them.

## On microdonations and fees

This is a payment-processor issue. I believe that Stripe and some others have the _capacity_ to process aggregate charges without all separate. So, if in a platform, you donate $10 to 15 different projects and so do many others, they could charge you the _one_ charge of $10 and give the recipients their _single_ payment from everyone. Each donor would get one processing fee, not one for every project they support.

This is _key_. And it cannot be solved at the platform level because holding funds in escrow is only feasible if you are a limited specific set of incorporated projects (that's what Open Collective helps support, they can do this approach with one donation fee for _each_ Collective you donate to, even though the Collective could include a lot of projects. A specific Collective there could _offer_ your system.

In other words: Open Collective could do what you're asking somewhat. You donate to a Collective. They don't just have the money for _any_ of their members, the Collective offers a tool for you to vote on which of the members you want to support.

That's another way to see your proposal: An org that accepts donations and you get to vote on which projects they give grants to.

## On downstream vs upstream funding

Anyway, the bigger problem in free/libre/open funding is that it relies too much on _proprietary_ end-user products that have paywalls or ad-driven business models. If a product is designed to reach all the way to downstream users, everyone _can_ freeride. So, freerider problem, game-theory dilemmas.

You might be interested in the ideas at [https://snowdrift.coop](https://snowdrift.coop) which is aiming to build downstream patronage via _crowdmatching_.

The wiki there also has reviews of the issues:

[https://wiki.snowdrift.coop/about/existing- mechanisms](https://wiki.snowdrift.coop/about/existing-mechanisms) [https://wiki.snowdrift.coop/about/economics](https://wiki.snowdrift.coop/about/economics)

and this is a thorough review of all the existing funding platforms: [https://wiki.snowdrift.coop/market-research/other- crowdfundi...](https://wiki.snowdrift.coop/market-research/other-crowdfunding)

There's a long history of failed efforts, some mentioned at [https://wiki.snowdrift.coop/market- research/history/software](https://wiki.snowdrift.coop/market- research/history/software)

Cheers

<comment><USER16> One thing that Flattr and many others like them got wrong, in my view, was collecting too little and levying too little from it. Too many schemes were $5/month or $3/month, then collecting 10% or thereabouts. You cannot build a sustainable business with high risk exposure for less than a fraction of cup of coffee per customer per month. But people kept bloody trying.

</comment></comment></comment><comment><USER17> If anyone is interested, I have a simulator for pool-based funding as I'm working on a side project that uses the same approach: [http://syd.jjcm.org/soci/](http://syd.jjcm.org/soci/)

My project is essentially a reddit-esque site that hosts images/blogs/video/audio content. Each vote on a piece of content gives it one share of your funding pool for that month. The pool based approach is definitely the best for simple usability, but there's another aspect to it as well: it means you weigh your vote more. In the case of a social sharing/news site, low-effort content will get upvoted less, as you have to consider that every vote will dilute the pool.

I'm really bought in on this as an overall concept and I think it's something that will be extremely healthy for the web overall. Previously this was a model that was used by Flattr, but they had a major issue that not everyone was on their platform, so often times creators wouldn't get money out of a donation (because they didn't know the donation existed). I definitely agree with the author here that if this were to be done, Github themselves would have to implement it. As soon as a third party who isn't hosting the content implements it, an enormous percentage of creators wont know they have funding waiting for them and things fall apart.

</comment><comment><USER18> Everyone thinks they deserve a dollar and can never imagine that the relative value of their code is effectively zero no matter how much it solves a particular problem.

>Big projects — operating systems, frameworks, CMSs, or fully self-hostable applications — are in a privileged position to extract more value from their users, especially corporate ones

Big projects aren't privileged to extract more value. They're privileged to solve enough of a problem for enough people that the scraps thrown their way amount to a meaningful warchest. Corporate big projects are privileged to extract wealth. That's the part that pays crazy SWE salaries.

<comment><AUTHOR> You seem to be reacting against the term "privileged" in a way I didn't intend. I don't mean to say that they have some unfair advantage. They just have a more foundational role in the tech stack of the products built on top of them, so companies have a bigger incentive to keep the wheels turning.

<comment><USER19> I'd love to learn more specific details about your leveraging strategy. Keep in mind even someone like Torvalds only serves at the pleasure of big corporations. Let's keep gift economies in alignment with public interest folks. It's difficult to imagine a competent developer needing to squeeze people, for cash money to pay rent, considering how much coders get paid.

<comment><USER20> Two-thirds of projects on GitHub have 1-2 maintainers, as of 2015.[1][2] I'm sure many of those people are in other areas or occupations, or in other countries, where these high-paying jobs may not exist. Some people simply don't wish to work at a company, and those folks still may produce value to those other than themselves.

Let's not appeal to productivity too hard; learners and those of lesser coding capability also create value in the form of skills and knowledge.

It's hard to identify and quantify those whose contributions helped most, but I feel all contributions are worthwhile. Not all code may be tip-worthy, but I don't feel chagrin toward those collecting, however they do so.

> Only three projects—less than 3 percent of the study's sample—had more than > 50 contributors.[1]

[1] [https://increment.com/open-source/the-rise-of-few- maintainer...](https://increment.com/open-source/the-rise-of-few-maintainer- projects/)

[2] [https://www.researchgate.net/publication/308894462](https://www.researchgate.net/publication/308894462)

<comment><USER18> > those folks still may produce value to those other than themselves.

They may, but my point here is that the reason a corporate SWE's code is so valuable isn't because of the code itself. It's because of the ecosystem that the SWE and corp are a part of. That ecosystem serves to multiply a meaningless block of code into a couple million dollars that can be split nicely with all the non-coders who made it useful. Without that ecosystem, an open source project can never hope to monetize to the same level. That big open source projects have substantial funding is an effect of being so imminently usable in those million dollar ecosystems that the forgotten scraps of the corporations are enough to sustain them.

<comment><USER20> I generally agree with your interpretation, but I don't see what you're advocating for. What do you think are the flaws/benefits of big open source projects receiving the lion's share of open source donations? What funding model makes sense for those smaller projects? For many groups doing fundraising, the work of doing the fundraising itself is extremely labor and time intensive compared to the actual work the group does. Fundraising costs incentivize projects to become bigger and higher-profile to enhance their fundraising ability, but this increase in size and reach may not be helpful to all projects in all ways equally. More bugs may be squashed from more eyes; more cooks in the kitchen may make for lower quality standards of releases. It's all a double-edged sword. I'm curious about your thoughts on this conundrum.

</comment></comment></comment></comment></comment></comment><comment><USER21> I like the idea but instead of pools going arbitrarily every which way or to the discretion of the donator, it should be automatically applied across that open source project's dependencies as well. If I am open source software A, and I make ample use of open source software B within my project, your pool donation should automatically apply some to B, relative to it's usage in the project.

<comment><AUTHOR> Agreed this would be nice, though this layer of complexity introduces a bigger attack surface for bad actors. They could try to get their modules listed as dependencies of popular projects to piggyback on their downloads. On the flip side there are some low-level tools (say, the `stylis` CSS autoprefixer) that are almost never used in their "raw form" but are the backbone of several massively popular projects. It's a tricky balance.

<comment><USER22> Is this really a concern though? In this situation, adding a dependency to your project means making a decision to divert some of your funding to them as well. It gives an incentive to avoid adding unnecessary dependencies.

<comment><USER23> Workaround: fork all your dependencies with minimal if any changes and add them back to your main project.

This allows you to cut-off the trickle-down funds in bad faith.

<comment><USER24> If you're willing to do the extra maintenance of keeping them up to date (or else on the hook for their issues) ... maybe that's 'ok'?

I don't mean that it's a service worth paying for, just that maybe it doesn't seem like it's worth the extra (presumably minor) cut of initial donation and people wouldn't really do it (more than once / for long / on a big project with significant donations) anyway.

</comment></comment></comment></comment></comment><comment><USER25> It's worth looking at Tidelift ([https://tidelift.com](https://tidelift.com)): they're making the model work with pooled corporate subscriptions that create the right incentives.

<comment><USER26> That actually seems to be working. I maintain ruby grape, a mid sized project. We get $144/month from Tidelift. As more companies signup for corporate sponsorship the $ amount increases. It's a pool.

</comment></comment><comment><USER27> I guess I'm old. GOML!

This doesn't sound like a way for open source projects to get money to me. It sounds like a way to get thousands and thousands of bad developers to spam me to support their tiny open source no effort project. For them to fork someone else's project and ask for money for their fork. etc...

Note, a similar thing already happens on patreon where people ask for support for their piracy activities. They run a blogspot blog with pirated movies/anime/porn and expect you to sign up to support them on patreon for helping you pirate stuff.

Basically the easier you make it collect money from random people the stronger the incentive is for bad actors to try to get some of it. I don't have a solution but in my defense I do sponsor 3 open source projects at $!00 a month each. But I'm sure my money is going to people/teams who are really dedicated to their project and not just one hoping for some coffee money for their tiny thing.

</comment><comment><USER6> > That's because there's currently no way to make a donation to the abstract > concept of "open source software"

This isn't absolutely true, there are the FSF and the Software Freedom Conservancy, who fund many medium-ish projects, including ones that include some small utilities.

<comment><USER28> And also fund a lot of evangelists that don't code at all but spend their time playing open source cops on mailing lists, forums and tech conventions.

<comment><USER6> (IOW, their idea of supporting the _abstract idea_ of open source software. Although I'm not sure who you're talking about: Stallman I guess fits the description now but wrote his fair share of code in his day.)

</comment></comment></comment><comment><USER29> What would be fantastic is if this service scaled contributions across projects whose code _you are actually using_ in your repos.

Minor nitpick: I don't think a badge is really considered virtue signaling because you've already put your wallet where your mouth is.

<comment><AUTHOR> I like that idea too. Though it definitely may lead to some troubling scenarios where bad actors try to get their modules listed as dependencies of popular projects to piggyback on their downloads. You could alleviate this by not funding dependencies of dependencies but there are some low-level tools (say, CSS autoprefixers) that are rarely used in their "raw form". It's tricky.

<comment><USER29> I see this being a major issue in the NPM ecosystem, lol. One thing is you could make transitive dependencies strictly opt-in, or have a decay function.

<comment><USER30> Or each package's maintainer can set a proportion for each of its dependencies, so that every time a donation is received, a certain amount of that donation is automatically transferred to those dependencies according to the proportion set by the maintainer. The donation sent to those dependencies is then propagated to their dependencies automatically according to ratios set by the maintainers of those dependencies.

</comment></comment></comment></comment><comment><USER31> The problem here is marketing.....

"sponsor pools" "sponsorships" and "donations" are all words that imply optional, not required requests for money as a favor. i.e. begging.

The way to monetise open source is for payments to be required in some way. i.e. provide a core feature set that is valuable on its own and monetise by providing additional valuable features under a commercial license.

<comment><USER32> You're missing the point here. The point is not to find ways to sell/rent out software (these already exist) but to monetize open source projects in a non- forced, non-compulsory way.

So, instead of selling your songs on a CD for a fixed price, that approach would be more like busking or having your music streamed on music services (Spotify, Apple Music, YouTube Music, etc.). It's unlike begging in that you do provide valuable goods with the expectation that the community is paying, and that providing better value (more catchy songs) will get you more revenue.

Non-required payments already work ok in a number of shapes for music and video creators, and we've seen some success in terms of feature bounties and direct sponsorship in software.

Given that enough people are willing to support the software they use, there are two things missing in the equation

\- an entity collecting, pooling, and distributing money in a transparent (enough) fashion - the prime candidate would be GitHub because it already has sponsorships and the necessary bits of information

\- an attribution model; and this is a bit harder for software than for music or videos where you can simply use watchtime as an attribution metric. Software has a more complex dependency graph, and arguably open source software is the silver bullet that allows us to stand on the shoulders of a herd of giants instead of implementing our bloom filters, routers etc. ourselves. This is a hard problem, and arguably one in danger of not being solved "correctly" in that an entity collecting money could do something intransparent and unfair and people might still sign up because it's the only game in town and they want the warm fuzzy feels and the convenience of not having to write 0.50$ checks to a gazillion small-project maintainers.

</comment></comment><comment><USER33> This is amazing and I have a gut feeling that it will revolutionize OSS.

I usually want to give say $30/month to OSS (personal use) and as a professional, I would have the authority to donate $300/month.

This would be great to not worry about individual donations, and just based on one-click or even just divide up the funds equally amongst all of my starred projects.

</comment><comment><USER34> I recommend taking a look at Gitcoin [0] and quadratic funding [1].

[0] [https://gitcoin.co/](https://gitcoin.co/)

[1] [https://vitalik.ca/general/2019/12/07/quadratic.html](https://vitalik.ca/general/2019/12/07/quadratic.html)

</comment><comment><USER35> _The root of the problem is that open-source donations are made on a per- project basis. To support a project via GitHub Sponsors or OpenCollective, you must create hyet another auto-renewing monthly subscription for each project you want to support._

I don't think the author's description of GitHub Sponsors is exactly correct. Technically, the sponsorship is at the user/organization level, so if you make a donation it goes to the organization/user, which may have MULTIPLE projects going on. This is the way I have set it up for our company Plyint ([https://github.com/sponsors/plyint](https://github.com/sponsors/plyint)).

Although I would very much like GitHub to implement a pool of organizations/users, which is maybe what the author meant?

<comment><AUTHOR> Good point, that characterization isn't exactly accurate. Though the first- order point is that you have to go through a separate "checkout process" each time you want to sponsor a new thing.

I actually think it's important that the pools themselves contain _projects_ not _users /organizations_. There are definitely complications I hadn't considered if multiple entities/organizations are listed as maintainers of a particular project. Presumably the set of maintainers would have a way to "split" the incoming donations among themselves as they see fit.

[edit] I added a footnote to address this.

</comment></comment><comment><USER36> The problem with OSS funding is that it becomes a popularity contest. There need to be a model that is not zero sum.

<comment><USER37> I think this is probably inherent to donations, at least if you're targeting individuals. My priorities can be shifted with respect to what I might donate to, but I'm not likely to substantially increase the total amount I donate in a given year.

</comment></comment><comment><USER38> > The marginal cost — both psychological and financial — of supporting > additional projects would drop to zero

Great idea for redistributing existing funds and preventing winner take all, but the bigger hurdle is increasing the overall funds (eg, getting more people to give a shit in the first place)

I have a lot of experience with non profits and independent projects, and funding success is partly based on merit, but more frequently on how clear, consistent and obvious calls to action for funding are.

At some point it stops being a problem you can fix with software. It's not like there's a mountain of funding that just needs to be unlocked. It's more about growing the funding in the first place, which when successfully done (in my experience) starts to look a lot like aggressive marketing, advertising, and tweaking of missions to appeal to whatever is hot/fundable at the time, similar to the VC industry. True story, and kind of an anecdote that money turns everything to shit eventually.

</comment><comment><USER16> I termed this model "microsubscriptions" when I was pursuing it in the context of website funding.

There are difficulties.

 _Gaming the system_

Folks will absolutely distort their software, buy fake github stars, spam out bazillions of typosquatting packages etc. We know this because there is already a weak financial incentive to subvert: supply chain attacks for cryptominers. Direct cash will be a much stronger incentive for fuckery.

 _Banking_

In general, financial institutions don't like services that aggregate and transmit funds. They attract extensive regulatory burden and more importantly, they attract fraud and chargebacks.

Chargebacks and fraud are expensive to deal with, banks hate it, so they generally tell you to just sod off entirely.

 _Regulation_

You are on the hook too. Anti money laundering laws are complex and can come with criminal charges for failures. Taxes are complicated and you need to keep correct books. Got it wrong? Too bad, you owe the taxman cash you don't have.

 _Credit card money laundering in general_

This is where someone with a stolen card uses your service to launder money taken from it. They sign up with the card, patronise their own software, then run off with the cash. Later a chargeback arrives which is levied against _you_ , not the attacker.

The easiest defense is to limit the subscription amount, so that an attacker with a stolen card can't benefit much. But they can still use you to test that the card is active. A second defense is to hold the funds for a period of time, so that you can pay chargebacks. Even so, you will be looked at poorly by any banks or processor companies if your chargebacks pile up, regardless of whether you could cover them or not.

 _Trusts_

This one is the biggest mistake I see, and I see it again and again.

If you receive money from person A so that you can pay it to person B on A's behalf, you are a trustee. You generally don't need a document to become a trustee and you don't even need to _intend_ to be a trustee. Trusteeship arises from the facts.

What does trusteeship entail? Fiduciary duty. That is a high bar and you almost certainly don't meet it.

Mingling funds from multiple donors without incredibly scrupulous accounting? Problematic. Mingling donor funds with your own funds? You're in deep shit.

Further: trusts have purposes, which the trustee has to abide by. These again can arise from the mere facts. If you said you would take funds from A to pay to B, that's _all_ you can do with it. Can't find B? Stiff shit. B doesn't want the funds? Stiff shit again. You now have money that is like radioactive waste: it's dangerous, you are responsible for it and it won't go away.

\----

In _general_ I like microsubscriptions as a model for _some_ things. I spent a lot of time, emotion and treasure on doing it myself. But it is harder than it looks.

<comment><USER39> Yes, _if you take credit cards,_ you'll have loads of issues. But for example supporting the eurozone (most of the EU) is both easier and better accomplished by only taking SEPA push transfers. While there is fraud risk, it's significantly less and shouldn't cost you as the processor. Worst case, I think, it'd be the cents you have to pay to send the money back.

And regarding the issue with being a trust: sure that's a thing, but contract terms should be able to fix the problem by making you send it back (minus nominal fees?) if the designated recipient's registered IBAN refuses your payout. And just don't offer to collect money for anyone who didn't register.

<comment><USER16> My point on trusts is that very few people consider them and wind up in the default arrangements. Which are less than ideal.

But setting up an explicit trust arrangement needs to be done with _great_ care as well, especially since trust laws vary from place to place.

</comment></comment></comment><comment><USER40> Change "open source projet" with "online newspaper" and everything applies.

I want to be able to give 20€/month to whatever news article I read with just one click. Instead of liking something, I want to be able to pay quality writings.

The browser is the perfect way to do this. I don't understand why Mozilla did not implement that.

Brave is close, but Brave wants us to view ads. I don't want to pay for a newspaper article talking about climate change through watching their ad for the latest diesel SUV. I want to pay them, but without filling my bank details for a monthly payment.

In France, the largest national newspaper lemonde.fr lets you subscribe in 1 click for 1€, but then you have to send them an tracked postal letter costing 7€ to cancel your subscription.

</comment><comment><USER41> I would love something like this + automatically adding all the NPM packages I use to the pool (or similar for Cargo, PIP etc). So that I don't have to manually find the packages, and can easily contribute to everyone who's code I'm using.

<comment><USER10> What about transitive packages? With NPM in particular, I have a feeling that donations would be diluted to the point of being meaningless.

</comment></comment><comment><USER42> This addresses the lack of convenience in existing tooling, but not the core of the problem of FOSS sustainability.

I believe to solve the problem two things must happen:

* Users evaluate how exactly much they benefit from particular software and services, and how much they'd lose in utility if their option of choice disappeared.

* Maintainers find out what matters to real users and offer them good bargains to fund their development roadmap and maintenance service level.

See [https://archives.gentoo.org/gentoo- project/message/3735cd917...](https://archives.gentoo.org/gentoo- project/message/3735cd91750a1214443a283546391b72)

</comment><comment><USER43> Concept is very similar to Coil.com s "donation" for web content. But Coil actually does "pay by usage" and should therefore be more fair at distributing the money. Its hard to define usage for an open source project.

</comment><comment><USER44> It could work for a select group. The reason why other donation models are successful is because they offer something (insider access/game earlier) that makes you feel special without the badge.

<comment><AUTHOR> This is something else I've been thinking about! Caleb Porzio's post from last month describes a Patreon-style "insider access" service built on top of GitHub Sponsors. I think it's a phenomenal idea. Ideally GitHub would also implement something like that "natively" as part of the Sponsors program.

</comment></comment><comment><USER45> I am glad people are thinking more about Open Source software and how to fund them. I think among other problems, Open Source have 2 main root issues when it comes to funding.

1\. Silver bullet is a myth. The OSS users are forced to use one medium for funding the software. Maybe Patreon, Github Sponsors, Paypal, Librepay and more not than one or all of them in most cases. Using more funding method have their own challenges, but it depending on the prject should definitely be more than one.

I take the inspiration from POSSE concept from Indieweb ([https://indieweb.org/POSSE](https://indieweb.org/POSSE)). It talks about publishing your content (blogs etc) once and distributing through various channels like FB, Twitter, HN etc instead of forcing people to your website which is just one medium. We should give the same level or freedom and choices to people who want to donate to your OSS project so that they will use a method which they are already using. Reducing the friction. And Flattr or the new proposed will only be one of the ways or should be one of the ways.

2\. A lot of people don't know the difference between FOSS/FLOSS and OSS. Especially people after the Millennials (i think). To them, it is a FREE material. It is not! We should make awareness about what free software movement was.

Before you jump the gun here, please read the GNU page about selling free software - [https://www.gnu.org/philosophy/selling.html](https://www.gnu.org/philosophy/selling.html).

Open Source forever have been about "free as in freedom" not about "free as in beer". The whole reason for it to start was because the software was not allowed to be redistributed and modified among other things. There definitely was freeware and other software models which were FREE even before Open Source was coined. Stop using FOSS/FLOSS everywhere if you don't mean it and make awareness about the differences about FOSS/FLOSS and OSS.

The effort and time of the maintainer should be rewarded with whatever he/she/they want, either recognition or money. We should make it a new normal. Making money from OSS should be OK. Being rich (if you can that is :D )from OSS should be OK.

Hope funding in OSS gets more momentum!

</comment><comment><USER46> I'm going to offer users something if they sponsor the project by looking in the GraphQL data. Today there are no simple ways of just asking github: "for how much $ does user X sponsor user Y" and much less per project!

I think that is the only way to get open source revenue! Unfortunately that means you either need a service or some closed source part that guarantees that revenue.

</comment><comment><USER47> What happens when an open source-project gets funding? How is the money distributed inside the project, among different contributors?

<comment><AUTHOR> I added a footnote to address this. I admit I hadn't thought this bit out fully.

Basically there needs to be a mechanism by which the set of maintainers divvy up the money.

A pattern I expect will arise (actually it probably already exists): there can be different "contribution tiers", a fixed percentage of the proceeds go to each tier, for each tier the allocated percentage is be distributed evenly.

</comment></comment><comment><USER48> Sponsor pools sounds a bit like snowdrift:

[https://snowdrift.coop/](https://snowdrift.coop/)

</comment><comment><USER49> An odd side effect of trying to monetise an open source project is another repo popping up just outright copying it with no attribution. Amazingly, some people expect that if you make an open source project on GitHub therefore every single feature related to that project should also be open sourced. It's very disheartening.

</comment><comment><USER50> I think the open source model is fundamentally flawed and enables the big corporations to profit at the cost of the little people. The large corporations benefit disproportionately from open source as opposed to the maintainers. I thing what would be useful would be a programmer's "guild".

* There is a yearly due - say $100/year

* When you write software, you assign a license to anyone in the programmer's guild to be able to use that software. The requirement is that you have to contribute back changes.

* Only people in the programmer's guild can use that code.

* Anyone can join the programmer's guild, as long as they pay.

* A guild member can allocate up to half their year due to support a guild open source project or projects.

* You use the annual dues, to support widely used infrastructure that a lot of programmers are using. A big example would be NNTP

This has number of very nice benefits. First of all, it ensures a massive pool of money to support worthwhile open source projects, that everybody is using (think NNTP, or projects like that). With that pool of money, we could add benefits for guild members such as employment contract legal review, immigration assistance, etc. If you increased the annual dues, you would be able to do more, but at the cost of excluding more people.

<comment><USER51> Everything is fundamentally flawed so it doesn't say much to state it.

But personally I think the open source model has been wildly successful.

Before open source you needed to get a job working for a company to see any really cool code.

Now you can see and play with a world class version of almost anything: a world class OS, a world class 3D rendering engine, a world class video editor... it's awesome.

</comment></comment><comment><USER52> Yet another model that has probably been never used on high scale: letting people sponsor tickets (GitHub issues). The donation would go to the contributor who closes the ticket to the satisfaction of the main contributors. The amount, of course, will be decided by how a ticket is perceived as important.

<comment><USER24> What about the satisfaction of the person who raised the issue?

<comment><USER52> Of course, I should've added that but that's not the main point.

</comment></comment></comment><comment><USER53> The entities that most benefit monetarily from OpenSource are companies that sell products and services based on them. Why would they contribute to this? It's an added expense they don't have to pay. In fact a major tenant of OpenSource is that you can choose to make money or give. it away for free, but you generally have to release the source code, which is what the companies want, so again, why would they pay for it? To make a more sustainable ecosystem? Hahaha.

As for individuals funding this, Open Source developers are not cheap, to make it worthwhile (e.g. comparable to a part time contracting gig) we're talking a minimum of tens of thousands of dollars per year per developer. We're not going to get anywhere near these numbers with individuals contributing.

I write this as the guy that tried to help the OpenSource world by assigning CVEs for security issues (several thousand...), I'd have had to charge 1-200$ per CVE to make a living at this while I was doing it. That's not going to be sustained by personal donations. And even though a CVE will easily save companies a few tens to hundreds of dollars (time spent tracking all these issues when they don't have CVEs...) there's no way I'm going to get companies to pay me.

The good news is that this doesn't really matter. We've had many decades of OpenSource, there's enough good people working on this because it's their passion/hobby/day job that it's mostly sustainable on average, but specific bits may be sickly, and that's ok.

Some related listening and reading:

Episode 205 – The State of Open Source Security with Alyssa Miller from Snyk [https://opensourcesecurity.io/2020/07/12/episode-205-the- sta...](https://opensourcesecurity.io/2020/07/12/episode-205-the-state-of- open-source-security-with-alyssa-miller-from-snyk/)

Episode 185 – Is it even possible to fix open source security? [https://opensourcesecurity.io/2020/03/02/episode-185-is- it-e...](https://opensourcesecurity.io/2020/03/02/episode-185-is-it-even- possible-to-fix-open-source-security/)

Episode 182 – Does open source owe us anything? [https://opensourcesecurity.io/2020/02/10/episode-182-does- op...](https://opensourcesecurity.io/2020/02/10/episode-182-does-open-source- owe-us-anything/)

</comment><comment><USER54> I like this idea! I had a similar one a while back [https://giuseppegurgone.com/github-sponsors-oss- sustainabili...](https://giuseppegurgone.com/github-sponsors-oss- sustainability/#paid-packages)

</comment><comment><USER55> Another good idea would be for projects to list other projects they depend on, and set aside a certain amount of their GitHub sponsor income to go to those projects. Thus Users -> Projects -> Dependencies flows naturally with the same model.

</comment><comment><USER56> If I may, a totally different way of funding open source projects is possible too, that doesn't rely on charity mechanisms: I will submit it to HN now as a link under the title "A Decentralized Model for Funding Open Source". Look tor it there.

</comment><comment><USER57> Any approach to OSS funding based on donations fundamentally doesn't scale because the economic incentives just aren't there.

Whether you're donating to one person, one project, or a pool of projects, the business model just doesn't work out.

</comment><comment><USER58> Have you checked out flossbank, it feels like an automated version of what you're describing

</comment><comment><USER59> OK my project is open source. I have zero stars, zero downloads, and zero users.

How much do I get paid?

Zero? But I wrote open source code that solves a real problem. It's open source. I should deserve to get paid. Because open source software.

I don't think your funding model works.

<comment><AUTHOR> You don't get paid unless someone adds you to their sponsor pool. If no one knows about your thing, you don't get paid. Am I misunderstanding your question?

<comment><USER60> > If no one knows about your thing

And if nobody knows that software exists, then it's not helping anybody. My phrasing sounds cruel, but I can't think of a better way to express it

</comment></comment></comment><comment><USER61> This sounds great!

That being said, I wonder how well this would work out for smaller projects. Spotify uses a very similar model, and from what I hear, lesser known artists make very little money on their platform.

<comment><USER62> The Spotify model is similar.

The key difference is that while users pay into the pool, they don't determine determine how the pool, or their portion of the pool, is distributed. Plays determine distribution, but not a single users plays, all plays.

If all github users donations entered a single pool, and that pool was distributed to projects based on the number of clones each repo received, that would be similar to the spotify model.

But I don't believe that's being proposed.

Rather, a user sets up a donation amount, which is then distributed to the projects they include in their "sponsor pool".

</comment></comment><comment><USER34> If you're willing to move away from your proposed GitHub route, you could try implementing it on something like Gitcoin. The "wallet" you mentioned in the article could be a smart-contract that by the end of each month (or any desired period) would automatically make the donations directly to the crypto wallets of the projects that you chose to include in your sponsor pool.

That way, you jump over some of the implementational and regulatory hurdles. There would be no intermediary, such as GitHub, paying for the transaction fees. The transaction fees necessary for using the smart-contract on a given blockchain would be paid directly by the person making the donations.

<comment><USER63> > There would be no intermediary, such as GitHub, paying for the transaction > fees

It sounds like there would also be no intermediary handling taxes. Each person receiving donations would be liable for dealing with taxes themselves, which could involve having to deal with the tax systems in every country/state in which one of their donors resides.

Unless your plan is to just ignore taxes and hope any tax authority that might want to come after you won't be able to obtain jurisdiction, you really want anything that involves accepting money from all over the world to go through some intermediary that operates in such a way as that intermediary is the merchant of record for the transaction.

There also might be issues with sanctions. If your country has sanctions against country X and you accept donations from someone in country X that might violate your country's laws. An intermediary can handle keeping track of that, making sure you only get donations from places that your country allows.

This could be even worse than the tax issues--at least with the tax issues it is _other_ countries that might be trying to sue and/or prosecute you. With sanctions violations it is your own country, which is usually a lot harder to successful blow off.

</comment></comment><comment><USER64> Isn't that pay models already exists? And they all failed.

</comment><comment><USER65> I love this idea as a rework of github sponsors.

</comment><comment><USER66> This is amazing and I have a gut feeling that it will revolutionize OSS. I usually want to give say $30/month to OSS (personal use) and as a professional, I would have the authority to donate $300/month.

This would be great to not worry about individual donations, and just based on one-click or even just divide up the funds equally amongst all of my starred projects. I termed this model "microsubscriptions" when I was pursuing it in the context of website funding. There are difficulties.

Gaming the system

Folks will absolutely distort their software, buy fake github stars, spam out bazillions of typosquatting packages etc. We know this because there is already a weak financial incentive to subvert: supply chain attacks for cryptominers. Direct cash will be a much stronger incentive for fuckery. [https://www.bloggerzune.com/2020/06/How-to-improve-your- blog...](https://www.bloggerzune.com/2020/06/How-to-improve-your-blog.html)

</comment><comment><USER67> For fucks sake if you are trying to make money, why are you doing open source?

Or, to put it another way, if you are doing open source, why are you so hung up on getting paid for it?

</comment><comment><USER68> FYI I'm not going to do it. I'm not going to put a recurring amount of money into open source software. It isn't that it's hard. I just don't want to do it.

</comment><comment><USER69> Seems like solution to a problem that does not exist, there are many motivations for open source projects and not all of them have generating income purpose. Furthermore, generating income via dual licensing is fairly straight forward way, assuming you have solution that is in demand and works.

</comment><comment><USER70> > Existing open source funding models don't work for small projects.

Is this true? It seems to me that open source small projects flourish and continue to grow [0]. Although, oddly, I can't find a simple chart of python or npm packages added over time, I expect it is.

Since the article is based on a seemingly false premise, it's hard to consider the rest of the article.

[0] [https://octoverse.github.com/](https://octoverse.github.com/)

<comment><AUTHOR> That page argues (convincingly!) that open source is growing faster and faster in terms of contributors, projects, commits, etc. This is definitely the case, despite the fact that the funding problem is unsolved. But who knows how much faster OSS would be growing if it was solved?

<comment><USER44> Want a new idea?

Sell direction of the project. Offer roadmap milestones. Sell priority over features maybe even bug features.

Sell hats/logos/branded hosting environments.

Sell access to internal conversation. Sell invites to internal product Zoom meetings. Sell access to private jira boards/trello cards.

<comment><AUTHOR> One of the projects I had in mind when writing this post is the "color" module on npm. It's a fantastic utility for reading in colors in different formats (hex, decimal, CMYK), applying transformations, and getting a modified color back (in your format of choice).

For all intents and purposes this module is "done". It's extremely mature and has already implemented everything it set out to do. It has 3.3k stars and 8M monthly downloads.

When I look at your list of proposals, none of them really apply to "color". The projects you have in your head are big, ambitious projects, not the smaller utility projects I describe in the article.

<comment><USER44> But if there is no active development why would these projects need additional funding?

Is it just a thank you gift?

<comment><USER71> At that point it's just a license to use.

MIT isn't going to fly anymore if the intention is to make money off of that.

</comment></comment></comment></comment></comment></comment><comment><USER72> If the kind of open source you mention were actually valuable, there would be a market for it. You make a common mistake many people make when trying to calculate value: it has nothing to do with how much something is used, it has to do with the incentives for those creating it.

People do not casually write open source to make money (unless sponsored by a company). They do it for the recognition and for vanity, and I'd argue that popular open source software is not scarce as evidenced by how much there is of it. People will in fact rush to fill the void of open source such that the popular open source is more of a fluke than anything: if it wasn't _the_ react-router it would be something other nearly identical, where there are plenty of people waiting in line behind that.

<comment><USER3> I have a very nice pet project with a user base in the single digits and I'd like to keep it that way. I know all my users personally and I am even using it for several hours per week myself. I couldn't care less about recognition or vanity.

People create opensource software because they have an itch they need to scratch, not because they want to get attention. Attention is expensive and involves scratching other people's itches, not yours. It means nagging users who demand things from you and drain your sanity all while making money off of your work. It's only natural that you want something in return.

>If the kind of open source you mention were actually valuable, there would be a market for it.

This argument makes no sense. If the software isn't valuable (as in worth a lot) then nobody would use it. Opensource software cannot become popular without providing value. Open source software is not valuable in the sense that it cannot be valued. You can't put a price tag on a non exclusive good if you're not selling it in the first place. Another flaw in your argument is that you are assuming that because there is no market for something there will never be one. Github sponorships, liberapay, patreon and lots of other platforms are clearly in the process of creating a market for these things. People are clearly willing to fund opensource software if it is possible. Just take a look at neovim! [0]

[0] [https://salt.bountysource.com/teams/neovim](https://salt.bountysource.com/teams/neovim)</comment></comment>


Show HN: Best and free resources to learn product management - <AUTHOR> http://yilunzh.com/pm <comment><USER2> Product management is fast becoming the garbage role of wannabe middle managers who lack expertise in engineering, design, or marketing. It's cute to put together a list of suggestions, but each of these areas are better handled by experts. After years as a PM I learned it was a role that was only nessecary when you have B level or worse talent that can't self manage or don't know what they are doing. In a team of A players no one needs a go- between pretending to have expertise and arbitraging credit while playing telephone.

I left my senior PM role to become a lead designer at Google and I have never once looked back. Now I take pride in having expertise derived from hands on work critical to a product along with my peers in engineering and marketing. My instincts for strategy are sharper than my former bumbling PMs who are in meetings all day. Product management is now fighting irrelevance as it continually strives for a purpose as they slump toward extinction.

The greatest tip you could give an aspiring PM is to quit and pursue a worthwhile role that contributes to the product in a meaningful way.

<comment><AUTHOR> I agree that a PM who simply play the role of a telephone between design, engineering and marketing is indeed useless...though i disagree that PM in general add no value building product, even in a team of A players.

You work at google, and google is a place full of A players. It also happens to have hundreds if not thousands of product managers. Surely they are not there to just look pretty.

I can't speak for you, but from my own experience, I get into the weeds with engineers on technical tradeoff and debate over user experience with my designer on a daily basis. I run user testing, I scowl over metrics to understand what's working vs what's not. If that's not contributing to the product in a meaningful way, I don't know what is. I hope at some point, you get to work with a PM that is able to do that with you.

<comment><USER3> Most product managers, in my experience, greatly overestimate their own level of knowledge. Your whole post smacks of this too, and when you say you "get into the weeds" on technical tradeoffs, it's quite likely that you're wasting the engineers' time trying to debate things that are either utterly inconsequential or are obviously wrong to anyone with a basic grasp of the technology.

Also when you refer to engineers and designers as being "yours," this is a huge red flag. They are not your subordinates--at least not in any company that's worth working for. You would do yourself well not to think of them as such.

<comment><USER4> > _Also when you refer to engineers and designers as being "yours," this is a > huge red flag._

I think you're reading too much into a common shorthand for "engineers who I work with".

People also say "my friends", "my family", "my workmates", "my boss", "my bus driver", "my doctor" and so on without implying subordination.

</comment></comment></comment></comment><comment><USER5> Please retitle. [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

"For example, blog posts, email signups, and fundraisers can't be tried out, so they don't count as Show HNs."

</comment><comment><USER6> Thanks for publishing - great read.

<comment><AUTHOR> Thanks harry!</comment></comment>


98.css – design system for building faithful recreations of Windows 98 UIs - <AUTHOR> https://jdan.github.io/98.css/ <comment><USER2> Hey man, if you're looking for the fonts I had them on a similar thing I done a while ago. Only normal size unfortunately [https://github.com/padraigfl/packard- belle/tree/master/src/_...](https://github.com/padraigfl/packard- belle/tree/master/src/_scss/w98/fonts) Cant remember where I sourced them from but it's probably in the code somewhere, the MSSansSerif ones are pixel perfect as far as I'm aware. It outputted CSS to be used independently but it was very much a secondary concern, pretty sure I'd be the only person who knows how to use it without backtracking from the react bits [https://github.com/padraigfl/packard- belle/blob/master/css/w...](https://github.com/padraigfl/packard- belle/blob/master/css/w98_simple.css) the data-uris might be useful, will have a look through your issues to see if I can help with anything!

Here's the attempt at a Windows 98 recreation I done with it feel free to take whatever from it:

[http://packard-belle.netlify.app/](http://packard-belle.netlify.app/)

Tried doing a design system thing too but got lazy:

[http://packard-belle.herokuapp.com/](http://packard-belle.herokuapp.com/)

<comment><USER3> Beautiful work, thanks so much :) I'll keep poking at fonts and see what I can learn [https://github.com/jdan/98.css/issues/10](https://github.com/jdan/98.css/issues/10)

I _love_ that we arrived at the ~same solution using inset shadows for the buttons. Makes me feel validated.

<comment><USER2> genuinely was the whole reason I wound up doing it tbh!

Will take the font discussion over there

</comment></comment></comment><comment><USER4> I can't believe how intensely functional the UI design of windows 95/98 was when looking back, and I say this as someone who intensely hates windows overall - but credit where it's due.

Only when using it now is it clear how well they minimized ambiguity and cognitive load... everything is so frickin obvious. Contrast that with modern aesthetically obsessed UIs, ever ambiguous, lack of clear distinctions not in both spatial boundaries and UI states - it's a constant guessing game for the user, never certain about the outcome of an interaction, giving you this distracting sense of unease rather than just focusing on whats behind the UI.

<comment><USER5> I don't get it when people people use strong descriptors like "unease" and "jarring" when describing UIs. I don't think I've ever had a UI that made me feel fearful for my life/psychological well-being like that.

<comment><USER4> It's subconscious, if you don't try to notice you wont, instead you will just stop using things or dislike using things without knowing why specifically - or more subtle still, you will not be as efficient in those programs... The UI is inbetween what you are trying to interact with, so if it doesn't quite work right then the emotions are going to be more subtle and hard to differentiate because it's not your main focus.

You are more likely to intuitively get this once you have some experience attempting to design effective UIs (and actually trying to care about it).

</comment></comment></comment><comment><USER6> that's really gorgeous. I find windows 95 aesthetics a master piece. I'm not gonna lie, I thought about windows 95 when I was creating FOS, my Fake Operational System "framework".

I'm thinking about refactoring it and I'll may incorporate windows color scheme to it. Here's the link if you wanna see what I am talking about.

[https://github.com/victorqribeiro/fos](https://github.com/victorqribeiro/fos)

<comment><USER7> Fashion is cyclical. At one point people will get bored of these ambiguous modern UI with hidden fields and gestures, and made of 50 shades of light grey that only a calibrated display can render with any discernable contrast. And we will rediscover the merit of clear and explicit UIs, and Apple will claim it just invented it!

<comment><USER8> I wouldn't be surprised :) The Windows 95 aesthetic is already back into fashion, I see it a lot on flyers, web art… just not yet in computer applications! I guess that's a matter of time. Check out the flyer for this party: [https://highclouds.org/highclouds-online-antivirus-party- mag...](https://highclouds.org/highclouds-online-antivirus-party-magdalena- bay-cobrah-dolly-bing-bing/)

They used vectors, looks like the Windows 95 aesthetics that was so connected to pixel survives this transition quite well!

<comment><USER9> That's later than Windows 95 - maybe 98 or 2000. Windows 95 didn't support gradient titlebars.

<comment><USER10> Gradient titlebars were the killer feature for Windows 98.

</comment></comment></comment></comment></comment><comment><USER3> Author here! Thanks for all the nice comments (and helpful bug reports). This idea has been in the back of my mind for ~2 years now but I recently got a wave of motivation and decided to ride it - and here we are. Happy to answer any Qs :)

<comment><USER11> I think the Text input field doesn't match the rest.

<comment><USER12> On iOS text and textarea are rounded. Not sure if you can override that with css.

<comment><USER13> You can get around that with contentEditable, but that creates an even bigger mess.

</comment></comment></comment></comment><comment><USER14> The widgets look spot on, but the text has atrocious kerning. 'ti', 'll', 'd!' are squashed together. Windows 95++ had extremely good small size font rendering and did pixel perfect alignment and kerning of pretty much any font (However, the UI font was probably bitmapped). Remove the 'letter-spacing' styling - it breaks kerning.

</comment><comment><USER15> I'm impressed by how few people here have tested it in Firefox – Fieldset is broken, Button has ::-moz-focus-inner not properly disabled, Radio/Option isn't rendering correctly (still shows the original input element as 2x2px black box), and quite a bit more.

Hilariously, this is quite a good example on why the Chrome monoculture is just repeating the IE monoculture of years past

<comment><USER3> I've been getting a good amount of bug reports from FF users, and am grateful because - you are right - I did not test in it and should have.

I'm tracking the fieldset and inner-focus ones (though unable to repro the latter on my machine). The third is new to me if you'd be so kind as to share some details about your system.

<comment><USER15> I'm running Firefox 75 on Ubuntu 18.04. Pretty standard usage.

Fieldset doesn't allow inset box-shadows on Firefox, but you can fix that relatively easy:

        fieldset {
          position: relative;
        }

        fieldset::before  {
          content: "";
          display: block;
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          box-shadow: inset -1px -1px #ffffff, inset 1px 1px #0a0a0a, inset -2px -2px #808080, inset 2px 2px #dfdfdf;
        }

Moz-Inner-Focus and the Radio/Options are also equally easily fixed:

        ::-moz-focus-inner {
          border: 0;
        }

        input[type="radio"], input[type="checkbox"] {
          visibility: hidden;
        }

</comment></comment></comment><comment><USER16> We've come full circle. Thank you for this. It's so simple it's actually _peaceful_

<comment><USER17> We've also come full circle because this was pretty much the browser's default style on Netscape.

</comment></comment><comment><USER18> Isn't it a bit ridiculous that we need to do this in the first place? Shouldn't clear 3D controls on a neutral gray background be the _default_ user-agent appearance, with no need for custom CSS of any sort?

<comment><USER19> Considering non-formatted HTML files are supposed to be documents, not windows, no?

Adding to this: without any specification, the browser should, and does, use the operating system's native controls when rendering controls such as <button>.

<comment><USER20> Not anymore for chrome & edge

[https://blog.chromium.org/2020/03/updates-to-form- controls-a...](https://blog.chromium.org/2020/03/updates-to-form-controls-and- focus.html)

All part of Google's master plan to commoditize desktop OSs. Everyone outside the US already uses Android, soon your computer will be a Chrome box instead of a Windows/Mac/Linux box.

First they did the browser title bar & tab bar integration/styling & removed the normal OS title bar, then they made Chrome OS, now they are removing the last traces of OS-specific styling for those who haven't already switched to Chrome OS.

And Gmail, Gdocs, and Chromebooks are _huge_ in kids schools. The kids don't know anything outside the non-Google universe. Most of the kids I know think MS Word/Excel/PowerPoint are lame (not that I'm a fan, but you have to admit MS Office is unrivaled in its abilities).

20 years from now they will have a gigantic monopoly over a huge range of computing.

<comment><USER21> I ... have no issue with those Chromium changes. I don't want Google to control the web, but I certainly wish there more standards based work went into designing a set of controls that was default across all browsers that was coherent, consistent, and was a safe default if you didn't want a theme. Sadly, Bootstrap become this a while ago, followed by a plethora of other web "defaults" that you just plunk into the top of your HTML file to get a whole new design without changing much.

I'm hoping Firefox Foundation or something like that will do some work in this area.

<comment><USER20> That's an interesting perspective. I guess for those of us on Mac and some Linux-ish OSs, we expect things to just work and look standard. I don't use mac but I think most users are accustomed to applications fitting in with the system, and Apple seems to make a big deal on both macOS and their mobile OSs about this. This is also true on the Gnome desktop where every single Gnome really looks and feels like a Gnome application - it's very coherent, and though I am not a fan of Gnome, I really enjoyed that part of the experience when I used it recently. On KDE this is also true, where every single application, whether Qt or GTK, looks like it's made from the same components.

And I think that web applications should be like this. They may be delivered differently, but they should be part of the system like everything else. Making the UI elements look like the OS ones is good.

I especially notice it on KDE, since on the default KDE theme the checkboxes and radiobuttons and scrollbars look a bit different from most other OSs and the Gnome default theme. But in the browser my checkboxes and radiobuttons and dropdowns look exactly like every other checkbox and radiobutton and dropdown on my computer, and the scrollbars have the distinctive KDE look too.

Most web apps do behave differently from normal applications, and also have stupid company-specific theming, but it's nice having at least parts of them fit in.

I suspect those who come from a Windows background will not have the same opinion, because on Windows basically every app is a mess of different themes and window decorations.

<comment><USER21> Windows has only been like that recently. The 9x days, and even a good chunk of the XP days meant standard looking applications.

Now that CSS and Javascript are so widely used, it would be interesting for OS vendors to provide a default OS theme along with their packaged browser, that allowed some kind of sane default for web applications to use. You could use a native skin, or load your own CSS to customise it. Microsoft kind of tried this with ActiveX controls, and then Java Applets tried it, and then Flash was fun by ultimately not a good idea, and now we're here with thousands of themes to choose from and a rough set of guidelines that some follow and many don't.

<comment><USER9> It's funny, back in the day it was "It will never be the year of Linux on the desktop until all applications look consistent". People hated the fact that this app was Gtk, that one was Qt and this one here was Motif. But on Windows, it was winapi button windows and common controls all the way (except a few MS apps like Encarta - leading the way in modern flat guis already back in the Windows 3.1 days). The world has turned so far around!

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> I was going to post the quote about them not stopping to think if they should, but then I actually clicked the link. Wow, that brought back a lot of nostalgia. I haven't even used Windows in 15+ years, but I now realize that I still have a fondness for the interface of my youth ;-)

<comment><USER23> I might be a few years older than you – I get far stronger nostalgic feelings from Windows 3.x UI than that of Windows 9x.

<comment><USER24> You're in luck: [https://codepen.io/matthijss/pen/wzYjJQ](https://codepen.io/matthijss/pen/wzYjJQ)

<comment><USER9> Haha. I was just thinking of that. Been wondering if there's any operating system I can theme to look like Win3.1 any more - the aesthetic of Windows 95 is better but Windows 3.1 seems to fit our contemporary standards of flat and fewer colors better. I did like the more rounded buttons of Windows 3.1 better than the harsher edges of the Windows 95 buttons.

The mistakes a driving me crazy. I assume the fonts are just issues with me not having the right font installed. The command menu should be flat and the bar in it should be longer, rectangular and with a drop shadow. The minimize/maximize buttons don't look at all right (no highlight, too stretched). When you move the window, the frame looks wrong - i think the grains are too big and widely separated.

<comment><USER25> Linux + XFCE has a Win 3.1 theme on b00merang's site. Borrow the icons from the Chicago95 theme and you are done.

<comment><USER26> Oh man, Chicago95 is almost enough to make me try out Desktop Linux again.

</comment></comment></comment></comment></comment></comment><comment><USER27> Certainly evokes a lot of nostalgia. The tactile feel of 3D buttons can be mesmerizing at times, a lot of experience has been lost in the race to flat, in addition to lowered affordability of modern UIs.

One bug: Firefox on Linux introduces an extra dotted rectangle on focused buttons (so they end up with two oddly overlapping focus indicators)

<comment><USER28> I'm observing this extra outline on Firefox Nightly on Windows. I can't discern what's making it, and suspect it may be a Firefox bug, somehow.

<comment><USER29> It's literally a feature, not a bug:

[https://developer.mozilla.org/en-US/docs/Web/CSS/::-moz- focu...](https://developer.mozilla.org/en-US/docs/Web/CSS/::-moz-focus-inner)

[https://stackoverflow.com/questions/71074/how-to-remove- fire...](https://stackoverflow.com/questions/71074/how-to-remove-firefoxs- dotted-outline-on-buttons-as-well-as-links)

<comment><USER28> Ah yes, I had completely forgotten about ::-moz-focus-inner.

</comment></comment></comment></comment><comment><USER30> Are there similar retro-UI systems for other older interfaces? While I don't have that much nostalgia for Win98 myself, I could see how it could be cute to have similar systems for classic (System 6-7) Mac, Amiga, etc. I've seen websites that try to go for these looks, but I think they were manually done.

<comment><USER31> I've noticed there are a couple of these now so I threw a quick list up on Github: [https://github.com/matt-auckland/retro-css](https://github.com/matt- auckland/retro-css)

<comment><USER32> i found this too, (but i can't find a demo page) [https://github.com/npjg/new- dawn](https://github.com/npjg/new-dawn)

<comment><USER33> That one was a bit disappointing - here's a screenshot: [https://imgur.com/oFz7e0p](https://imgur.com/oFz7e0p)

Funny enough, just yesterday (before seeing this post), I was searching for re-creations of the Macintosh interface.

Here's the best one I could find:

Apple Macintosh System 7 UI in CSS - [https://github.com/pfcode/system7css](https://github.com/pfcode/system7css) (Screenshot: [https://imgur.com/ZEKolbS](https://imgur.com/ZEKolbS))

Aah, that nostalgic comfort.. Makes me dream of building my next toy "OS in a browser" from this.

<comment><USER32> What would be nice is if there was something like a standard test or demo set of HTML for all these to work against, which would enable a way to switch themes.

</comment></comment></comment></comment></comment><comment><USER34> I noticed that it's using box-shadow for the "3d effect" on buttons and window borders.

I'm a bit disappointed they didn't use the "inset" or "outset" border-style [0] which pretty nobody uses anymore these days. I thought this kind of design is pretty much why these border-styles exist.

[0]: [https://htmldog.com/references/css/properties/border- style/](https://htmldog.com/references/css/properties/border-style/)

<comment><USER35> It may be because the transition wouldn't be as smooth as it is now?

<comment><USER34> Did Windows 98 have smoooth transitions, though?

<comment><USER35> Haha, you got a point there ;)

</comment></comment></comment></comment><comment><USER36> I think this would be a great reference for teaching introductory UI design; with the 3D-ness you can clearly see the different states that each UI element requires.

I also really like the quotes about each component! Is there an online copy of this _Microsoft Windows User Experience_ manual somewhere?

<comment><USER37> You can borrow a (badly scanned) copy on archive.org: [https://archive.org/details/microsoftwindows00micr_0/page/63...](https://archive.org/details/microsoftwindows00micr_0/page/630)

</comment></comment><comment><USER38> My heart beat a little faster when I saw the VB dialog box. I experienced building software for the first time when I was taken to my father's office where they used VB and Foxpro (and still do) to build ERP systems. Everything looked like this site.

The waves of nostalgia are sure coming on hard. Thank you to the author of this. This whole site is a work of art!

<comment><USER3> This is so wonderful to read, thank you :) 100% feel the same way which is what kept me going to ship this.

</comment></comment><comment><USER39> > Today's mood

>

> Claire Saffitz

>

> Brad Leone

>

> Chris Morocco

>

> Carla Lalli Music

I just wanted to let the author know that at least one other person appreciates this though tbh most of the time for me it's Sohla.

<comment><USER40> I think Molly is my favourite.

Although I still can't make Carbonara well to save my life.

</comment></comment><comment><USER41> That's as refreshing as a dunk in a cold pool. My God we need more UIs that instantly tell you what they can and cannot do. Seems like the modern ones do as much as they can to obscure everything.

<comment><USER42> Considering how cyclical everything is I wouldn't be surprised if we see a return to Win95/98 style UIs soon enough. They'll advertise it as "revolutionising productivity with an innovative new approach to desktop computing" and give us the a recoloured Win98.

I'd probably switch back to Windows if they did.

</comment></comment><comment><USER43> The joy I get by clicking on those buttons cannot be expressed in words here.

<comment><USER44> The clarity of such perfectly defined buttons is unbeatable! Maybe they'd be more amicable to modern tastes with rounded shapes or a touch of color, but that 3d visual effect of a button being physically pushed definitely needs to come back and never leave us again, it's so clear and pleasant!

</comment></comment><comment><USER45> This is great. I was actually building something similar for my VST stuff page (work in progress - [http://tilde.town/~severak/studio/](http://tilde.town/~severak/studio/)). Now I am gonna copy that neat box-shadow border from 98.css.

</comment><comment><USER46> Really nice!

One minor nitpick: the title bar buttons actually need to be a pixel or two larger in each direction (so 2 or 4 pixels more of height and width, while remaining centered).

<comment><USER47> That's the beauty of open code. You can pick all the nits you want -> [https://github.com/jdan/98.css/issues](https://github.com/jdan/98.css/issues) :)

</comment></comment><comment><USER48> I don't know what it is about the 95, 98, 2000 era of Windows UI and aesthetics but I still strongly prefer it.

<comment><USER49> It was functional and clear, unlike modern "hide everything" UIs?

<comment><USER48> Very true, especially when it comes to scroll bars and similar elements. While I do enjoy some "modern" aesthetics from time to time, the Win98 style UI just feels far more "productive", for lack of a better term.

And as much as I like that Linux in many ways often keeps that type of UI around, I still feel like Win98 did it better (almost can't believe I'm saying that).

</comment></comment></comment><comment><USER50> Oh, those days when designers actually thought of ergonomic vs modern insanity with no standard, no contrast, no ability to deduct function from the look etc. etc. Well there are exceptions but generic picture looks rather depressing.

</comment><comment><USER51> I'm using this next time I'm building something from scratch. Thanks.

<comment><USER52> Me too

</comment></comment><comment><USER53> My god they have even managed to switch off the anti aliasing of fonts! Looks so accurate I doubt I would be able to tell the difference, well done.

<comment><USER10> I can't decide whether the aliasing is part of the aesthetic or not.

<comment><USER53> I am pretty sure it's deliberate, I mean did '98 have clear type yet? Did it work?

<comment><USER54> [No, it started with XP]([https://en.wikipedia.org/wiki/ClearType#Implementations](https://en.wikipedia.org/wiki/ClearType#Implementations))

</comment></comment></comment></comment><comment><USER55> I'd really love a Macintosh System 7.1 version of this.

</comment><comment><USER56> Check out [https://poolside.fm/](https://poolside.fm/) for some extra nostalgia Operating Systems.

</comment><comment><USER57> The controls look great but the text looks off. I forgot the UI font in Windows 98 but perhaps it was Tahoma. Maybe try that and disable anti- aliasing. Better yet, get an image of how the actual font is rendered on Windows 98 and make the glyphs into a bitmap font. That would also sidestep all the font renderer differences between then and now.

<comment><USER3> I started off by bringing in MS Sans Serif from my windows 98 VM, but ditched it since it was rendering almost identically to Arial.

Making a webfont out of the original 8pt Tahoma sounds fun, but I am unsure if I have to do it manually. I was worried about having to provide bold glyphs, and wasn't sure how to make it scale while still looking pixelated. (That is, if I need to hand-draw an 8x7 lowercase 'e' do I also need to hand-draw the 24x21 version?)

Anyway, I cut it but agree I should get this right!

</comment></comment><comment><USER58> Really nice. I tried to get Windows look and feel in the headers for the Yazz code editor, but maybe I should have used this CSS lib instead. Great Job!

[https://yazz.com/app/homepage.html](https://yazz.com/app/homepage.html)

<comment><USER59> > > [https://news.ycombinator.com/item?id=21734845](https://news.ycombinator.com/item?id=21734845)

This (yazz/pilot [i]) needs more exposure... the webapp form designer is gorgeous and useful.

[i] [https://yazz.com/app/homepage.html](https://yazz.com/app/homepage.html)

<comment><USER58> Thanks, glad you like it. We haven't really pushed it out yet as we really want to get the debugger and App Store released before we can say it is useful

</comment></comment></comment><comment><USER60> Using this to style my online resume next time.

</comment><comment><USER61> Nitpick: "My First VB4 Program" \- VB6 came out in 1998

<comment><USER62> The present is made up of pieces of the past, my friend :)

</comment></comment><comment><USER63> _Flexbox was originally invented in the late '90s by Mozilla (using vendor prefixes — `display: -moz-box`, `-moz-box-flex`, etc.) in order to use CSS to style and lay out their Windows 9x app UI. We've come full circle._

[https://twitter.com/frankyan/status/1253063046060109824](https://twitter.com/frankyan/status/1253063046060109824)

</comment><comment><USER64> This is fantastic. I looked for a CSS library like this some years ago and couldn't find one. I didn't have the courage to try to make it myself.

</comment><comment><USER65> Does anyone know what the easiest way to make those windows movable and resizable (dynamic in general) would be?

Great work, I love this interface style!

</comment><comment> 5- nice attempt!

it might be useful to boot real windows 98 (e.g. by visiting [http://copy.sh/v86/?profile=windows98](http://copy.sh/v86/?profile=windows98)) and check how things interact with clicks, in particular how checkboxes and radio buttons look with mouse down.

</comment><comment><USER66> I'm not smart enough to get this into a Wordpress theme, but if it were ported to WP, it'd be my personal blog theme

</comment><comment><USER67> It's great, I love it! It's quite similar to this project on iOS: [https://github.com/Baddaboo/ClassicKit](https://github.com/Baddaboo/ClassicKit) They even went as far as building a fake Internet Explorer app.

<comment><USER3> Woah, amazing attention to detail there. I love that they include this image in the README [0], buttons were the first thing that hooked me into building this.

[0] [https://github.com/Baddaboo/ClassicKit/raw/master/Images/pix...](https://github.com/Baddaboo/ClassicKit/raw/master/Images/pixel.png)

</comment></comment><comment><USER68> If the author is here, this is perfect except for 'space' not being able to click a button

</comment><comment><USER69> Wow that's pretty fleshed out. I created something similar 3 years ago, but I lost motivation (named it the same too haha): [https://github.com/LakenH/98css](https://github.com/LakenH/98css)

</comment><comment><USER70> Brilliant. Now for Windows XP...

<comment><USER3> In between thinking of this project (about 2 years ago) and now I was _so_ desperate for someone to clue me in on the gradients used to draw windows XP window title bars. Still never found the answer.

</comment></comment><comment><USER48> It is rather amusing how this doesn't work in IE11. I'd _almost_ be inclined to fork and make a version that does, just for the heck of it... for you know, corporate environments that need Win98-styled intranets :)

</comment><comment><USER71> It's weird how this reminds me of the last two years of the _newest changes_ in UIs. I think it was Windows 10 that brought back minimalist borders (as opposed to Windows 7)? I am not sure whether I am imagining this.

</comment><comment><USER72> Oh yes. I can't wait to think of a product to build using this design system.

<comment><USER36> I think it would be hilarious to use this in a desktop Electron app and come full circle.

<comment><USER72> To top it off the bundle size and memory usage would still be more than just running Win95 in a VM...

<comment><USER9> It would give you the authentic feeling of running Win95 on a machine that maybe only had 8 MiB ram.

<comment><USER72> My sister had a Win95 machine with 32mb of ram and 2mb of video memory. What a powerhouse! Played 3D games on that thing...

</comment></comment></comment></comment></comment><comment><USER73> I surprisingly like it! Only thing I didn't like is the font (makes it hard to read for some reason) but otherwise, it looks wonderful. I might use this as an inspiration for future project I am building!

</comment><comment><USER74> This is great, I would love to be able to use this. Win98 always felt like a highpoint in easy to UI design.

I am not a CSS ninja, how easy would it be to make this responsive? The example do not appear to be responsive.

<comment><USER75> I somehow enjoyed the ride to css3 and full fledged responsive multi layer dom presentations but I do miss the wintel days GUI concept. Something about the simplicity, clarity.. makes it more to the point than the hyper capable yet systems of today.

</comment></comment><comment><USER5> First thing I do in Windows is turn off the eye candy :) . I mostly use linux with KDE. It still has a real file menu and visible scrollbars and I hope that never changes :)

</comment><comment><USER76> What is the name for these simple css files that can turn plain html into a full layout/theme?

Can I find a list of these somewhere?

<comment><USER77> I don't think there's anything official or even standard for naming. Some places refer to them as class-less:

[https://github.com/troxler/awesome-css-frameworks#class- less](https://github.com/troxler/awesome-css-frameworks#class-less)

And these seem to be the strictly frameworks without classes.

This site refers to them as "drop-in" frameworks (and lets you test them out live):

[https://dohliam.github.io/dropin-minimal- css/](https://dohliam.github.io/dropin-minimal-css/)

The ones here appear to not be strictly class-less, since I know at least some of those frameworks do have classes, but are probably optional/very light on classes. 98.css would also be a "drop in" in this case since you can see things like the title bar do use classes:

        <div class="title-bar">
          <div class="title-bar-text">A Title Bar</div>
          <div class="title-bar-controls">
            <button aria-label="Close"></button>
          </div>
        </div>

</comment></comment><comment><USER78> Looks nice, gonna try to use it some of my projects. The old Windows UI is really functional and easy to understand

<comment><USER79> I generally agree, but as Semiapies pointed out there's some low-contrast text in places.

Vaguely relevant: The FOX Toolkit implements the Windows 95 look for lightweight Linux/Windows GUI applications. [0] A pity we don't see more GUIs like that today.

[0] [http://fox-toolkit.org/screenshots.html](http://fox- toolkit.org/screenshots.html)

</comment></comment><comment><USER80> Surprising how rough on the eyes nostalgia can be, between the small font size and low contrast colors.

</comment><comment><USER81> The checked disabled radio button and text inputs do not look right on iPhone. Otherwise solid work!

</comment><comment><USER82> Guessing it doesn't have those fancy warning symbols that some Windows 98 dialogs had?

</comment><comment><USER83> It may as well be called 2000.css, at least I won't be able to tell the difference.

<comment><USER84> Windows 2000 used Tahoma for its UI font, but 9x used MS Sans Serif.

[https://en.wikipedia.org/wiki/MS_Sans_Serif](https://en.wikipedia.org/wiki/MS_Sans_Serif)

[https://en.wikipedia.org/wiki/Tahoma_(typeface)](https://en.wikipedia.org/wiki/Tahoma_\(typeface\))

</comment></comment><comment><USER85> I bet the css is totally broken when you open it in a Windows 98 Internet Explorer :D

</comment><comment><USER86> Looks cool. Does it work on IE?

</comment><comment><USER87> This is very cool! Mind if I fork and re-work to look like Solaris? :D

</comment><comment><USER88> ouch, open this in Safari and highlight some text, then unhighlight the text. It's literally barely readable, maybe some bugs to fix there, but it looks great in Chrome. Cool idea!

</comment><comment><USER89> Would be cool if it came with JS to resize, move close windows etc.

<comment><USER90> Only if it's easy to swap out for your own. It's unlikely the JS it would come from would fit into they way you do things normally (in your project or even your head).

</comment></comment><comment><USER91> Does anyone know a similar project but with Windows 10 styling?

<comment><USER92> [https://github.com/microsoft/fluentui](https://github.com/microsoft/fluentui)

</comment></comment><comment><USER93> For some reason this brought back memories of mIRC</comment>