DejFakturu
Invoicing for Czech freelancers and small firms — one domain core behind web, desktop, mobile and a Telegram bot.
- Year
- Status
- Type
- Stack
- Clients
- Shared core
- Stage

What it does
DejFakturu (“give me an invoice” in Czech) is invoicing for sole traders and small companies in the Czech Republic. The public page generates a simple PDF invoice without an account; the signed-in part covers a dashboard, invoices with a live preview, customers, expenses, exports and your own billing details. The same product exists as a desktop app, a mobile app and a Telegram bot that answers with an overview, a list of invoices and what's overdue.
How it's built
It started in 2022 as a plain React app; the idea kept coming back because the problem didn't go away. In 2025 I built a native macOS version in SwiftUI with Core Data, localized in Czech, English and Russian, to see how the model feels outside the browser. In 2026 the web version was redone on Next.js with Prisma over PostgreSQL and server-side PDF generation, and then everything moved into a monorepo: a shared core package with the document types, amount and date formatting written by hand instead of Intl so Node, the browser and React Native produce identical output, sample data and the legal texts — consumed by the Next.js web app, an Electron desktop shell with Czech menus, an Expo mobile app and a grammY Telegram bot that runs either as a polling process or as a serverless webhook.
- Honest status: a working prototype with a finished design system, every screen and the auth mechanics; the real data layer and the invoicing engine (number series, PDF archiving, QR payments, ARES lookup) are the next phase, and the roadmap for it lives in the repo
- Terms, privacy and cookie policy are one source in the core package, exposed by the web, the mobile app and the bot alike

More screens

