Shahid Malla

Notes from real client work

Field notes & tutorials.

Hard-won lessons from shipping WHMCS modules, securing servers, and automating hosting businesses - written so you can apply them today.

46 articles · 27 categories

Editor's pick

shahidmalla.com/blog/whmcs-hooks-guide
WHMCS Hooks Guide: Extend Functionality Without Modifying Core Files
Featured in Development

WHMCS Hooks Guide: Extend Functionality Without Modifying Core Files

Stop editing WHMCS core files. After 10+ years building WHMCS systems, here is the working model for hooks — the 7 you will actually use, a real walkthrough, and the pitfalls that have cost me nights of sleep.

S Shahid Malla · Jan 4, 2026 · 14 min
Read the full article

Latest articles

How to Add Dark Mode to WHMCS
Design 5 min

How to Add Dark Mode to WHMCS

Dark mode for WHMCS in 2026 — one CSS-variables architecture, one toggle, no flash on load. Plus how to handle the things you can't theme (Stripe Elements, PayPal buttons).

S Shahid Malla Feb 13 · 87

How to Install WHMCS Modules Safely

Installing a WHMCS module sounds simple. The 10% that goes wrong is preventable. The procedure I follow for every module install — vetting, staging, upload, activation, verification, rollback.

S Shahid Malla Feb 12 · 86

Redis and OPcache for WHMCS: The Performance Setup

OPcache plus Redis cuts WHMCS page generation time by 4-6x on a busy install. Both take 30 minutes to set up. Neither requires code changes. Here is the working config.

S Shahid Malla Feb 9 · 81

WHMCS Hook: Automate cPanel Account Side-Effects

WHMCS already creates cPanel accounts. The hook that adds DNS auto-config, CRM push, Slack notifications, fraud screening — all the cross-cutting work the module doesn't do.

S Shahid Malla Feb 8 · 90

WHMCS Firewall & Server Hardening Guide

The hardening that prevents 95% of attacks takes one afternoon. CSF firewall, admin folder rename, 2FA, file permissions, HTTPS enforcement, monitoring. The working checklist.

S Shahid Malla Feb 7 · 65

WHMCS Theme Structure: The Practical Map

Every WHMCS theme tutorial shows the file tree and stops there. This one shows the decisions that determine whether your theme survives the next WHMCS update — inheritance, Smarty essentials, when to use hooks instead of templates.

S Shahid Malla Feb 7 · 146
WHMCS Order Form Templates Compared
WHMCS 5 min

WHMCS Order Form Templates Compared

WHMCS ships 7 order-form templates. Which to use per product type, how to mix across product groups, and the conversion optimizations that actually move the needle.

S Shahid Malla Feb 5 · 93

GA4 Ecommerce Tracking for WHMCS: Complete Implementation

GA4 doesn't ship with WHMCS — you wire it yourself. The practical setup: tag strategy, ecommerce events from order form to purchase, server-side refunds, cross-domain attribution.

S Shahid Malla Feb 3 · 93
How to Set Up WHMCS for a Real Hosting Business
WHMCS 6 min

How to Set Up WHMCS for a Real Hosting Business

The setup checklist for a production-ready WHMCS — past the installer, all the way to "ready for paying customers." Server spec, settings tour, branding, security, testing.

S Shahid Malla Feb 1 · 84

WHMCS Razorpay Integration: Indian Payment Gateway Setup

Selling hosting to India? Razorpay covers UPI, NetBanking, wallets, cards — all in INR with eMandate for recurring. The complete setup including GST and subscription patterns.

S Shahid Malla Jan 30 · 65

WHMCS PayPal Integration: Setup, Subscriptions & Troubleshooting

PayPal isn't optional even when you have Stripe. The working setup — picking the right module, business account config, API credentials, IPN webhooks, and the recurring billing pattern.

S Shahid Malla Jan 29 · 76

WHMCS Stripe Integration: The Setup I Run on Every Install

The Stripe integration walkthrough most guides skip the details of — picking the right module, account setup, webhooks (the part everyone misses), 3D Secure, recurring billing, and the test cycle before going live.

S Shahid Malla Jan 28 · 100

Want it built for you?

Reading is good. Shipping is better.

If a tutorial here solves your problem, great. If it doesn't, that's why I'm here. Tell me what you need.