Invio is a minimalist, self-hosted invoicing application designed for freelancers, small businesses, and teams who want full control over their financial data without the complexity of enterprise CRMs. Built with Deno and Fresh on the frontend and Hono with SQLite on the backend, Invio eliminates unnecessary features to focus purely on creating, sending, and tracking invoices. It’s ideal for users who value transparency, security, and operational simplicity over feature bloat. With no mandatory accounts or external dependencies, Invio empowers you to host your invoicing system on any server—whether it’s a VPS, Raspberry Pi, or cloud instance—and retain complete ownership of your client data.
Unlike SaaS invoicing tools that lock you into monthly subscriptions and data silos, Invio runs entirely on your infrastructure. Invoices are accessible via secure public links—no client logins required—and all data is stored locally in SQLite. This makes Invio not only cost-effective but also privacy-first, with built-in security headers, JWT-based authentication, and rate limiting to protect against brute-force attacks. It’s engineered for those who want to get paid faster, without the overhead of managing a complex system.
What You Get
- Self-hosted invoicing - Run Invio on your own server with no vendor lock-in; your data stays where you put it, and exports are always available.
- Client-friendly public invoice links - Share invoices via secure URLs without requiring clients to create accounts or log in.
- Built-in security features - Includes rate limiting (by IP, username, and combination), JWT authentication, HSTS headers, CSP, X-Frame-Options, and X-Content-Type-Options out of the box.
- Minimalist UI with fast performance - Built on Deno + Fresh (frontend) and Hono + SQLite (backend), ensuring lightweight, responsive operation with no bloated frameworks.
- Reverse proxy compatibility - Full support for nginx, Apache, and Caddy with clear configuration examples to preserve client IP addresses for rate limiting.
Common Use Cases
- Building a freelance invoicing system - A freelancer wants to send professional invoices without relying on Stripe or QuickBooks, and needs full control over client data and billing history.
- Creating a small business payment portal - A local service provider needs to issue invoices to 50+ clients monthly, prefers self-hosting for compliance, and wants secure, password-free invoice sharing.
- Problem → Solution flow: Avoiding SaaS fees and data privacy risks - Users tired of monthly SaaS invoices fees and fear of data leaks choose Invio to self-host their invoicing, reducing costs while ensuring GDPR-compliant data control.
- Team workflow for tech-savvy small teams - A 3-person dev shop uses Invio to manage client billing on a private server, integrates it with their existing domain and reverse proxy, and shares invoices directly via link without onboarding clients.
Under The Hood
Kittendevv-invio is a modern invoicing solution built with a full-stack TypeScript architecture, integrating a Deno backend and Preact/Fresh frontend. It emphasizes clean separation between admin and public invoice views, supports internationalization, and enables flexible template customization and multi-format exports.
Architecture
This project adopts a monolithic structure with distinct backend and frontend domains, promoting clear separation of concerns within each layer.
- The backend follows a controller-model-route pattern that organizes logic and enhances maintainability
- The frontend utilizes a component-based design with islands architecture for interactive UI elements
- Modules are structured to support scalability and modular development practices
- There is a clear division between server-side logic and client-side rendering
Tech Stack
The project leverages modern web technologies with a strong emphasis on TypeScript and contemporary frameworks.
- The backend is powered by Deno and Hono, enabling fast and efficient server-side execution
- The frontend uses Preact and Fresh with Tailwind CSS for a responsive, styled user interface
- Vite is employed for frontend builds and Docker supports containerized deployment
- The stack includes utility libraries for PDF generation, internationalization, and UI enhancements
Code Quality
Code quality varies across components, with some structured testing and error handling practices in place.
- A modest but functional test suite targets key backend controllers and utility functions
- Try/catch blocks are widely used in the backend to handle errors defensively
- Inconsistent naming and module organization appear in some parts of the codebase
- Technical debt is evident in manual database setup and environment variable usage for configuration
What Makes It Unique
Kittendevv-invio distinguishes itself through its innovative use of dual-language frontend and backend, along with extensible features.
- The project supports both admin and public invoice views with distinct templates and access controls
- It integrates web standards and internationalization to enhance global usability
- Multi-format export capabilities and customizable templates provide flexibility in invoice generation
- The modular architecture allows for easy extension of functionality and UI customization