Battlemesh logo
  • Comments
  • Edit
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
    • Edit SideBar
  • Login

Navigation

  • RecentChanges
  • FindPage
  • PastEvents
  • ContactUs
  • HelpContents
  • attachment:gwit-slides.html of BattleMeshV15

Attachment 'gwit-slides.html'

Download

gwit: Human-scale Distributed Web over Git

Ivan Vilata (Degauss) ivan@selidor.net

Wireless Battle Mesh v15, 2023-05-11 (Calafou)

Some problems with the Web

  • Online dependency
  • Inefficient
  • Increasingly complex
  • A privacy nightmare
  • Bloated and hostile
  • Centralized and centralizing
  • Unreliable content
  • Fragile

A better Web

  • Human-scale
  • Privacy-respecting
  • Offline support
  • Lightweight
  • Decentralized/distributed
  • Authenticated content
  • Long term-proof

Some alternatives to the Web

  • Smolnet: simple, still online
  • Decentralized Web: resilient, quite complex
  • Web3: dubious incentives & resource-hungry

We need simpler solutions!

“Use git.”

“[…] we have been denying ourselves super powers for years simply by continuing to distribute our content in a fashion which makes it really impractical to grab sites wholesale, even though the bandwidth and disk space required to do this (for simple text files, anyway) has long been easy to come by.”

– Solderpunk, Low budget P2P content distribution with git

Enter gwit

gwit = Git (with PGP commit signatures) + URI format

  • For lightweight sites
  • Minimalist
  • From Git: distributed, replicated, authenticated
  • Full-history site replication on access
  • Offline browsing when possible
  • Git ubiquity + site replication: long-term access

https://gwit.site/

Lightweight decentralization

  • Petnames for sites (Spritely-style)
  • Site recommendations
  • Host & transport independence
    • Dumb HTTP server, Git forge, sneakernet, P2P…

URI examples

gwit://0x0123456789ABCDEF0123456789ABCDEFFEDCBA98/posts.html#latest
gwit://⁣│⁣Carol's blog⁣│⁣/test/page.gmi
gwit://⁣┊☞⁣Bob's site⁣⇒⁣Meet Carol⁣┊⁣/gemlog/
gwit://0x0123456789ABCDEF0123456789ABCDEFFEDCBA98:9c359d88d4882d17d673a7fb89c9af8349a4fb7c/breaking-news.gmi

Easy publication

  1. Put site files in a Git repo
  2. Create PGP key for site, put in the repo
  3. Add optional config file
  4. Sign commits with the site key
  5. Publish the repo anywhere

Support existing static Web & Gemini sites.

Be forgiving with author changing mind.

Example gwit.ini

[site]
name = Foo Bar
title = Foo Bar: the Bar for all your Foos
title-fr = Le Bar de Foo : le Bar pour tous vos Foos
desc = "It's the Foo Bar!\n\nFind your best Foos here."
desc-fr = "C'est le Bar de Foo !\n\nTrouvez vos meilleurs Foos ici."
license = CC-BY
root = output
index = index.gmi
remote = https://git.example.net/foo/bar-site.git
branch = gemini-output

[remote "hut-mirror"]
url = https://hut.example.org/foo-mirror/bar-site

[alt "gemini"]
base = gemini://foo.example.net/bar-site/

[link "Someone's site"]
key = 0x0123456789ABCDEF0123456789ABCDEFFEDCBA98
remote = https://hub.example.com/someone/my-gwit-site.git
branch = published

Web/Gemini to gwit

  • alt sections in gwit.ini
  • /.well-known/gwit.ini (RFC8615)
[site]
key = 0xFEDCBA98765432100123456789ABCDEF76543210
remote = https://git.example.net/foo/bar-site.git
branch = gemini-output

Lightweight reading

  • Key: secure site retrieval/update
  • Key: familiar Web-like navigation
  • No clients yet! (soon)

(Docs and other tools missing too.)

Deliberation welcome!

Help shape the thing:

  • gwit spec: https://git.sr.ht/~ivilata/gwit-spec
  • Mailing list: https://lists.sr.ht/~ivilata/gwit-spec

Thanks! 👋

New Attachment

