Backend-free web/apps

Using generic protocols instead of custom backend code frees up your app in many ways. Enabling users to bring their own backend has the following benefits:

  • Longivity – the app does not depend on a backend to be maintained.
  • Privacy – users own their own data.
  • Scalability – no central server.

Some web-functionality needs a server. Examples are communication, storage, etc. I have landed on the following protocols:

  • Network
    • MQTT over WebSocket for pub/sub and signalling
    • TURN/STUN server + WebRTC peer data channels
      • coturn
    • I also looked at WAMP, libp2p(part of IPFS), WebTorrent, STOMP, ...
  • Storage
    • WebDAV with CORS and Basic Auth
    • Solid – not mature yet, but may be the best bet in the long run
    • I also looked at CouchDB, remoteStorage, IPFS, hoodie, MyCRUD(my own attempt in this direction), ...
      • CouchDB replication protocol(CouchDB, CouchBase, PouchDB) is a runner-up
  • Login/identity/configuration-management
    • OpenID Connect
    • Need a protocol to get MQTT/ICE/WebDav-config given app+login.