varianter / variant.no

Variant nettside. Åpen og tilgjengelig for alle.
https://www.variant.no
Other
11 stars 4 forks source link

Ha en plan og veg fremover for hvordan vi kan støtte både Sverige og Norge (+) i samme løsning #512

Closed mikaelbr closed 2 months ago

mikaelbr commented 2 months ago

Målsetting

Målet vårt er å utvikle en løsning som effektivt støtter både Sveriges (.se) og Norges (.no) nettsteder, samtidig som vi opprettholder en felles kildekodebase og gir hvert land mulighet til å administrere sitt eget innhold og brukergrensesnitt.

Løsningsoversikt

Vi har valgt å benytte et template med Next.js + Sanity-stack for å oppnå dette. Løsningen er designet for å være fleksibel, slik at hvert land kan tilpasse sitt innhold og grensesnitt etter egne behov, mens de drar nytte av en felles kodebase.

  1. Struktur

    • Separate Sanity Studio Prosjekter: Sverige (.se) og Norge (.no) har hvert sitt Sanity Studio-prosjekt. Dette gir hvert land full kontroll over sitt eget innhold og brukergrensesnitt (UI).
    • Felles Kildekode: Selv om hvert land har sitt eget Sanity Studio-prosjekt, deler de samme kildekodebase. Dette er mulig ved å bruke miljønøkler som peker til de respektive Sanity-prosjektene for hvert land.
  2. Innholdshåndtering

    • Eie av Innhold og UI: Hvert land kan administrere sitt eget innhold uavhengig i sitt Sanity Studio. Dette sikrer at tilpasning og redigering kan gjøres lokalt uten å påvirke den andre nasjonens prosjekt.
    • Deling av Innhold på Tvers: For innhold som skal deles mellom .no og .se, som for eksempel kunde-caser eller blogginnlegg, setter vi opp separate Sanity-prosjekter som fungerer som “delerprosjekter.”
      • Eksempel: Hvis Norge ønsker å vise blogginnlegg som er opprettet i Sverige, kan vi opprette et “delerprosjekt” i Sanity som gjør det mulig å hente innholdet via API-er.
  3. Teknisk Implementering

    • Miljønøkler og API-integrasjon:
      • Hvert prosjekt i Sanity Studio benytter spesifikke miljønøkler for å koble til sitt eget prosjekt.
      • Når en side i Next.js må hente data fra et annet Sanity-prosjekt, benyttes funksjoner som client.fetch(), loadQuery(), eller useQuery() med miljønøklene til det aktuelle prosjektet.
      • Eksempel: På en norsk bloggside kan vi konfigurere kildekoden slik at dersom den statiske “blog”-siden har innhold, vil den hente blogginnlegg fra det svenske Sanity-prosjektet. Dette gjøres ved å tilpasse forespørselen med riktig miljønøkkel.

Fordeler med Løsningen

christinaroise commented 2 months ago

Update:

The current setup will have two studios configured within the same repository: shared and studio.

Studio is for unique content related to location (.no vs .se) Shared has content accessible to both locations (blog, costumer cases, e.g.)

https://github.com/varianter/variant.no/pull/526