A modern, cloud-powered invoice generator application designed for small businesses and freelancers. Create, manage, and share professional digital invoices with ease, synced seamlessly across all your devices.
- Secure User Authentication: Sign up and log in with email/password
- Password Recovery: Forgot password functionality with email reset
- Row Level Security (RLS): Your data is completely isolated and secure
- Multi-device Sync: Access your invoices from anywhere
- Comprehensive Business Information: Store name, address, contact details, and tax ID
- Business Logo Upload: Upload and display your company logo on invoices
- Multi-currency Support: Choose from INR (βΉ), USD ($), EUR (β¬), GBP (Β£), JPY (Β₯)
- Customizable Tax Settings: Set default tax rates and labels (GST, VAT, etc.)
- Professional Invoice Creation: Build detailed invoices with multiple line items
- Smart Invoice Numbering: Automatic numbering with customizable prefixes (e.g., INV-2026-0001)
- Status Tracking: Track invoices through Draft, Pending, Paid, Overdue, and Cancelled states
- Auto-save to Paid: Invoices automatically marked as paid when shared
- Edit & Update: Modify existing invoices anytime
- Search & Filter: Find invoices by customer name, date, or status
- Real-time Dashboard: View revenue stats, pending amounts, and recent invoices at a glance
- Customer Database: Store customer details including name, email, phone, and address
- Quick Selection: Auto-fill customer information when creating invoices
- Customer History: Track all invoices per customer
- Easy Management: Add, edit, or delete customers
- Product Library: Maintain a catalog of your products/services
- Pricing Management: Set and update product prices
- Unit Support: Configure different units (piece, kg, dozen, meter, hour, etc.)
- Quick Add: Instantly add products to invoices from your catalog
- Optimized PDF Generation: Lightning-fast PDF creation using Web Workers (non-blocking UI)
- Background Processing: Generate PDFs without freezing the interface
- Progress Tracking: Real-time progress updates during PDF generation
- Professional PDFs: Download invoices with your branding and logo
- Print Support: Direct printing from the browser
- Native Sharing: Share invoices via WhatsApp, Email, SMS, and more
- Responsive Performance: Smooth experience even with large invoices (50+ items)
- Beautiful Design: Premium dark theme with glassmorphism effects
- Responsive Layout: Works perfectly on desktop, tablet, and mobile
- Smooth Animations: Delightful micro-interactions and transitions
- Intuitive Navigation: Easy-to-use interface with clear visual hierarchy
- Web Worker PDF Generation: Non-blocking PDF creation in background threads
- Optimized Build: Code splitting and lazy loading for faster initial load
- Efficient Rendering: React Query caching for instant data access
- Responsive UI: Interface remains smooth even during heavy operations
- Production Ready: Optimized bundle size with tree-shaking
| Category | Technology |
|---|---|
| Frontend | React 18 with TypeScript |
| Build Tool | Vite 5 |
| Styling | Tailwind CSS 3 |
| Backend | Supabase (PostgreSQL) |
| Authentication | Supabase Auth |
| Real-time Sync | Supabase Realtime |
| State Management | React Query (TanStack Query) |
| Routing | React Router v6 |
| PDF Generation | jsPDF + jsPDF-AutoTable + Web Workers |
| Icons | Lucide React |
| Date Handling | date-fns |
git clone <repository-url>
cd invoice-generatornpm install- Go to supabase.com and create a new project
- Wait for the project to be provisioned (takes ~2 minutes)
- Navigate to the SQL Editor in your Supabase dashboard
- Copy the entire contents of
database/schema.sql - Paste and execute the SQL to create all tables, indexes, RLS policies, and triggers
- Go to Project Settings > API
- Copy your Project URL and anon/public key
cp .env.example .envEdit .env and add your Supabase credentials:
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-herenpm run devThe application will be available at http://localhost:5173
npm run buildThis creates an optimized production build in the dist/ directory.
npm run previewThe application uses 5 main tables:
- invoices: Stores all invoice data with line items as JSONB
- customers: Customer contact information
- products: Product/service catalog
- business_profile: Business information and branding
- settings: User preferences and invoice defaults
All tables include:
- Row Level Security (RLS) policies
- Automatic
updated_attimestamp triggers - User-based data isolation
- Optimized indexes for performance
- Row Level Security (RLS): Every database query is automatically filtered by user ID
- Secure Authentication: Passwords are hashed using bcrypt
- Email Verification: Optional email confirmation on signup
- Session Management: Secure JWT-based sessions
- HTTPS Only: All API calls use encrypted connections
- Sign Up: Create an account with your email and password
- Business Profile: Go to Settings > Business Profile and fill in your details
- Upload Logo: Add your business logo for professional invoices
- Add Products: Navigate to Products and create your product catalog
- Add Customers: Go to Customers and add your client information
- Click New Invoice from the dashboard or invoices page
- Select a customer (or add a new one)
- Add line items from your product catalog or create custom items
- Adjust tax rate and discount if needed
- Add optional notes
- Save as Draft or mark as Pending
- Share, print, or download as PDF
- View: Click any invoice to see full details
- Edit: Click the edit icon to modify an invoice
- Delete: Remove unwanted invoices
- Filter: Use the search and filter options to find specific invoices
- Track Status: Monitor payment status on the dashboard
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
For issues, questions, or suggestions, please open an issue on GitHub.
Made with β€οΈ for small businesses and freelancers