Inspiration

Managing a business in Saudi Arabia currently feels like juggling a dozen disconnected tools. You have one system for government e-invoicing (ZATCA), another for HR, a physical device for attendance, and spreadsheets for everything else. We saw business owners struggling with "system fatigue"—wasting hours manually syncing data between biometric devices and payroll. We built Hulool (Arabic for "Solutions") to be the single source of truth that speaks the local language—both linguistically and legally.

What it does

Hulool ERP is a comprehensive business operating system designed specifically for the MENA region.

  • Unified HR & Payroll: Automatically calculates end-of-service benefits, overtime, and GOSI deductions according to Saudi Labor Law.
  • Hardware Integration: Connects directly to ZKTeco biometric devices to sync attendance logs in real-time, eliminating manual timesheets.
  • Smart Accounting: Manages localized E-Invoicing, VAT returns, and financial reporting.
  • SaaS Architecture: Allows businesses to sign up, verify identity, and provision their workspace instantly.

How we built it

We adopted a modern, type-safe stack to ensure reliability:

  • Frontend: Built with React 18 and Vite for blazing fast performance. We used Radix UI and Tailwind CSS to create an accessible, RTL-first design system that looks beautiful in both Arabic and English.
  • Backend: A robust NestJS microservices-ready architecture handles the complex business logic.
  • Database: MongoDB provides the flexibility to handle diverse schema requirements for different tenant configurations.
  • Hardware: We engineered a custom bridge using node-gyp and the ZKTeco SDK to communicate with physical biometric scanners over TCP/IP.

Challenges we ran into

  • The "Legacy vs. SaaS" Conflict: Adapting traditional ERP data models (complex, rigid) into a modern SaaS self-service flow was difficult. We had to reconcile deep enterprise schemas with lightweight user onboarding.
  • Hardware Communication: interfacing with ZKTeco devices natively from a Node.js environment was tricky, requiring us to handle raw buffer data and proprietary protocols to ensure stable attendance syncing.

Accomplishments that we're proud of

  • Zero-Error Stability: Achieving a "Product Production Ready" state where the core monolith runs with zero TypeScript or Linting errors.
  • Biometric Sync: Successfully getting a web application to talk to physical attendance hardware in real-time.
  • Localization Deep-Dive: Going beyond just translating words—we handled Hijri dates, right-to-left layout data shifts, and region-specific tax logic.

What we learned

Building an ERP is not just about CRUD operations; it's about codifying trust. We learned that for a business manager, "reliability" means their payroll report matches the fingerprint scanner exactly. We also learned the immense value of "Schema Design First" when dealing with complex relationships like Employee-to-Shift-to-Deduction.

What's next for Hulool ERP

  • AI Insights: Implementing an LLM agent that can answer questions like "Why is overtime cost higher this month?" by analyzing the attendance vs. sales data.
  • ZATCA Phase 2: Full automated integration with the Saudi Tax Authority's Fatoora portal.
  • Mobile App: A dedicated employee self-service app for leave requests and remote attendance.

Built With

Share this project:

Updates