Case study
Bee-RP
The frontend of a multi-tenant SaaS ERP for internal company management - in active development.
- Client
- Bringin Inti Teknologi
- Role
- Frontend Developer
- Multi-tenantplatform model
- 4 scopesRBAC granularity
- In progresscurrent status
Problem
Internal company management spans domains that are usually handled by separate tools: HR and payroll, customer relationships, physical assets, e-office, projects, finance and approvals. Running them apart means duplicated records and no single view of the organisation. Serving several companies from one platform adds a harder requirement on top: each tenant must stay strictly isolated, and every module needs permissions fine enough to separate what a person may see about themselves, their subordinates, their unit and the whole company.
Approach
Bee-RP is a multi-tenant SaaS platform built as a NestJS and Next.js pnpm monorepo. I build the frontend on Next.js 14 with the App Router across its core domains - HRM covering employees, attendance and shifts, leave, payroll and org structure, alongside CRM and asset management - plus e-office, project management, finance and approval workflows.
The interface enforces strict tenant isolation and granular per-module RBAC across four scopes: own, subordinates, unit and all. Several domains needed interfaces beyond ordinary forms and tables: org charts drawn with D3.js, maps with Leaflet, rich-text editing with Tiptap and drag-and-drop with dnd-kit, assembled on shadcn and Radix UI. Subscription billing runs through Midtrans.
Results
The platform is in active development. The frontend now covers HRM, CRM, asset management, finance and workflow, with granular RBAC enforced at the interface layer and tenant isolation holding across every module.
Stack
- Next.js
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Tiptap
- D3.js
- Leaflet
- dnd-kit