Ortem Technologies

    Open Accounting — Multi-Tenant FinTech SaaS for Estonian SMBs

    Built Open Accounting — a self-hosted, multi-tenant accounting platform for Estonian SMBs and accountants. Full double-entry bookkeeping, Estonian payroll (TSD/KMD), bank reconciliation, invoicing with PDF generation, and a cross-tenant accountant review queue — all on a modern Go + SvelteKit stack.

    Client

    Open Accounting

    Project Value

    $140,000+

    Rating

    5.0/5.0
    Start a Similar Project
    Open Accounting — Multi-Tenant FinTech SaaS for Estonian SMBs

    The Challenge

    Estonian SMBs and their accountants were caught between two bad options: expensive proprietary tools like SmartAccounts and Merit that lock data in vendor clouds, or general-purpose accounting software that knows nothing about KMD VAT declarations, TSD payroll exports, or the specific workflows Estonian accountants run across five to twenty client companies simultaneously. What they needed was an open-source platform with genuine Estonian compliance built in, tenant isolation that actually worked, and an accountant dashboard that gave a cross-portfolio view without switching between accounts.

    The Goal

    Deliver a self-hosted, production-grade, multi-tenant accounting SaaS with true double-entry bookkeeping, Estonian KMD/TSD compliance, payroll for Estonian tax law, bank reconciliation with auto-matching, and a dedicated accountant review queue that rolls up overdue invoices, unmatched transactions, and VAT/payroll compliance status across all client tenants in one dashboard.

    Solution & Implementation

    1Analysis

    Conducted deep workflow analysis with Estonian accountants and SMB owners to map the exact pain points: manual KMD XML preparation, TSD Annex 1 generation, bank statement imports from LHV/SEB/Swedbank, and the overhead of managing multiple company environments in separate browser tabs. Mapped seven core modules that together covered 95% of monthly accountant workflows.

    2Designing Solution

    Architected the platform on schema-per-tenant PostgreSQL isolation — each company's data lives in its own schema, eliminating any risk of cross-tenant data leakage. Built a Go backend with Chi router and sqlc-generated queries for type-safe, high-performance data access. The SvelteKit frontend uses Svelte 5 with compile-time i18n (Paraglide-JS) for zero-runtime translation overhead in both English and Estonian.

    3Customizing Business Logic

    Built a complete accountant review queue with cross-tenant portfolio rollup — showing overdue invoices (€8,450 across 4 tenants in the screenshot), unmatched bank transactions (19), and KMD/TSD compliance status in a single dashboard surface. Integrated Estonian payroll: income tax, social tax, unemployment insurance, II pillar pension, TSD Annex 1 XML export for e-MTA, and monthly payroll runs with detailed payslips. Built KMD VAT declaration generation with e-MTA XML export and date-aware VAT rate tracking.

    4Scale & Optimize

    Implemented JWT access/refresh tokens plus tenant-scoped API tokens for automation. Built a plugin marketplace system with 27+ event hooks, UI slot injection, and two-level control (instance-wide install, per-tenant enable). Added a Go CLI (`oa`) for operator automation — CSV imports for contacts, employees, invoices, journal opening balances, and document uploads for bank reconciliation evidence. Full test coverage: Go unit tests, backend integration tests with real PostgreSQL, Vitest for frontend, and Playwright smoke suite.

    Results & Impact

    Schema-per-Tenant

    Tenant Isolation Model

    4+ Companies, 1 Dashboard

    Cross-Tenant Portfolio

    KMD + TSD + e-MTA Export

    Estonian Compliance

    €21,450/run, 14 Employees

    Payroll Accuracy

    27+ Hook Points

    Plugin Events

    Schema-per-tenant PostgreSQL architecture: complete data isolation between companies with zero cross-tenant bleed

    Cross-tenant accountant review queue: overdue invoices, unmatched bank transactions, KMD/TSD status across all clients in one view

    Full Estonian payroll: income tax, social tax, II pillar pension, TSD Annex 1 XML export for e-MTA — all calculated correctly

    KMD VAT declaration generation with e-MTA XML export and date-aware VAT rate tracking for EU compliance

    Bank reconciliation with intelligent auto-matching rules and transaction import from Estonian banks (LHV, SEB, Swedbank)

    Plugin marketplace with 27+ event hooks and UI slot injection — extend any part of the platform without forking

    Go CLI for operator automation: CSV imports, document uploads, journal opening balances, API token management

    Dual test pyramid: Go unit + integration tests (real PostgreSQL), Vitest frontend tests, Playwright E2E smoke suite

    Key Technologies

    Go 1.24+SvelteKit 2 / Svelte 5PostgreSQL 16+ (Schema-per-Tenant)TypeScriptDocker / Docker ComposeJWT + API Token Authsqlc + pgx/v5Paraglide-JS (i18n)Playwright + VitestGitHub Actions CI/CDSwagger / OpenAPI

    Project Gallery

    Open Accounting — Multi-Tenant FinTech SaaS for Estonian SMBs screenshot 1
    "Managing five client companies used to mean five browser tabs and five different logins. The accountant review queue changed that completely — I can see every overdue invoice, unmatched transaction, and compliance status across all my clients in one place before I even have my morning coffee. The KMD and TSD exports save me three hours every quarter."
    M

    Mihkel Rein

    Open Accounting

    Ready to Build Something Amazing?

    Let's discuss how we can help transform your business with innovative technology solutions.

    Start Your Project