The Invoice Builder App is a web application developed using Next.js, React, and TypeScript. It allows users to easily create and print professional invoices.
- Build Your Invoice: The app allows users to create their own invoices by filling out a form with the necessary details.
- Print Functionality: Users can easily print their invoices using the React-To-Print library, making it convenient for offline use or physical copies.
- Secure Authentication: Implemented authentication with Clerk, providing a secure way for users to build and manage their own private invoices.
I used the following technologies:
- Next.js 14 and React 18 (with TypeScript)
- Prisma + PostgreSQL for DB
- React-Hook-Form + Zod for forms
- React-Markdown for rendering markdown
- React-To-Print for printing the page
- Tailwind CSS + Shadcn/UI
- Clerk for Authentication
The app integrates Clerk for secure user authentication. With Clerk, each user can build and manage their own private invoices.
To set up Clerk:
- Sign up for a Clerk account and create a new application.
- Set up the required environment variables in the
.env
file (refer to the template in.env.example
). - Update the Clerk configuration in your app based on the documentation.
To run the app locally:
- Run
npm install
to install the dependencies. - Set up the required environment variables in the
.env
file (refer to the template in.env.example
). - Run Migrations
npx prisma migrate dev
- Run
npm run dev
to start the development server.