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.
- Next.js · TypeScript
- PostgreSQL · Drizzle ORM
- Better Auth · passkeys · 2FA
- 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
PostgreSQL + Drizzle
Boekhouden is relaties en invariants. Drizzle houdt schema en queries in dezelfde taal als de rest van de app.
Nederlandse BTW in het datamodel
Geen generieke 'tax percent'. Aparte regimes en behandelingen (KOR, 1c, verlegging) zodat het overzicht aansluit op de aangifte.
Bewust geen bankkoppeling
Cijfera blijft licht: facturen, uitgaven, BTW. Geen Digipoort, geen verplicht abonnement. De core blijft solo te onderhouden en gratis.
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
Voorbeelddatacijfera.nl
Voorbeelddata