← Back to Projects

Pro Invoice & Estimate Maker

Live

Offline invoice and estimate generator for small businesses. Create professional invoices with customizable templates, export/import as JSON, toggle dark mode, and print-to-PDF. Single-file app that runs entirely in your browser.

What It Does

  • Generate invoices and estimates with line items, tax, discounts, and totals
  • Customizable business details and invoice templates
  • Export data as JSON for backup or sharing across devices
  • Print-to-PDF using browser native print dialog
  • Works offline - no server required, everything stays in your browser

What I Built

  • Single-page React app with localStorage persistence
  • Dynamic form state management for line items and calculations
  • JSON import/export for data portability
  • CSS print styles optimized for PDF generation
  • Dark mode toggle with theme persistence

Who It's For

Freelancers & Contractors

Generate professional invoices without paying for QuickBooks or FreshBooks. Keep your data local, export backups as JSON, and print to PDF for client emails.

Service Businesses

Create estimates on-site with a laptop or tablet. No internet required. Print directly or save as PDF to send later.

Privacy-Conscious Users

All data stays in your browser. No cloud sync, no accounts, no tracking. Export your invoices as JSON files and keep them wherever you want.

Technical Approach

Offline-first architecture: Built as a single-page app with no backend. All invoice data is stored in browser localStorage, making it instantly available even without internet.

JSON portability: Export button generates a JSON file containing all your invoices, templates, and business info. Import it on another device or keep it as a backup.

Print optimization: Custom CSS print styles format invoices for PDF generation. Uses browser's native print dialog—no third-party PDF libraries or server-side rendering.

State management: React state handles dynamic line items, automatic subtotal/tax/total calculations, and instant preview updates.