In Bringing people back to the open web Chris states:
But most users don’t care about the principles or implementation of an open web, at least not in those terms. Most people don’t see themselves as ever having left the open web behind, and if you told them to try to get back to it, they wouldn’t know what to do or why it was worthwhile.
No matter how much it might be in their long-term self interest, it’s not up to the casual Internet user to figure that out. Instead, it’s up to the developers, designers, entrepreneurs and technology leaders to create a version of the open web that also happens to be the best version of the web.
I think he’s starting with a reasonable, positive call: we can’t just decry the state of things, we have to make things. And we have to make good things. The open web should be better.
I fear a moralizing approach to advocacy pushes people away, makes it harder for people to care about the values we are espousing. When we frame something as depressing or hopeless we encourage people to pay attention to other things. So yes: the open web should be the best web.
But ignoring my advice, I’m going to point out a depressing fact: open source products aren’t successful. Open source is not in line to be part of any solution.
Open Source has done a lot for developers, but it’s not present on the surface of the web – the surface that people interact with, and that defines the “open web”. Actual sites. Actual interfaces. Open source is used everywhere except at the point of interaction with actual people.
Why is open source so absent?
One big problem: the web isn’t software. The web is deployed software, running on servers.
If, as a creator of software, I want to share what I’ve done with everyone on the web – not just with other developers – then I actually have to deploy that software somewhere. But if maintaining open source is difficult and unsustainable, hosting that software is even worse.
I could create a whole company to support the service. But at that point I’m not a developer, I’m an “entrepreneur”. That’s more of a pain in the ass than giving stuff away.
For open source developers to build the open web we need a platform that allows us to actually give the tools we’ve created to everyone. Because of the hosting problem all our open source work is mediated through commercial entities, and we have this world where the web is very much built on open source, and yet that does nothing to make it more open.
An open hosting platform is not a specification, it is not a protocol, it is not a piece of software. It is actual hosting. It is people who deal with abuse, security, takedown notices, denial of service attacks, naming, bill paying, authentication and recovery, and are committed to ongoing improvements to the platform. Those are the things that separate software from a running service, and only running services can participate in the open web.
I don’t think decentralization, federation, or P2P is important or probably even desirable. I think these are ways to avoid the work of hosting, and they succeed to the degree no one uses the resulting software and so no work has to be done. It’s better to start with a working product.
Would hosting change things? Probably not enough: products aren’t just software, and open source development still struggles to include a diversity of skills and the consistent delivery of effort to make a product. Here, I have no suggestions. But still, an open, public, accessible hosting platform would be a start.
Out of curiosity, have you looked into Sandstorm? https://sandstorm.io/
They seem to have the same goals - providing easy hosting of anything (that works within the sandboxed environment), while also letting you transition from servers managed for you (e.g. the Sandstorm Oasis service) to servers you run yourself, if you want to. It's unfortunate that necessary funding wasn't acquired to continue dedicating significant development time to it, but the project got decently far along.
Yes, I thought they were doing interesting things with that (I played around in that area myself a very long time ago, in https://bitbucket.org/ianb/.... Though I didn't think they were targeting something that was really consumer accessible. I'm not actually sure you can take current applications and offer them to a wide breadth of users. Though the alternative is to create a new environment and go down a Build It And They Will Come path, with its own dangers.
I would mostly just like to mention that you're awesome. I'm not sure I entirely agree (once you have hosting, you have to start dealing with all the problems involved in hosting, and centralization is part of that), but I like how you put it. And I totally agree that hosting is the big need. I'm running into it with my son right now, who is playing around with writing his own websites, but I don't really want to pay for dedicated server or NAT through to my desktop like I used to.
But I have one solution to this, which is that I've started using github for hosting. I'm not really that fond of git or the github workflow, but that doesn't really matter because the big need is precisely what you say: hosting. And with gh-pages, github will host anything you can squeeze into HTML/CSS/JS files. You can even use github as a datastore. See, for example, https://mrgiggles.github.io... (note that I'm not sure they really intend to be a hosting company, so I don't know how much of this they'll really put up with.)
Oh yeah, I absolutely use ghpages for my lightweight hosting too. But let's say you want to make some blogging software, what would a user have to do to publish their blog? Signing up for GitHub isn't terribly hard, but there's a bunch of complicated steps after that, and honestly I don't know how easy it is to create something that can write to a git repository – probably the blog software still has to have its own server, though at least it wouldn't have to actually handle hosting people's blogs.
If you did figure out a way to make it feasible, I have a feeling GitHub would not be appreciative (and might block the tool). My understanding is that ghpages is pretty cheap to run, but I suspect they rely on a certain niche status to make the other operational issues reasonable.
That said, my understanding of the economics of static publishing is that they are very reasonable, and one server can serve literally hundreds of thousands of (low-traffic) sites. It's all about the hassle. And the more accessible you make your service, they more you are opening yourself up to hassles.
Yeah, fair. The app that I mentioned does most modifications via an IRC bot with its own github account, so it can push the updates. But that only works because it's... well, hosted somewhere. (On an otherwise-abandoned machine sitting underneath a co-worker's desk, but whatever.)
To do any other form of edits, it gives you a link to create a github PR, which isn't exactly a general solution.
To be fair, there's actually some pretty awesome interfaces built on PRs (eg https://github.com/apps/ren.... It's not crazy to think there would be a commit phase to publishing.
I love this idea and completely agree that decentralized is neither desirable nor attainable.
I actually wrote about how Mozilla could implement a "for the record" blogging platform that sounds a lot like this concept:
Could you expand on why you think decentralized hosting / federation / P2P isn't desirable?
I don't think decentralization offers any real features, but has many costs. It's not cheaper, the costs are just distributed. Fully decentralized means there's no one taking any responsibility, and you are hoping that initial engineering can anticipate all the problems. Federated means there's just several people taking responsibility, in a functional federated system there's a kind of cabal of responsible people, and in a dysfunctional system no one really takes care of anything. All of this to solve the wrong problem.
You want to provide affordable hosting that isn't subsidized with ads or other manipulation? The easiest and cheapest and most reliable way to do that is with traditional web hosting. People are successfully doing that right now with a very low cost. The attention required to maintain those services is not as cheap, but decentralization doesn't solve that problem (except by creating a completely unmaintained space).
Do you want to create something that is hard to censor? From what I can tell the only solid way to do that is some form of steganography: you have to hide things in other traffic, other protocols, other materials. I don't have an answer, but I'm not confident decentralization technologies answer this either. It's also unclear to me that anti-censorship should be the highest priority. It feels like an aside.
The real challenge I see is in making something that is accessible, that addresses a bunch of use cases, that gets good user consent for changes, that provides management both within and above individual use cases or applications, allows some kind of cohesive information architecture despite disparate applications, etc.
Thanks for expanding.
I'm not personally interested in combatting censorship, excepting the kind that is self inflicted in response to phantasms.
There is a company that is a paragon of affordable hosting: www.NearlyFreeSpeech.net.
They go to extra ordinary lengths to ensure the customer price is directly related to the individuals usage patterns and NFS' costs to support that , and they're very transparent about it. I have complete faith in their integrity.
Where they fail in regards to your topic is in general usability. It's only a service for the capable and sysadmin savvy, a narrow niche.
I've long wished other companies would follow their spirit, adapted to a general audience, or at least different audiences.
Email for all it's warts is still the best example we have of an open system that everyone can participate in, with a minimum of fuss. All platforms, all devices, and almost all software can at least interact with it if not outright do it. It's centralized (mailing lists) and distributed (inboxes) at the same time.
In my opinion for an open web to grow and thrive it needs to be like email. (In spirit. I'm not referring to its technical structure.)