För utvecklare
Så hålls dokumentationen aktuell
Docs-as-code: var sidorna bor, hur de byggs, varför varje PR måste röra dem, och hur 'senast uppdaterad' räknas.
Var sidorna bor
apps/docs/content/<språk>/<sektion>/<sida>.md, ett träd per språk: sv (standard och komplett), en, no, da, fi. Samma mappar och filnamn i alla språk. En sida som saknas på ett språk visas från sv med en notis "inte översatt ännu", så en länk är aldrig trasig och ett nytt språk kan växa sida för sida. sections.json per språk ger sektionernas namn.
Frontmatter:
---
title: "Sidans titel"
description: "En mening som visas i sökning och kort."
order: 2
updated: 2026-09-05
keywords: [ord, som, hjälper, sökningen]
---
Sektionerna och deras ordning finns i apps/docs/content/<språk>/sections.json. En ny mapp utan post där hamnar sist i navigationen med mappnamnet som titel.
Språk i adressen
Svenska ligger på roten (/frakt/sendify), övriga språk har prefix (/en/frakt/sendify, /no/...). Språkväljaren i sidhuvudet byter språk på samma sida, och varje sida deklarerar hreflang för alla språk så sökmotorer visar rätt version.
Bygget
apps/docs/scripts/build-content.mjs körs före next build och genererar navigation, HTML per sida, innehållsförteckning, sökindex och changelog. Markdown renderas med marked; tabeller, kodblock och citat (används som notiser) stöds.
Senast uppdaterad
Per sida: senaste git-commit som rört filen. Deploy-workflown hämtar hela historiken så datumet är exakt. I miljöer med grund historik (Vercel Preview) används updated: i frontmatter, sedan byggtiden. Startsidan och sidfoten visar den senaste uppdateringen i hela dokumentationen.
Changelog
/changelog byggs av merge-commits till main: PR-nummer, titel (med typ som Nytt, Rättat) och område från commit-prefixet.
Regeln: ingen produktändring utan docs
Workflown Docs required stoppar en pull request som ändrar admin, butik, designer, plattformskomponenter, migrationer eller edge functions utan att röra apps/docs/content/**. Den föreslår vilka sidor som troligen berörs. Etiketten docs-not-needed på PR:en, eller [no-docs] i titeln, släpper igenom rena refaktoreringar.
Publicering
Docs deploy kör vid varje push till main: bygger innehållet med full git-historik och publicerar till Vercel-projektet bunstack-docs (docs.bunstack.co). Saknas hemligheterna VERCEL_TOKEN och VERCEL_DOCS_PROJECT_ID byggs sajten men publiceras inte, med en notis i jobbet.