summaryrefslogtreecommitdiff
path: root/DEVELOP.md
blob: 6a163df723a874291fdc683d8cc4c398b78c4ef2 (plain)

Designing types of website hosting

Sustainable website hosting is a balancing act among multiple qualities and tools.

Qualities

content reading

content search

Ideal would be for hosting tools to pre-compute static search index and serve e.g. Lunr.js for dynamic client-rendered result page.

Additionally, larger sites should offer and advertise server-rendered search, compliant with the OpenSearch API.

content editing

Hosting tools should ideally support the open Micropub standard API, offer a web-based client for inline use, and encourage use of alternative native Micropub clients.

content markup

Plain source files

Change tracking

Tools

MoinMoin

  • [-] read: dynamic server-rendered pages + static media
  • [-] inline-search: dynamic server-rendered result page
  • [-] remote-search: unsupported
  • [-] inline-edit: proprietary WSGI-based editing form
  • [-] remote-edit: unsupported
  • [-] markup: proprietary creole
  • [x] source: plaintext files and plain media files
  • [-] tracking: proprietary revision control system

Ikiwiki

  • [x] read: static server-pre-rendered pages and media
  • [-] inline-search: dynamic server-rendered result page
  • [-] remote-search: unsupported
  • [-] inline-edit: proprietary CGI-based editing form
  • [x] remote-edit: git hook
  • [x] markup: semi-standard Markdown with proprietary macros
  • [x] source: plaintext files and plain media files
  • [x] tracking: git, content optionally separated and/or layered

MkDocs

  • [x] read: static server-pre-rendered pages and media
  • [x] inline-search: static pre-computed index + dynamic client-rendered result page
  • [-] remote-search: unsupported
  • [-] inline-edit: unsupported
  • [x] remote-edit: git hook
  • [x] markup: semi-standard Markdown with proprietary macros
  • [x] source: plaintext files and plain media files
  • [x] tracking: git, content optionally separated and/or layered

Zola

  • [x] read: static server-pre-rendered pages and media
  • [x] inline-search: static pre-computed index + dynamic client-rendered result page
  • [-] remote-search: unsupported
  • [-] inline-edit: unsupported
  • [x] remote-edit: git hook
  • [x] markup: standard Commonmark with TOML metadata header
  • [x] source: plaintext files and plain media files
  • [x] tracking: git, content optionally separated and/or layered

Ideal

  • [x] read: static server-pre-rendered pages and media
  • [x] inline-search: static pre-computed index + dynamic client-rendered result page
  • [x] remote-search: static pre-computed index + dynamic server-rendered OpenSearch API
  • [x] inline-edit: Micropub interface + web-based Micropub client
  • [x] remote-edit: Micropub interface + native Micropub client, and git hook
  • [x] markup: standard Commonmark with YAML or TOML metadata header
  • [x] source: plaintext files and plain media files
  • [x] tracking: git, content optionally separated and/or layered