-
Notifications
You must be signed in to change notification settings - Fork 7
Övergripande arkitektur
Gredor utvecklades i syfte att vara ett kostnadsfritt alternativ för digitala årsredovisningar, främst för de småföretagare som tidigare skickat in på papper för att de inte velat betala för digitala lösningar. Tjänsten har stöd för K2-årsredovisningar för aktiebolag utan krav på revisionsberättelse, då det är dessa som passar in bäst på huvudmålgruppen och det finns fördelar med att hålla verktyget och utvecklingsprocessen enkla. Gredor blev godkänt för årsredovisningar inom dessa avgränsningar av Bolagsverket hösten 2025, och öppnade 1 februari 2026.
I praktiken kan Gredor även konkurrera med betaltjänster för digitala årsredovisningar, även om det inte är det ursprungliga syftet.
Se Bolagsverkets hemsida för information och dokumentation om den mottagande tjänsten som Gredor är ansluten till.
"Frontend" och "backend" är kanske inte de mest passande termerna här, men används för att beskriva det som händer i användarens webbläsare respektive det som händer på serversidan.
Gredor är lite speciellt på så sätt att frontenden innehåller i princip all logik, och backenden används i princip bara för att kommunicera med Bolagsverket och BankID. Detta för att utnyttja faktumet att iXBRL kan integreras i XHTML och därmed byggas upp i webbläsaren med live-förhandsgranskning.
Det finns dock en nackdel med detta upplägg, och det är att t.ex. tillägg till webbläsaren kan injicera sin egna kod. Gredor försöker upptäcka och neutralisera detta, åtminstone när det kommer till injicerad CSS. Annars bör Bolagsverkets API upptäcka att det finns otillåtna saker i iXBRL:en i de flesta fall, och returnera ett felmeddelande.
Datamodellen grundar sig på att mappa taxonomin för K2-årsredovisningar i aktiebolag. Målet är att alla fält ska hanteras programmatiskt utifrån deras typ m.m., med så lite specialhantering som möjligt för specifika fält. Den grundläggande beståndsdelen är Belopprad, som representerar en rad i årsredovisningen. Årsredovisningen i sin helhet består av en mängd belopprader och lite annat smått och gott, se datatyp Arsredovisning.
Vue valdes pga sina fördelar med reaktivitet och prestanda. Med facit i hand var det ett passande ramverk. Dock lärde sig @stafak under tiden och koden blev därför inte den snyggaste.
Bootstrap togs in dels för att få färdig modal- och tooltip-funktionalitet, och dels för att göra det enklare att få ett enkelt "tillräckligt snyggt" GUI på plats. Det kan dock ha gjort koden lite rörig med alla class-modifiers.
Historiskt har ett problem med Bootstrap varit att alla använder det. Men eftersom Bootstrap blivit mindre populärt med tiden i relation till andra alternativ, samt att Gredor har lite egen styling/anpassningar, så har applikationen ett lite unikt utseende ändå.
Det finns en ambition att hålla antalet bibliotek minimalt, speciellt när det kommer till produktionsbibliotek. I JS-ekosystemet är det dock inte helt lätt i praktiken i och med alla transistiva småpaket som tenderar att plockas in.
Alla produktionsberoenden ingår i den byggda artefakten. Det vill säga, inga skript, typsnitt eller liknande laddas in från externa CDN:er. Detta är bra ur både säkerhets- och prestandaperspektiv.
Ingen spårning i stil med Google Analytics eller Matomo i frontenden. Men årsredovisningar som skickats in till Bolagsverket blir allmän och offentlig handling; om man vill följa upp hur Gredor-årsredovisningar ser ut i verkligheten kan man hämta dem från Bolagsverkets värdefulla datamängder.
gredor-frontend automattestas med Cypress. Alla kombinationerna av operativsystemen Windows/macOS/Ubuntu och webbläsarna Edge/Firefox/Chrome testas, dessutom testas både nuvarande version och beta-versionen av varje webbläsare. På så sätt uppnås en hyfsad täckning av användarnas miljöer. Testerna körs på varje PR, samt nattligen på master-grenen.
Egentligen hade det varit bättre med en blandning av enhetstester och Cypress-tester, istället för att Cypresstesterna ska vara mer eller mindre heltäckande, men nu är det som det är.
LLM-verktyg har använts vid vissa tillfällen under utvecklingen av Gredor, på både gott och ont. Följande principer har då följts, och ska fortsätta följas:
- All genererad kod har en människa granskat och förstått sig på
- AI-verktyg används inte till generering av ljud-/bildmedia
- Kodbas, dokumentation och artekfakter är riktade till människor (dvs ingen AGENTS.md eller liknande, sen får man såklart inkludera "människodokumentation" i AI-modellers kontext)
Text som visas för användaren behöver ofta justeras efter generering, i och med att många av de populära LLM:erna brukar generera text som är överdrivet klyschig och marknadsförande (om man inte instruerar bort det), samt att texten ofta missar de viktiga sakerna att kommunicera.
Kostnadsfria tjänster lär löpa större risk för att missbrukas. Största risken skulle vara att någon får för sig att jävlas och ladda upp en stor mängd årsredovisningar till en massa olika personers "egna utrymmen" hos Bolagsverket. Gredor använder sig av BankID-legitimering vilket skyddar mot spam på två sätt:
- Man kan bara ladda upp årsredovisningar till sitt egna "eget utrymme" hos Bolagsverket, inte andras
- Det lär vara mindre attraktivt att missbruka systemet om man behöver avslöja vem man är (förutsatt att man inte använder ett kapat BankID)
Legitimeringar sparas i backenden i 7 dygn och raderas sedan. Har man som användare legimiterat sig behöver man inte göra det igen så länge man har kvar cookien som sparats samt att dessa 7 dygn inte har passerat.
Gredor är byggt för att dra nytta av viewports med bredd på minst 1366px men funkar bäst på ännu bredare viewports.
Det finns i dagsläget inga planer för mobilstöd då det är svårt att få till på ett bra sätt med Gredors uppdelning mellan inmatning och förhandsgranskning. Detta innebär dock också att det tyvärr kan vara svårt att använda Gredor om man använder tillgänglighetsverktyg eller liknande för att skala upp skärmen.
Bolagsverket ska utveckla en egen kostnadsfri tjänst för digitala årsredovisningar. Det återstår att se hur den kommer se ut, vilka funktioner/begräsningar som kommer finnas, och vilket mervärde som Gredor kommer att kunna erbjuda. En gissning är att det inte kommer finnas någon funktion för SIE-import, men att Bolagsverket kommer kunna hålla ihop flödena på ett bättre sätt genom att ha ett inloggat läge med eget utrymme (vilket Gredor inte har i dagsläget, men kanske får i framtiden). Så länge Gredor kan erbjuda ett bra mervärde lär det finnas kvar.