Most invoice tools are either bloated enterprise software or too basic to handle real business needs. Freelancers and small businesses needed something in between: a clean, fast invoice management system that handles the full lifecycle from creation to tracking, without the overhead.
What I Built
Faktur is a full-stack invoice management application that covers the complete invoicing workflow:
Invoice creation with a polished, intuitive form builder
Client management to track contacts and billing history
Status tracking for sent, paid, overdue, and draft invoices
Dashboard overview with at-a-glance metrics on outstanding and collected amounts
PDF generation for professional, downloadable invoices
Responsive design that works across desktop and mobile
Technical Approach
The app is built on Next.js 16 with TypeScript end-to-end. I used tRPC for the API layer, which gives full type safety from database queries through to the frontend components. No more guessing what shape the data is in.
The database runs on SQLite (via Drizzle ORM for the latest version), keeping the deployment simple and self-contained. The UI uses Shadcn/ui components with Tailwind CSS, customized to create a professional, business-appropriate look.
Design Decisions
I focused on reducing friction in the invoice creation flow. The form auto-calculates totals, tax, and line items in real time. The dashboard prioritizes actionable information: what's overdue, what's pending, and what's been collected.
The color system and typography were chosen to feel trustworthy and professional, since this is a tool people use to send to their clients.
Key Technical Details
End-to-end type safety with TypeScript + tRPC + Drizzle ORM
Real-time form calculations with no page reloads
PDF invoice generation with consistent formatting
Clean separation between business logic and UI components
Open Source
Faktur is open source and available on GitHub. The live demo is at faktur.site.
Full-stack invoice management app with real-time calculations, PDF generation, and client tracking. Built with Next.js, TypeScript, tRPC, and Tailwind CSS.