Monorepo containing BE and FE for faktorio.cz app. A free open source app for invoicing targeted at self-employed OSVČ or tiny companies.
- generate invoice PDF
Public URL format: https://faktorio.cz/shared-invoice/:invoiceShareId
Backend stores share records and tracks events (view, download, copy) including IP, UA, and country when available.
Frontend env:
- VITE_PUBLIC_API_URL points to the public API worker (defaults to production when missing).
- extract entire invoice from any JPG/PNG/BMP or PDF
- search through invoices
- contact management(integrated with ARES)
- support for foreign currencies
- export invoices to Excel, CSV, ISDOC
- export invoices to XML for Czech tax authorities
| Feature | Faktorio.cz | Fakturovac.cz | Fakturoid.cz | iDoklad.cz |
|---|---|---|---|---|
| Generate invoice PDF | ✅ | ✅ | ✅ | ✅ |
| Extract invoice from a raster image | ✅ | ❌ | ❌ | ❌ |
| Search through invoices | ✅ | ✅ | ✅ | ✅ |
| Contact management (integrated with ARES) | ✅ | ✅ | ✅ | ✅ |
| Support for foreign currencies | ✅ | ❌ | ✅ | ✅ |
| Export invoices to Excel, CSV, ISDOC | ✅ | ✅ | ✅ | ✅ |
| Export invoices to XML for tax authorities | ✅ | ✅ | ✅ | ✅ |
| Send invoices to an email from the app | ❌ | ✅ | ✅ | ✅ |
| API for integrations | ✅ | ❌ | ✅ | ✅ |
| Push notifications in web app | ✅ | ❌ | ❌ | ❌ |
| Mobile app | ❌ | ❌ | ✅ | ✅ |
| English UI | ❌ | ❌ | ✅ | ✅ |
| Render invoices in english | ✅ | ❌ | ✅ | ✅ |
| Support reverse charge invoices(both domestic and abroad) | ✅ | ❌ | ✅ | ✅ |
| Share invoice publicly through a public link | ✅ | ❌ | ✅ | ✅ |
| Multiple bank accounts | ✅ | ✅ | ✅ | ✅ |
| Keep account without logging in every 12 months | ✅ | ✅ | ❌ | ✅ |
| Run locally without sending data to the cloud | ✅ | ❌ | ❌ | ❌ |
Note: Feature information for Fakturoid.cz and iDoklad.cz is based on common commercial offerings and may require verification.
Project is mostly feature ready so we're mostly supporting bugs. No big features planned for the near future. The aim is to be a number one open source invoicing app in Czech republic for freelancers and small companies. If you have migrated to another open source because faktorio is missing a feature please let me know in the issues or in a X.com DM.
are all listed in roadmap.md
- Typescript
- Shadcn components
- React.js
- TRPC api
- Drizzle ORM
- Turso(sqlite)
- Cloudflare workers
- Google gemini for AI
You will need accounts/keys for these services before deploying your own instance:
- Cloudflare Workers for
faktorio-api(tRPC backend, cron) andfaktorio-public-api(public/shared invoice endpoints) - Cloudflare Pages (or another static host) for the
faktorio-feVite build - Turso / libSQL for the primary database
- Google Gemini API for invoice extraction and AI features
- Mailjet for transactional emails (password reset, notifications)
- Google Cloud OAuth Client to obtain
VITE_GOOGLE_CLIENT_IDfor Google sign-in - Web Push VAPID keys (generate locally with
pnpm --filter faktorio-api tsx scripts/generate-vapid-keys.ts; no external service required)
Environment configuration:
- API Worker (
faktorio-api):TURSO_DATABASE_URL,TURSO_AUTH_TOKEN,JWT_SECRET,GEMINI_API_KEY,MAILJET_API_KEY,MAILJET_API_SECRET,VAPID_PUBLIC_KEY,VAPID_PRIVATE_KEY,VAPID_SUBJECT - Public API Worker (
faktorio-public-api):TURSO_DATABASE_URLand optionallyTURSO_AUTH_TOKENfor Turso access - Frontend (
faktorio-fe):VITE_API_URL(points tofaktorio-api/trpc),VITE_PUBLIC_API_URL(points tofaktorio-public-api),VITE_GOOGLE_CLIENT_ID,VITE_VAPID_PUBLIC_KEY