Open Book is a self-hosted, personal accounting and finance application designed for individuals and small businesses. It provides invoicing, expenses, reporting, products, clients, and basic bookkeeping features with a privacy-first approach.
Open Book offers a comprehensive suite of tools for managing your finances:
- Invoicing: Create and manage professional invoices with PDF generation capabilities.
- Expense Tracking: Log manageable expenses and categorize them for better financial oversight.
- Client Management: Maintain a database of client details and transaction history.
- Product & Service Catalog: Manage your inventory of products and services.
- Financial Reporting: Visualize your financial health with dashboards and reports.
- Team Management: Invite team members and manage user roles and permissions.
- Authentication: Secure user authentication and session management.
This project utilizes a modern technology stack to ensure performance, scalability, and developer experience:
- Framework: Next.js 16 (React 19)
- Language: TypeScript
- Database ORM: Prisma
- Database: PostgreSQL
- Styling: Tailwind CSS 4 & Shadcn/ui
- Authentication: Better-Auth
- Form Validation: React Hook Form & Zod
- PDF Generation: PDFMe
- Linting & Formatting: Biome
Follow these instructions to set up the project locally on your machine.
Ensure you have the following installed:
- Node.js (v18 or higher) or Bun
- PostgreSQL database
-
Clone the repository
git clone https://github.com/muhammad-fiaz/OpenBook.git cd OpenBook -
Install dependencies
Using npm:
npm install
Or using Bun:
bun install
-
Configure Environment Variables
Copy the example environment file to
.env:cp .env-example .env
Open
.envand populate the necessary variables, particularly your database connection string and authentication secrets.
-
Run Migrations
Apply the Prisma migrations to your local database:
npx prisma migrate dev
-
Seed Database (Optional)
If there are seed scripts available, run them to populate initial data:
npx prisma db seed
-
Start Development Server
npm run dev # or bun run devThe application should now be running at
http://localhost:3000.
To build and run the application for production:
-
Build the application
npm run build
-
Start the server
npm start
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please refer to the CONTRIBUTING.md file for guidelines on how to submit improvements and bug fixes.
Distributed under the MIT License. See LICENSE for more information.
