Ga naar inhoud

Case study · Live product

Cijfera

Boekhoudplatform voor Nederlandse zzp'ers. Facturen, offertes, uitgaven en BTW op één plek — zonder abonnement. Solo ontworpen, gebouwd en live gehouden.

Overview

Cijfera is een boekhoudapplicatie voor Nederlandse zzp'ers. De kern is bewust smal: factureren, uitgaven bijhouden, BTW-overzicht en KOR. Geen bankkoppeling, geen Digipoort, geen verplicht abonnement. Een gratis account is genoeg om te starten.

Het probleem

Nederlandse zzp'ers betalen vaak €15–20 per maand voor software die ze vooral gebruiken om te factureren en hun BTW-overzicht bij te houden. Spreadsheets zijn gratis, maar nummering, PDF, KOR en kwartaalcijfers blijven handwerk. De meeste tools zijn niet rond de Nederlandse aangifte gebouwd.

Mijn oplossing

Cijfera dekt die kern, in het Nederlands, zonder abonnement. Facturen die de deur uit kunnen. Een BTW-overzicht dat aansluit op de aangifte, niet op een generiek 'tax percent'. KOR als eersteklas pad, niet als afterthought.

Product

Facturen en offertes
Concept, openstaand, betaald. Offerte naar factuur, creditfacturen, PDF met KvK en BTW-id, herinneringen.
Uitgaven
Categorieën, openstaande posten, optionele import van bonnen via de OpenAI API.
BTW en KOR
Tarieven 21/9/0, kwartaaloverzicht, KOR, verlegde BTW en EU/export-regimes zoals ze in de aangifte terugkomen.
Account en toegang
Sessies via Better Auth, optionele passkeys (WebAuthn) en 2FA.

Architecture

Een Next.js-applicatie met een relationele database. De browser praat met de app; de app schrijft naar PostgreSQL, stuurt mail via Resend, slaat bijlagen op in object storage en roept de OpenAI API aan voor optionele bon-import. Auth zit in Better Auth, niet in een zelfgebouwde session-laag.

  1. Next.js · TypeScript
  2. PostgreSQL · Drizzle ORM
  3. Better Auth · passkeys · 2FA
  4. React-PDF · Resend · object storage · OpenAI

Tech stack

  • Next.js
  • TypeScript
  • PostgreSQL
  • Drizzle ORM
  • Better Auth
  • OpenAI API

AI-integratie

Bonnen en inkoopfacturen kunnen optioneel via de OpenAI API worden ingelezen. Het is een hulpmiddel met quota, geen vervanging van het grootboek. De gebruiker blijft verantwoordelijk voor wat er in de administratie landt.

Database

Facturen, regels, betalingen en BTW-rubrieken horen in een relationeel model met constraints, geen documentstore. Drizzle houdt schema en queries in TypeScript. Factuurnummers zijn uniek en opeenvolgend per administratie — dat zit in PostgreSQL (sequences/constraints), niet in de UI.

Design decisions

  1. PostgreSQL + Drizzle

    Boekhouden is relaties en invariants. Drizzle houdt schema en queries in dezelfde taal als de rest van de app.

  2. Nederlandse BTW in het datamodel

    Geen generieke 'tax percent'. Aparte regimes en behandelingen (KOR, 1c, verlegging) zodat het overzicht aansluit op de aangifte.

  3. Bewust geen bankkoppeling

    Cijfera blijft licht: facturen, uitgaven, BTW. Geen Digipoort, geen verplicht abonnement. De core blijft solo te onderhouden en gratis.

  4. PDF en mail als productfeatures

    Facturen moeten de deur uit. PDF via React-PDF, bijlagen via object storage, mail via Resend — geen handmatige export als enige pad.

Wat ik zelf heb gebouwd

Alles wat live staat, heb ik zelf gebouwd en in productie gebracht. Geen team, geen agency-laag.

  • Productkeuzes en scope
  • Datamodel en migraties
  • Auth, passkeys en 2FA
  • UI van overzicht tot factuur
  • PDF-generatie en mail
  • AI-import van bonnen
  • Marketing-site

Challenges

Nederlandse OB is geen percentageveld. Cijfera splitst omzet en voorbelasting naar rubrieken die in de aangifte terugkomen: 21, 9, 0, 1c, privégebruik, binnenlandse verlegging, KOR. Concepten tellen niet mee; openstaand en betaald wel. Deadlines hangen aan het vorige kwartaal, niet aan een Amerikaanse tax-engine.

Factuurnummers moeten uniek en opeenvolgend zijn per administratie. Dat zit in PostgreSQL, niet in de UI. Auth is Better Auth: sessies, optionele passkeys en 2FA — omdat boekhouden om toegang gaat, niet om een magic-link-demo.

AI-import is een hulpmiddel met quota. PDF, object storage en mail horen bij het product: een factuur die niet de deur uit kan, is geen factuur. Bankkoppeling en Digipoort zijn bewust weggelaten zodat de core solo te onderhouden blijft.

Resultaat / status

Cijfera is live op cijfera.nl: gratis account, Nederlandse KvK, facturen en BTW-overzicht zonder proefperiode. Geen gebruikersaantallen op deze pagina — het bewijs is het werkende product.

Productvisuals

Voorbeelddata, geen live cijfers van gebruikers.

cijfera.nl

Voorbeelddata

cijfera.nl

Voorbeelddata