A SaaS application that helps freelancers create, send, and track invoices with PDF generation and payment links.
- π User authentication (JWT based)
- π€ Client management (CRUD)
- π§Ύ Invoice generation with line items, tax, and discounts
- π PDF export of invoices
- π§ Email invoice to clients
- π³ Stripe/Razorpay payment integration
- π Dashboard with income summaries and invoice status
- π€ Recurring invoices and reminder emails
- π¨ Invoice design templates
- π₯ Multi-user/team support
- π Advanced analytics dashboard
- π° Subscription plans with Stripe Checkout
- π Public invoice view + pay portal
| Feature | Description |
|---|---|
| π§Ύ Invoice Item Library | Save commonly used line items for quick reuse |
| π i18n / Locale Support | Multi-language and currency formatting |
| π₯ Custom Fields | User-defined fields in client, invoice, or project |
| ποΈ Due Date Notifications | Email/SMS reminders before due |
| π± WhatsApp API Integration | Send invoices or reminders via WhatsApp |
| π§ AI Suggestions | Smart text generation for proposals/invoices |
| π₯ Inbox Parsing | Auto-create client from email parsing |
| π Zapier/Webhook Integration | Connect with 3rd party tools like Notion, Slack |
| π§ͺ A/B Template Testing | Test invoice/proposal templates for conversion |
| π§² Regional Tax Formats | Support GST, VAT, and region-specific formats |
| πΌ Export to Marketplaces | Convert proposal into Upwork/Fiverr-friendly format |
| π¨βπ©βπ¦ Team Roles & Permissions | Admin, editor, viewer-level controls |
| Layer | Technology |
|---|---|
| Frontend | React, Tailwind CSS, Redux |
| Backend | Node.js, Express |
| Database | MongoDB Atlas |
| Auth | JWT, bcrypt |
| PDF Generator | pdf-lib / Puppeteer |
| Email Service | Nodemailer / Resend / SendGrid |
| Payments | Stripe / Razorpay |
| Hosting | Vercel (FE), Render/Railway (BE) |
| Storage | Firebase Storage / AWS S3 (optional) |
# Clone the repo
$ git clone https://github.com/your-username/invoice-saas.git
$ cd invoice-saas
# Install dependencies
$ cd backend && npm install
$ cd ../frontend && npm install
# Create .env files for backend and frontendExample .env for backend:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret
EMAIL_API_KEY=your_email_provider_key
| Week | Focus |
|---|---|
| 1 | Auth, project setup, DB schema |
| 2 | Client & invoice CRUD |
| 3 | PDF, email, and payments |
| 4 | Dashboard, polish, deployment |
invoice-saas/
βββ backend/
β βββ controllers/
β βββ models/
β βββ routes/
β βββ utils/
β βββ server.js
βββ frontend/
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ redux/
β β βββ App.js
βββ .env
βββ README.md
Pull requests and suggestions are welcome! Open an issue first to discuss any breaking changes.
π License Software Engineer, IIIT Gwalior Β© Yuvaan Singh