Drie dingen maken een app
Een installeerbare site heeft een manifest nodig dat hem een naam geeft, een service worker die pagina's op het apparaat bewaart, en een pagina om te tonen als een pagina er niet is. In loam bouwt of onderhoudt niemand ze — de engine leidt alle drie af uit wat de site al over zichzelf zegt.
Gemaakt uit wat de site zegt
/manifest.json komt uit de naam van de organisatie, het icoon van de site en de themakleuren. Verander de naam of het icoon op de site en de app volgt. Het manifest en de worker hebben geen themalaag: één verkeerde regel in een van beide breekt de installatie op elk apparaat, dus ze zijn van de engine. Wat een site vormgeeft, is de data waaruit ze gemaakt worden.
Wat het apparaat bewaart
/sw.js bewaart wat een bezoeker opende en loopt eens per dag de sitemap af om de rest te bewaren — de sitemap is al de lijst van wat bestaat, dus ook hier valt niets te onderhouden. Pagina's komen eerst van het netwerk en vallen terug op de kopie; assets met een versie blijven tot ze veranderen; formulieren worden nooit aangeraakt. Met een verbinding wint altijd de live pagina.
Offline- en installatiepagina's
/offline rendert als al het andere weg is; /install legt per browser uit hoe je de site op een beginscherm zet. Een theme kan beide pagina's overnemen met een bestand met dezelfde naam. De site dringt geen installatie op — de browser weet wanneer iemand vaak genoeg terugkomt om er een te willen.
Voor de bezoeker
Installeren is een eigenschap van het apparaat: geen account, niets over de persoon wordt ergens heen gestuurd, ongedaan gemaakt door het icoon te verwijderen. Een site op het beginscherm die opent zonder laadbalk en werkt in een tunnel — zonder store, review, tweede codebase of updatecyclus. Voor de eigenaar is het één ding minder dat bestaat.