327ecd4ff2c1f1c6bc2ff164131fe265dc6d29d7
The balance sheet only showed class 1-2 accounts but did not include the period result (årets resultat) from class 3-8 income/expense accounts. Before year-end closing, this caused a balance discrepancy equal to the period's profit/loss. Now calculates the net result and adds it as a synthetic "Årets resultat" section under equity. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
erp-base
Swedish accounting SaaS for sole traders (enskild firma) and limited companies (aktiebolag). Implements double-entry bookkeeping compliant with Swedish accounting law (Bokforingslagen), including VAT handling, tax reporting, and 7-year document retention.
Tech Stack
- Framework: Next.js 16 (App Router), React 19, TypeScript (strict)
- Database: Supabase (PostgreSQL + RLS + magic link auth)
- Styling: Tailwind CSS 4 + shadcn/ui
- Hosting: Vercel
- Integrations: Enable Banking (PSD2), Anthropic SDK, OpenAI (embeddings), Resend (email), web-push (VAPID)
Getting Started
npm install
npm run dev
Commands
npm run dev # Start development server
npm run build # Production build
npm run lint # ESLint
npm test # Run all Vitest tests
Documentation
See CLAUDE.md for comprehensive project documentation including architecture, bookkeeping engine, extension development, and database conventions.
Languages
TypeScript
93%
PLpgSQL
5.8%
JavaScript
0.4%
HTML
0.3%
MDX
0.2%
Other
0.1%