This is a SaaS Invoice web application built using Next.js with the App Router, TypeScript, and Tailwind CSS. The application allows users to create, manage, and send invoices, as well as manage customer information and bank details.
Before you begin, ensure you have met the following requirements:
To install SaaS Invoice, follow these steps:
Linux and macOS:
```bash
sudo git clone https://github.com/UmbrellaSkiies/next-saas-invoice.git
```
Windows:
```bash
git clone https://github.com/UmbrellaSkiies/next-saas-invoice.git
cd next-saas-invoice
```
Install dependencies:
npm install
Set up environment variables:
Create a .env.local
file in the root directory and add your environment variables:
DATABASE_URL=your_database_url
NEXT_PUBLIC_CLERK_FRONTEND_API=your_clerk_frontend_api
CLERK_API_KEY=your_clerk_api_key
RESEND_API_KEY=your_resend_api_key
Development: npm run dev
Build: npm run build
Start: npm run start
Migrate Database: npx drizzle-kit generate
Push to Database: npx drizzle-kit push
š next-saas-invoice (root)
|
āā š app
| āā š api
| | āā š bank-info
| | | |_ š route.ts
| | āā š customers
| | | |_ š route.ts
| | āā š invoices
| | |_ š route.ts
| āā š home
| | |_ š page.tsx
| | |_ š layout.tsx
| āā š dashboard
| | |_ š page.tsx
| | |_ š layout.tsx
| āā š layout.tsx
| |_ š page.tsx
|
āā š components
| āā š ui
| | |_ š Button.tsx
| | |_ š Card.tsx
| | |_ š Modal.tsx
| āā š dashboard
| | |_ š CustomersTable.tsx
| | |_ š InvoiceTable.tsx
| |_ š layout
| |_ š DesktopNav.tsx
| |_ š Footer.tsx
| |_ š Navbar.tsx
|
āā š lib
| |_ š utils.ts
|
āā š hooks
| |_ š useUser.ts
| |_ š useActiveLink.ts
|
āā š types
| |_ š types.d.ts
|
āā š styles
| |_ š globals.css
| |_ š variables.css
|
āā š public
| |_ š images
| | |_ š logo.svg
| | |_ š hero-image.png
| |_ š fonts
| |_ š custom-font.woff2
|
āā š config
| |_ š seo.ts
| |_ š navigation.ts
|
āā š next.config.js
āā š package.json
āā š tsconfig.json
āā š .env.local
āā š .gitignore
This project is free to use and does not contain any license.
If you want to contact me you can reach me at LinkedIn or Instagram.