The Indie Web website up there actually has protocols to do most of what people do for social media, in exactly that structure. It's enough of a pain to set up that I don't see it becoming normal, but the amount that I've set up for my website at least works...
I keep saying "no" to this sort of thing, for a variety of reasons.
- "You can use this code for anything you want as long as you don't work in a field that I don't like" is pretty much the opposite of the spirit of the GPL.
- The enormous companies slurping up all content available on the Internet do not care about copyright. The GPL already forbids adapting and redistributing code without licensing under the GPL, and they're not doing that. So another clause that says "hey, if you're training an AI, leave me out" is wasted text that nobody is going to read.
- Making "AI" an issue instead of "big corporate abuse" means that academics and hobbyists can't legally train a language model on your code, even if they would otherwise comply with the license.
- The FSF has never cared about anything unless Stallman personally cared about it on his personal computer, and they've recently proven that he matters to them more than the community, so we probably shouldn't ever expect a new GPL.
- The GPL has so many problems (because it's been based on one person's personal focuses) that they don't care about or isolate in random silos (like the AGPL, as if the web is still a fringe thing) that AI barely seems relevant.
I mean, I get it. The language-model people are exhausting, and their disinterest in copyright law is unpleasant. But asking an organization that doesn't care to add restrictions to a license that the companies don't read isn't going to solve the problem.
In addition to YaCy and the varieties of Searx (both of which perform better for me than any of the commercial search engines), it's not even out of the question to do this yourself, if you're willing to start with the most recent Common Crawl dump and do some spidering in between releases. I don't recommend it, unless you want to learn for yourself why search engines often give such miserable results, but it's possible.
However, that's the issue, here. Can you self-host a search engine? Sure, if you want to maintain the storage to back it. That depends on how deep your pockets go...
Probably, though I don't know their architecture well enough to say. The discussion that I saw referred specifically to PDF.js, which I believe is what the browsers use, though.
It's not as clean a solution as they'd like it to be, but for another option, Jellyfin hosts media including books. When I say "not as clean," I mean that you can stream video and music from the server, but it has you download books to read on another device. Last I heard, they were looking to integrate at least a PDF viewer into the interface, though.
On the former, yes, I'm definitely thinking about sustainability in the long term, not the current crisis. It might be too late to fix the current situation, at least in the sense of making it so that current large-instance owners can continue to manage everything alone.
And on the latter, kind of. When it's a job, then people also rely on the income. One of the big problems with most economies in general is that, if someone feels bad about your current job - overwhelmed, depressed, or otherwise stressed - then they're not in a good position to find the next opportunity. They don't want to take more hours out of the day, and that stress shows through on job applications. And someone might want to solve that by paying them less, so that they have other jobs, but that throws it back into the "labor of love" column.
That's why I make a big deal about distributing the work across a group or community. Paid or not (but ideally paid), it's far easier to walk away if the "bus factor" is high enough that the job can afford to lose an individual or two for a few weeks and replace them if they leave permanently.
Granted, I don't run instances of anything yet, but speaking as someone who has been on the Internet for a while, including in moderation capacities...
- Yes, obviously make mental health treatment more accessible, but if it has gotten to the point where it's needed (as opposed to the equivalent of checkups and maintenance), then things have already gotten out of hand.
- Moderation needs to happen as a team or community, because you can't take a break if it's all on you. At that point, problems grow while you try to heal, and you come back to a worse situation than you started with.
- While we should pay moderators for their time, because their time is valuable, that's also not a solution, just basic respect. People with high-paying jobs burn out, too.
- Long term, though I obviously have no authority or sway in these matters, the idea of "moderation" should probably be replaced by "governance," because governance carries the connotation of distributed responsibility. The person who decides whether to discipline in a given case isn't the same person who metes out the discipline. Neither of them decide appeals on the decision, and none of them work without oversight. Also, the expansion of the Fediverse is largely a shift away from feudal governance to more-but-not-totally-democratic governance, which I think is more comprehensible to most people than "the owner of your server (who you've never really considered as a person) can't put up with your crap anymore and is pulling the plug."
That's unfortunately not complete or a useful policy proposal, but hopefully those off-the-cuff ideas will spur something more worthwhile.
My half-solution to this has always been to refer to where I'm working in my notes, like a file, method name, and maybe control structure if warranted. I've never needed to take that final step (hence half-solution), but this carries about enough information that someone could hack together a quick program to merge the notes and code in a reasonable way.
While (as I say) I've never specifically needed it, though, at work I've often wanted to do that and take the next step of sifting through version control, the ticketing system, and team chats to pull a complete view of what's been happening around a particular chunk of code. I point that all out, because I think that you're on the right track, however you ultimately solve that problem for yourself.
I can't vouch for anything about it, since I've never done more than look and bookmark the page, but Vidzy at least exists and has an instance that plays one short video...