File to upload
Rename to
Overwrite existing attachment of same name
twö plüs tën minüs 1?

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2023-05-05 09:17:10, 28.1 KB) [[attachment:APCLogoVectorEN.svg]]
  • [get | view] (2023-05-05 09:17:10, 46.4 KB) [[attachment:Exo.cat-logo.png]]
  • [get | view] (2024-05-22 10:53:36, 577.7 KB) [[attachment:MirageOS.pdf]]
  • [get | view] (2023-05-05 09:28:38, 43.1 KB) [[attachment:RIPE_NCC_Logo2015.png]]
  • [get | view] (2023-05-05 09:58:47, 99.9 KB) [[attachment:Uni_Vienna_Logo_2016.png]]
  • [get | view] (2023-03-28 04:43:26, 39.4 KB) [[attachment:WBMv15-logo-v0.png]]
  • [get | view] (2023-05-05 08:17:30, 93.4 KB) [[attachment:WBMv15-logo-v1.png]]
  • [get | view] (2024-05-17 12:50:44, 5493.0 KB) [[attachment:WBMv15-report.pdf]]
  • [get | view] (2024-05-17 12:44:25, 209.7 KB) [[attachment:WBMv15.pdf]]
  • [get | view] (2023-05-18 02:07:27, 17323.2 KB) [[attachment:WBMv15_chip_wars_2023.pdf]]
  • [get | view] (2023-05-18 02:10:18, 2375.5 KB) [[attachment:WBMv15_testbed_results.pdf]]
  • [get | view] (2024-05-17 12:45:10, 3.3 KB) [[attachment:battlemesh_places_more_compact.r]]
  • [get | view] (2023-01-29 15:08:21, 1965.5 KB) [[attachment:calafou1.jpg]]
  • [get | view] (2023-02-05 14:35:36, 1132.2 KB) [[attachment:calafou2.jpg]]
  • [get | view] (2023-05-09 19:40:10, 69.3 KB) [[attachment:calendar_see_better_titles.png]]
  • [get | view] (2023-05-05 15:04:56, 9.1 KB) [[attachment:ccc-logo.png]]
  • [get | view] (2023-01-29 15:09:54, 1815.2 KB) [[attachment:church1.jpg]]
  • [get | view] (2023-01-29 15:09:59, 2148.0 KB) [[attachment:church2.jpg]]
  • [get | view] (2023-01-29 15:10:04, 881.1 KB) [[attachment:church3.jpg]]
  • [get | view] (2023-01-29 15:12:00, 994.6 KB) [[attachment:communal_area.jpg]]
  • [get | view] (2023-02-05 14:29:36, 518.9 KB) [[attachment:communal_area2.jpg]]
  • [get | view] (2023-05-05 09:17:10, 8.3 KB) [[attachment:freifunk.png]]
  • [get | view] (2023-05-05 09:17:10, 13.5 KB) [[attachment:funkfeuer_logo.png]]
  • [get | view] (2024-05-22 10:49:23, 0.7 KB) [[attachment:get-ics.sh]]
  • [get | view] (2024-05-22 10:53:22, 6.5 KB) [[attachment:gwit-slides.html]]
  • [get | view] (2024-05-22 10:53:27, 3.5 KB) [[attachment:gwit-slides.md]]
  • [get | view] (2023-05-06 10:07:45, 369.2 KB) [[attachment:howtofindcalafou.png]]
  • [get | view] (2024-05-22 10:48:58, 2.4 KB) [[attachment:ics-to-moinmoin.py]]
  • [get | view] (2023-05-05 09:17:10, 8.2 KB) [[attachment:libremesh_logo.png]]
  • [get | view] (2023-05-05 09:17:10, 8.2 KB) [[attachment:libremeshlogo.png]]
  • [get | view] (2023-02-05 14:29:45, 1169.4 KB) [[attachment:main_hall1.jpg]]
  • [get | view] (2023-02-05 14:29:50, 401.8 KB) [[attachment:main_hall2.jpg]]
  • [get | view] (2023-05-05 09:17:10, 24.6 KB) [[attachment:ninuxorglogo.png]]
  • [get | view] (2023-05-06 09:10:05, 66.6 KB) [[attachment:openwisp-logo.png]]
  • [get | view] (2023-05-05 09:51:02, 127.4 KB) [[attachment:qaul-logo-Icon1024.png]]
  • [get | view] (2023-05-05 11:33:38, 9.4 KB) [[attachment:upc-logo.png]]
  • [get | view] (2023-01-29 15:11:46, 1170.8 KB) [[attachment:workshop_space_1.jpg]]
  • [get | view] (2023-01-29 15:11:50, 872.5 KB) [[attachment:workshop_space_2.jpg]]
  • [get | view] (2023-01-29 15:11:55, 926.6 KB) [[attachment:workshop_space_3.jpg]]
 All files | Selected Files: delete move to page copy to page
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01