A beautiful, privacy-first Persian (Farsi) invoice generator β fully client-side, no backend, no signup.
- Seller Profile β Logo upload, contact info, social links, national/economic codes
- Customer Book β Save repeat customers for quick selection
- Line Items β Drag-and-drop reordering, quantity/unit/price/discount, item presets
- Auto Calculations β Subtotal, global discount (percent or fixed), VAT, shipping, grand total
- Persian Words β Grand total shown in Persian script (e.g. Β«Ψ³Ω Ω ΫΩΫΩΩ Ω ΩΎΨ§ΩΨ΅Ψ― ΩΨ²Ψ§Ψ± ΨͺΩΩ Ψ§ΩΒ»)
- Multi-Currency β Toman, Rial, USD, EUR, USDT
- Jalali Calendar β Native Persian date picker with date-fns-jalali
- Auto Numbering β Custom prefix + yearly counter (e.g. MDY-1405-001)
- Document Types β ΩΨ§Ϊ©ΨͺΩΨ± Ψ±Ψ³Ω Ϋ / ΩΎΫΨ΄βΩΨ§Ϊ©ΨͺΩΨ± / Ψ±Ψ³ΫΨ― / Ψ΅ΩΨ±ΨͺβΨΨ³Ψ§Ψ¨
- Status Stamps β Paid / Pending / Overdue with decorative rotated overlay
- Payment Info β Card number (auto-format + bank detection via prefix), IBAN, payment link
- QR Code β Auto-generated for card/payment info
- Signature Pad β Draw with mouse/touch, or upload image
- Bilingual Mode β Persian/English side-by-side for foreign clients
| # | Template | Style |
|---|---|---|
| 1 | Blossom πΈ | Pink pastel with delicate floral border |
| 2 | Rose Gold πΉ | Luxury gold lines and accents |
| 3 | Lavender Dream π | Soft purple tones |
| 4 | Minimal Chic β¨ | Clean white with pink accents |
| 5 | Marble Luxe ποΈ | Marble-textured elegance |
| 6 | Pastel Wave π | Colorful pastel gradients |
| 7 | Classic Formal π | Grayscale corporate style |
| 8 | Dark Elegance π | Dark theme with neon pink |
| 9 | Botanical πΏ | Watercolor leaf motifs |
| 10 | Geometric π· | Modern geometric patterns |
| 11 | Vintage Paper π | Aged paper aesthetic |
| 12 | Gradient Pop π¨ | Bold gradient backgrounds |
- PDF (A4/A5) β Perfect Persian text rendering via DOMβImageβPDF pipeline
- PNG (2Γ / 3Γ resolution)
- Copy to Clipboard β Instant image sharing
- Print β Dedicated print styles
- Share Link β Entire invoice compressed into URL hash (zero-server sharing)
- JSON β Backup and restore
- IndexedDB Archive β Full offline storage
- Search & Filter β By buyer name, invoice number, or status
- Mini Dashboard β Monthly income chart, unpaid invoice count
- Full Backup/Restore β Export/import all data as JSON
- ΩΨ§Ψ±Ψ³Ϋ (Persian) β RTL
- English β LTR
- Deutsch (German) β LTR
- Ψ§ΩΨΉΨ±Ψ¨ΩΨ© (Arabic) β RTL
- Π ΡΡΡΠΊΠΈΠΉ (Russian) β LTR
- FranΓ§ais (French) β LTR
- Feminine Pink Aesthetic β Rose, powder pink, lilac color palette
- Glassmorphism β Frosted glass cards with pink-tinted shadows
- Framer Motion β Smooth 60fps animations, staggered list entrances
- Dark Mode β Deep plum and neon pink dark theme
- Responsive β Desktop split-view, tablet tabs, mobile wizard
- Onboarding Tour β 4-step cute guide for first-time visitors
- Keyboard Shortcuts β Ctrl+S (save), Ctrl+P (export), Ctrl+Z (undo)
- Undo/Redo β Full history stack
- Confetti π β Celebratory burst on successful export
- 100% Client-Side β Zero server requests, no data leaves your browser
- PWA β Installable, works fully offline
- No Signup Required β Just open and use
# Install dependencies
npm install
# Development server
npm run dev
# Production build
npm run build
# Preview production build
npm run previewDownload the following WOFF2 font files and place them in public/fonts/:
- Vazirmatn (default, all weights)
- Shabnam, Sahel, Lalezar (optional alternatives)
The app works without them (falls back to system fonts), but for best Persian text rendering, especially in PDF exports, install them.
| Category | Technology |
|---|---|
| Framework | React 19 + TypeScript |
| Build Tool | Vite 8 |
| Styling | Tailwind CSS v4 |
| Animation | Framer Motion |
| State | Zustand (with persist middleware) |
| Calendar | date-fns-jalali |
| html-to-image + jsPDF | |
| QR Code | qrcode.react |
| Compression | lz-string (share links) |
| Storage | IndexedDB (idb) + localStorage |
| PWA | vite-plugin-pwa |
| Drag & Drop | @hello-pangea/dnd |
src/
βββ types/ β TypeScript interfaces (Invoice, LineItem, Customer, etc.)
βββ utils/ β Persian number utils, bank detector, calculation helpers
βββ i18n/ β Translation files (fa, en, de, ar, ru, fr)
βββ stores/ β Zustand stores (invoice, archive)
βββ components/
β βββ Form/ β Invoice form sections (seller, buyer, items, payment, meta)
β βββ Preview/ β Live A4 preview with zoom and template carousel
β βββ Templates/ β 12 template renderers
β βββ Export/ β PDF/PNG/clipboard/print/share export panel
β βββ Archive/ β Invoice archive and dashboard
β βββ UI/ β Shared UI components (Toast, Modal, SignaturePad, etc.)
βββ App.tsx β Main app with responsive layout
Generate a shareable link that encodes the entire invoice in the URL hash using lz-string compression. The recipient opens the link and sees the exact same invoice β no server required.
MIT Β© Maddyrampant
Made with π for the Persian-speaking community