Hoppa till innehåll

Så byggs sajten

Den här sidan är för dig som vill veta varför det fungerar som det gör, eller som ska förklara det för någon annan. Du behöver den inte för att skriva innehåll.

CMS:et är Payload, en självhostad installation som körs som en Node-tjänst på Render. Innehållet ligger i en SQLite-databas på en disk som överlever omstarter, och säkerhetskopior skickas till Cloudflare R2. Uppladdade bilder lagras också på R2.

En enda installation betjänar hela federationen. Varje sangha är en egen tenant, och all läsning och skrivning filtreras på den. En inloggad redaktör kommer bara åt sin egen sajts innehåll.

Webbplatserna är byggda i Astro och ligger på Netlify, en sajt per sangha. Även den här handboken ligger där.

När en besökare öppnar en sida hämtar sajten innehållet från Payloads API och gör sidan i ordning. Den färdiga sidan sparas sedan i Netlifys cache, så att nästa besökare får den direkt utan att CMS:et frågas igen.

Läsningen kräver ingen nyckel. Publicerat innehåll är öppet i API:et, vilket är samma innehåll som ändå visas publikt. Utkast och versioner ligger bakom inloggning.

När du publicerar, avpublicerar eller tar bort något, eller ändrar i Inställningar, mediefilerna eller något annat innehåll, säger CMS:et till varje sajt att tömma sin cache. Det sker ungefär två sekunder efter ändringen. Nästa besökare får en nygjord sida, så ändringen syns inom några sekunder.

Alla sajter töms varje gång, inte bara den du redigerat. Därför syns ett evenemang från en lokal sangha på den centrala sajtens evenemangssida lika fort som på den egna.

Ett utkast som bara sparats, eller som sparats automatiskt, skickar ingen signal. Det är publiceringen som räknas.

Skulle signalen gå förlorad byts varje sparad sida ändå ut efter som mest ungefär tio minuter.

Webbläsaren kontrollerar alltid med sajten om sidan är ny, så en vanlig omladdning räcker.

Sökrutan och sajtkartan för sökmotorer tas fram när sajten byggs och läggs ut, till exempel efter en ändring i koden. En helt ny sida finns direkt på sin adress och i menyerna, men kan saknas i sökresultaten tills nästa gång sajten läggs ut.

Sajterna låg tidigare på Contentful, och flera gör det fortfarande. Vilket system en sajt läser från styrs av en inställning i koden, en sajt i taget, och den går att slå tillbaka.

Frontend-koden ser ingen skillnad. Båda systemen översätts till samma interna format innan sidorna görs i ordning, vilket är hela poängen med upplägget: att byta CMS ska inte kräva att sajten skrivs om.

Förhandsgranskningen hämtar utkasten direkt från Payload, se Förhandsgranska.

VadVar
CMS:etemdahlstrom/plum-payload
Webbplatsernaemdahlstrom/plummis
Den här handbokenemdahlstrom/plummis-doc