The World Wide Web (WWW or simply the Web), invented in 1989, is the dominant way of using the Internet and also the world's dominant software platform. It is based on files located on servers and linking to each other by URLs that usually indicate the protocol, server address and the path to the file. The protocol is usually ?HTTP(S) and the document format is ?HTML, but other protocols and document formats may also be used as long as they support URL-based linking.

Problems

Problems of WWW from the permacomputing point of view:

Even though HTTP is a simple protocol and the basic HTML is a simple format, the current standards are bloated and only a few web browser engines are able to support them at the commonly required level.

A URL only points to a single server (or a cluster that looks like one), so its usability depends on the availability of that server. When a server is gone, so are all the links that point to it. If a server is temporarily offline, there's no backup plan for locating the files elsewhere.

The design thus discourages small and temporary servers while encouraging large and centralized servers that maximize their availability. The design also discourages local copies and mirroring (that used to be a common practice when ?FTP was big).

Attempts to fix the problems

?Internet Archive (which is another centralized service) partially solves the problem of broken links and vanishing files by sometimes providing usable copies of the vanished files.

The Smallnet movement advocates simpler formats and alternative protocols (such as ?Gopher or Gemini) as well as small and personal servers, but hasn't yet done much to address the URL problem that makes those small servers unappealing.

?Web3 is supposedly an attempt to decentralize the web by using dubious technologies such as ?blockchain. The concept/buzzword has so far received a lot of criticism.

?IPFS is a peer-to-peer protocol that makes it possible to put files in a decentralized space with no reference to specific servers. The URLs are monstrous but at least the protocol makes decentralized peer-to-peer websites technically possible.

Web & Permacomputing

Overall, the web is not very compatible with permacomputing, particularly due to its low offline tolerance and its server-specific way of referring to resources.

However, its dominant status often justifies its use at least as a way to ensure some level of cross-platform compatibility and accessibility in today's computing world. An application that only supports a few platforms (such as iOS and Android) is usually an even worse idea than a web-only application. (For using a web browser as a target platform for arbitrary software, see web browser)

Some questions to ask when building something on the web:

  • Is this project something that actually needs the web or networking? If it can run locally, support running it locally.
  • What does the site require on the client side? (The size and system requirements of the smallest browser it can be used with, the energy requirements of the client-side scripting (if used), bandwidth requirements)
  • What does the site require on the server side? (Bandwidth, disk space, the memory/cpu requirements of the server-side scripting (if used))
  • How easy is it to use the resources offline? (If the site consists of multiple static files, think about giving the option of downloading the content as a single file)
  • Are you fine with the idea of people sharing your content on their own sites? (If yes, put it available under a free content licence and encourage people to spread it)
  • Are there ways to use the site with a non-web protocol/client? (?Permacomputing wiki can be edited via ?Git, for example)
  • What are you planning to use as a server? Purchasing of dedicated hardware should be avoided, but using something your community already has is a good idea. Using a time-sharing account to a small, local webhotel is always a better idea than buying "cloud computing" from a multinational corporation (even if you'll only get 99.9% uptime instead of 99.999%).

Software

A list of moderate-sized web browsers:

  • ?Dillo
  • ?Links
  • ?Lynx
  • ?W3C

A list of moderate-sized web servers:

  • ?lighttpd
  • ...

Common types of web applications: