CASE-001
Bitbase India

One system, owned outright, instead of a stack of subscriptions

We replaced a rented SaaS suite with an intranet we own, twelve modules running the whole employee lifecycle on one login.

Summary

One system, owned outright, instead of a stack of subscriptions

Bitbase India ran its people operations on Zoho. It worked, but the company's data sat in someone else's database, the workflows bent to the product rather than the company, and the bill grew with headcount.

We built Bitbase Connect: a single Drupal 11 intranet covering HR, payroll, leave, attendance, expenses, time tracking, performance, recognition, inventory, logistics, ticketing and finance reporting. Twelve custom modules, 49 custom record types, one Microsoft 365 sign-in. It is live, it is the company's own code, and it runs on the company's own server.

The challenge

The tools fit the vendor, not the company

A growing services business does not run on HR alone. Bitbase needed leave approvals that understood who actually reports to whom, timesheets that fed project profitability, expense claims that went to a manager before finance saw them, and payslips that looked like the company's own documents. None of that lived in one place.

Every gap between products became a person: someone re-keying a leave balance, chasing an approval over email, or rebuilding the same report in a spreadsheet each month. The cost was never really the licence. It was the work the licence did not do.

Before

Zoho

People data, leave and payroll ran on Zoho, with the gaps between modules filled by spreadsheets and email threads. Recurring licence cost of ₹ per year, rising with every hire.

Risks

What that exposed

Salary, identity and performance records lived in a third-party database under someone else's retention and export rules. Any process the vendor did not support could not be built — only worked around.

Our approach

Build the org chart into the software, not the permission list

The decisive design choice was how authority is modelled. Off-the-shelf tools ask you to express a company as a set of roles. Real companies run on relationships — this person reports to that one — and every approval, every visible dashboard, every "who can see my review" question follows from that single fact.

So Connect resolves permissions from the reporting line itself, not from a role a coordinator remembered to tick. A manager sees their reports' objectives, timesheets and expense claims because they are the manager, and stops seeing them the day that changes.

Everything else followed the same rule: build what the company actually does. Approval chains are the company's approval chains. Exported documents use the company's own Word template. Modules can be switched off from one dashboard, so the platform can be handed to another business with a different shape.

What we built

Twelve modules, one login

MODULEWHAT IT DOESRECORDS
hrProfiles, leave workflows, attendance, Teams presence1322
payrollPayslips, pay runs, employee loans, full & final settlements71
timetrackingLive timer, manual entry, project and person reports139
expensesReimbursements, WFH allowances, manager-then-finance approval33
performanceOKRs, self and manager reviews, 360 feedback, project health83
intranetNews feed, document repository, company directory47
inventoryStock and serialised assets with a movement audit trail67
ticketsIT, HR, finance and facilities requests with threaded replies31
bbgtokenPeer recognition tokens, shoutouts and redemption70
financeCash flow and per-employee profitability, read from payroll2
logisticsWarranty tracking, return labels, ID and letter print requests-
coreModule toggles, brand enforcement, Microsoft 365 integration-
Live record counts, September 2026. Modules with no rows yet are built and switched on.

Technology

Platform

Drupal 11.3 on PHP 8.3. Custom content entities throughout — no contributed HR module bent into shape.

Identity

Microsoft Entra ID single sign-on via OpenID Connect. Staff photos, mail and Teams presence over the Graph API.

Access

Per-entity access handlers over 10 roles and 53 permissions, resolved against the reporting line rather than role membership alone.

Documents

Dompdf behind one shared theme service, so every PDF, Excel and CSV export carries the company's Word-template branding.

Automation

ECA for notification and state-change workflows, so rules stay editable by non-developers.

Hosting

Self-hosted on a Contabo VPS in Docker. DDEV locally, Git-based deploys with configuration in version control.

Results

12

custom modules in production

49

custom record types

23

staff on one login

995

attendance records logged

204

leave requests processed

52

payslips issued in-platform

  • The subscription is gone. People operations run on software the company owns, hosts and can change the same afternoon it decides to.
  • The data came home. Salary, identity, attendance and performance records sit in a database Bitbase controls, exportable in full at any time.
  • Approvals follow the org chart. Leave, expenses, reviews and OKRs route to the actual manager, with no role list to maintain in parallel.
  • One document standard. Every export across payroll, HR, time and inventory renders from a single branded theme rather than eight different layouts.
  • The platform is reusable. Modules toggle independently from one dashboard, so the suite can be fitted to another company's shape without a rewrite.