ERPNext is a comprehensive open-source ERP (Enterprise Resource Planning) system built on the Frappe Framework. It provides a full suite of business management modules including Accounting, CRM, Buying, Selling, Stock/Inventory, Manufacturing, Projects, Assets, Quality Management, Support, and more. The system uses a metadata-driven architecture where DocTypes (document types) define data models, business logic, and UI behavior. The codebase follows a modular structure with each business domain in its own directory (accounts, buying, selling, stock, manufacturing, projects, etc.). It includes a modern React/TypeScript banking module built with Vite for bank reconciliation and statement importing. The system supports multi-company, multi-currency, multi-language deployments with extensive regional/localization support for tax compliance across many countries. It has a robust patch/migration system for database schema evolution and a comprehensive test suite.
Frappe Books is a full-featured, offline-first desktop accounting and inventory management application built with Electron, Vue 3, and a custom ORM framework (fyo) on top of SQLite. It supports double-entry bookkeeping, invoicing (Sales/Purchase/Returns), payment processing, stock management (batches, serial numbers, FIFO valuation), Point of Sale (classic and modern layouts), financial reports (Balance Sheet, P&L, Trial Balance, General Ledger, GST reports), loyalty programs, pricing rules, coupon codes, and multi-currency. The architecture is schema-driven: JSON schema files define document structures, and model classes add business logic via formulas, validations, and lifecycle hooks. The backend runs in the Electron main process and exposes IPC APIs for file operations, database access, and auto-updates. The frontend is a reactive Vue 3 SPA with a comprehensive component library. Regional support (India, Switzerland) is implemented through model overrides and schema extensions. The codebase demonstrates strong engineering practices with a layered architecture, but the custom framework introduces some coupling. It is actively maintained with CI/CD, automated tests, and regular patches.