Sign in Get started
Solutions
ComplianceDigital ForensicsAccount SecurityWebsite SecurityWeb OptimizationSEO / GEOBusiness IntelligenceUI / UXStartupsDigital TransformationWhite LabelAI Code AuditAI / MLConsulting & AdvisoryBusiness Strategy
Products
Web HostingVPS HostingSSL CertificatesSiteLock SecurityWebsite BackupEmail Spam FilterOX App Suite360 MonitoringWeebly BuilderSite BuilderSEO (Marketgoo)Account SecurityDomainsAll Products
More
NetworkSecurity AboutCareersContactRoadmapLegal
The new Internetivo platform launches 21 October 2026Launch 21 OctRead more
Blog

Why we built our own WHMCS admin theme

Internetivo has run its client billing on WHMCS for years, and today the Internetivo platform itself runs as a WHMCS add-on. That means our team lives in the WHMCS admin area: answering tickets, checking invoices, looking up clients and keeping an eye on the business. When you spend that many hours in one screen, small frictions add up.

So we built our own admin theme. It is a cosmetic skin: it changes how the admin area looks and feels, not what WHMCS does underneath. This article explains what we changed, why, and a few lessons from building and running it.

What we needed from the admin every day

We started with a list of the things our team actually does, many times a day, and asked what slowed each one down. Three themes came out of it.

Reading comfort. Our team works early mornings and late evenings. A bright interface late at night is tiring, and a dark one at midday in a sunny office is hard to read. We wanted both, and a choice.

Speed. Most admin work is navigation: find a client, open a ticket, jump to an invoice, go back. Every click saved on a task done fifty times a day is worth having.

Calm. An admin area full of competing colours and dense tables makes it harder to spot the one thing that actually needs attention. We wanted the important things, such as an overdue invoice or an unanswered ticket, to stand out because everything else was quieter.

Light, dark and one consistent look

The theme is built on the AdminLTE framework, with a large stylesheet that restyles every standard element: the sidebar, cards, tables, forms, buttons and alerts. Every colour comes from one shared palette, defined once, with a light and a dark version of each.

Team members can choose light, dark, or automatic, which follows their computer's own setting. Because every element takes its colour from the same palette, a new WHMCS page we had never seen before still looks right in both modes, rather than flashing a bright white panel in the middle of a dark screen.

We also added a few small comforts: an uploaded logo and favicon managed from the admin itself, toast notifications that confirm an action without a page full of banners, and a layout that holds up on three screen sizes, including a phone for the times someone needs to check something away from the desk.

Speed: shortcuts and search

The biggest everyday gain came from the keyboard.

  • / jumps to search, so finding a client or an invoice starts with one key, wherever you are.
  • [ opens and closes the sidebar, giving tables the full width of the screen when you need it.
  • G followed by a letter goes straight to a common section, the way many developer tools work.

None of this is clever on its own. Together, it means a support agent can move through a queue without reaching for the mouse every few seconds.

We also put a simple analytics view into the admin dashboard, showing website traffic alongside WHMCS income on the same chart. Seeing the two together answers a question we used to ask by opening two different tools: did that busy week on the site actually turn into business?

Small safety nets

Because the admin area holds client and billing data, we treated the theme as part of our security as well as its looks.

  • A session timeout warning tells a team member before they are signed out, so they do not lose a half-written ticket reply.
  • Everything the theme displays is escaped, and its own forms are protected against cross-site request forgery, so a cosmetic layer never becomes a way in.
  • Uploads, such as the logo, are validated before they are accepted.
  • The theme stands alone. It does not depend on any third-party theme add-on, so there is one less piece of outside code with access to the admin area.

What building it taught us

The most useful lessons were not about design at all.

Keep the skin and the logic apart. A theme should change how things look, never what they do. When we kept functional code out of the theme, updates to either became much safer to make.

Know which copy is live. At one point, a module that sat alongside the theme existed in two places, and the copy we were editing was not the one the server was running. A fix we believed had shipped never had. We found it by comparing checksums of the live files against our repositories. Since then, every file that runs in production has exactly one source, and we check live against it before changing anything.

Restyle carefully, then leave it alone. A theme touches every page. We change it in small, reversible steps, check each one in light and dark mode, and resist the urge to redesign for the sake of it.

We built this theme for our own team, and it has made a long working day in the admin noticeably easier. If you run WHMCS yourself, we hope some of these ideas are useful for your own setup, whatever theme you use.