Buchly Behind the Scenes
How we built our own bookkeeping SaaS with OCR and AI out of frustration with classical software. Tech stack, lessons learned, mistakes we''d never make again.
Weve done web design for 20 years. But maybe the best learning experience of our lives was building our own product: Buchly.at. A bookkeeping and invoicing SaaS specifically for Austrian freelancers and small businesses, with OCR-based receipt recognition and AI classification. Honest behind-the-scenes look.
Why even bother?
Like many web agencies, we struggled for years with classical bookkeeping software. BMD, RZL etc. are great tools – but built for accounting firms, not for freelancers sorting receipts once a month. We wanted:
- Photograph receipts instead of scanning
- Auto-extracted and pre-classified data
- Smart matching of bank movements with receipts
- One-click monthly package for tax advisors
- Full GDPR, AT hosting, no US transfer
It didnt exist in the desired form. So we built it.
The tech stack
- Backend: Node.js with Fastify, PostgreSQL, Redis for cache and job queue. On Hetzner Cloud (CPX21 web, CPX31 DB) in Nuremberg.
- Frontend: Classic HTML/CSS/Vanilla-JS – no React, no Vue. Deliberately "boring tech".
- OCR: Custom pipeline with AWS Textract as fallback and fine-tuned Mistral model for German receipts.
- AI classification: Claude API with categorised few-shot prompt for chart-of-accounts classification (EKR07).
- Storage: Cloudflare R2 for receipt images (much cheaper than S3, EU region).
- Bank integration: via Klarna Kosma / Tink for PSD2-compliant interfaces to Austrian banks.
- Mailing: Brevo for transactional emails and newsletters.
- Monitoring: Sentry for error tracking, Plausible Analytics.
What we got right
Boring tech. We chose against all modern frameworks – no React/Next.js, no fancy DI system, no microservices. Instead, a Node.js monolith thats still maintainable and performant today. We dont regret these decisions.
Early market focus. AT, freelancers and small businesses with flat-rate taxation. No "also DE", no "also Switzerland". Tight focus let us tailor features to Austrian tax law specifically – including 13a-EStG flat rate, OSS reporting, AT bank integration.
Privacy by design. All data in EU data centres. No US third-country transfer. Sentry self-hosted, analytics without cookies. Brought us more customers than expected – "finally bookkeeping software without US cloud" was the most common positive feedback.
What we got wrong
Scaled too early. With first 200 customers we built multi-region setups, HA databases and read replicas. Could have skipped that for a year. Performance was always sufficient.
Featuritis. In beta we built too many features because individual customers wanted them. Result: a product doing everything a bit, nothing properly. Had to switch off four of them after 9 months.
Overestimated OCR accuracy. Thought AWS Textract would suffice. Reality with crumpled till receipts, faded thermal paper and scanned PDFs was sobering. 6 months own development with fine-tuned models needed to reach 92 % auto-recognition.
Onboarding too complex. First version required 14 clicks to first captured receipt. Free-trial drop-off: 65 %. Today: 3 clicks – drop-off 22 %.
Lessons every SaaS team should know
- Build a painful solution for yourself first. We wouldnt have built so precisely if we werent the target audience.
- Say "no" to 80 % of feature requests. Only when 3 independent customers want the same feature do we consider.
- Customer support is product development. Each ticket is a UX gap.
- Dont price too early. First version € 9.90/month – way too cheap. Today: € 19 starter, € 39 premium. Conversion didnt worsen.
- GDPR as sales argument. In AT, DE, CH theres a growing audience explicitly seeking EU hosting.
- Boring tech wins. 2.5 years, fewer than 10 tech migrations. Hipper-stack competitors had many more.
Whats next
2026 roadmap: native iOS/Android apps for receipt photo capture (currently PWA), deeper integration with AT tax software (BMD, RZL), and a "tax advisor workspace" managing multiple clients.
Bottom line
Buchly was and is our toughest lesson. Web design client projects are simple in many ways – brief, build, launch, done. Building your own product means deciding daily what matters and what doesnt. Whats roadmap and whats a bug. What customers really want versus what they say in the moment. This experience flows back into every client project.
Edgar Oganisjan is the founder of Skins4You – a web design and online marketing agency from Graz, Austria.