Stop paying for your bokföring.

The first fully open source ERP built for Swedish businesses.

~/gnubok

Swedish accounting software is a racket.

299kr/mo

Overpriced basics

Basic accounting for a solo företagare shouldn't cost more than your Spotify subscription.

Vendor lock-in

Your data, their rules

Try exporting your full history from your current provider. We'll wait.

Closed source

Black box financials

You can't audit the code handling your business finances. That should worry you.

One-size-fits-none

Enterprise bloat, solo pricing

You're paying for features designed for enterprise, but you're running a small business.

Everything you need. Nothing you don't.

Built specifically for Swedish businesses, not adapted from a one-size-fits-all platform.

Bokföring

Full double-entry bookkeeping with the Swedish BAS-kontoplan. SIE4 import and export for seamless migration.

Fakturering

Create and send invoices with automatic påminnelsehantering.

Momsredovisning

Automatic VAT calculation and reporting ready for Skatteverket.

Coming soon

Årsbokslut

Guided year-end closing workflows. Generate K2/K3 reports with confidence.

Hosted

PSD2 Open Banking

Connect directly to Swedish banks. Automatic transaction import and reconciliation via open banking APIs.

Coming soon

BankID

Secure authentication with BankID. Sign invoices, approve payments, and verify identity - the Swedish way.

AI-powered

Automatic transaction categorization and receipt scanning. Bookkeeping that learns your business.

Coming soon

API-first

Full REST API. Build integrations, automate workflows, or connect to your existing stack.

GET /api/invoices?status=unpaid

Your data. Your rules.

Security and transparency aren't features - they're the foundation.

Data stays in Sweden

Hosted on Swedish/EU infrastructure. Your financial data never leaves the jurisdiction.

Encrypted at rest & in transit

TLS 1.3, AES-256 encryption. Your bokföring is safer here than in a spreadsheet.

Open source = auditable

Every line of code handling your finances is public. No black boxes, no hidden logic.

Pricing so simple it's almost suspicious.

Self-hosted

0kr

Forever. Seriously.

  • Full source code
  • Docker ready
  • BAS-kontoplan included
  • Community support
  • AGPL-3.0 license
  • Unlimited companies

Hosted

Most popular
Free

No credit card required.

  • Everything in self-hosted
  • PSD2 open banking integration
  • BankID authentication (coming soon)
  • AI-powered bookkeeping
  • Managed PostgreSQL & backups
  • Swedish data residency
  • Email support
  • Zero maintenance

Luka

Coming soon
Autonomous

An AI agent that runs your books end-to-end.

  • Everything in Hosted
  • Fully autonomous bookkeeping
  • Luka runs your books 24/7
  • Auto-captures receipts from email
  • Self-filing VAT returns
  • Handles Skatteverket correspondence
  • Proactive insights & reports

Built in the open. Owned by everyone.

gnubok is AGPL-3.0-licensed. Inspect the code, contribute features, fork it - it's yours.

terminal
$ git clone https://github.com/erp-mafia/gnubok.git
Cloning into 'gnubok'...
✔ Done. Welcome to the revolution.

Build industry solutions for your clients.

gnubok is a platform, not just a product. Use the extension API to build vertical ERP solutions on top of a compliant Swedish accounting core, then deploy them for your clients.

What agencies are building

Restaurang

POS integration, dagskassor, personalschema with Swedish moms rules built in.

Bygg & Hantverkare

ROT-avdrag automation, project costing, subcontractor invoicing.

E-handel

Shopify/WooCommerce sync, automated bokföring for every order.

Konsultbolag

Time tracking, project billing, multi-currency for international clients.

Extend with the API

extensions/restaurang/index.ts
import type { Extension } from '@/lib/extensions/types'
export const restaurang: Extension = {
id: 'restaurang',
name: 'Restaurang',
eventHandlers: [{
eventType: 'transaction.synced',
async handler(payload, ctx) {
// Auto-categorize POS sales
for (const tx of payload.transactions)
if (tx.merchant_name?.includes('iZettle'))
await ctx.supabase
.from('transactions')
.update({ suggested_account: '3001' })
}],
}

TypeScript extension API with event handlers, custom routes, and settings panels. Ship a complete vertical ERP for your clients' industry.