HumR
HumR is ARITS Limited's in-house HR suite: a multi-tenant, permission-gated system that runs a company's entire employment lifecycle — from onboarding through payroll disbursement — across three separate web applications that behave like one product.
- Timeline
- 2024 – present
- Role
- Frontend Lead
- web applications, one session
- 3web applications, one session
- modules across the platform
- 7modules across the platform
- permission personas
- 4permission personas
Key takeaways
- HumR splits HR into three independently deployable Next.js applications — core HR, attendance, and payroll — that share one login and one company context.
- A single JWT session travels across subdomains in encrypted cookies, so moving between the three apps never asks the user to sign in again.
- Auth, the design system, and the form and report builders are Turborepo workspace packages, so a fix lands once and reaches all three apps.

The problem
HR software is rarely one workflow. Core HR, time-and-attendance, and payroll each have their own domain model, release cadence, and permission surface, and cramming them into a single application produces a codebase nobody can ship independently. Splitting them into separate apps solves that — but only if a user never notices the seam: one login, one company context, one design language across all three.
The approach
Three independent Next.js applications sit on a shared Turborepo package graph — auth, design system, ShadCN primitives, form builder, and report builder are all workspace packages, so a fix lands once and propagates. The apps share a single JWT session through encrypted cookies scoped across subdomains, and the active company travels in the URL as an encrypted identifier, so deep links stay valid across app boundaries without leaking tenant ids. Permission gating is advisory on the frontend and enforced by the backend, which keeps the UI honest without making it the security boundary.
What it does
- Subdomain SSO — one login carries across all three apps via encrypted cookie sharing
- Multi-company tenancy with a company switcher and encrypted company id in every route
- Dynamic form builder — employee creation renders from a server-supplied schema rather than a fixed form
- Weekly routine and shift/schedule builder with clock in/out and attendance claims
- Payroll cycles: salary structure, disbursement, tax, loans, reimbursements, and PF ledger
- Report builder producing dynamic cross-module reports
- Turborepo workspace packages shared across every app (auth, design system, form and report builders)
Stack
Outcome
Three apps ship on independent release cycles while presenting a single product to the user
Shared packages removed the duplicated auth, theming, and table code the split would otherwise have created
Permission-gated UI mirrors backend enforcement, so no screen renders an action the API will reject
HumR — questions
Common questions about HumR and how it was built.
Building something similar?
I'm open to new opportunities and project work.