Case study · Web Hosting
DomainsOnline
WHMCS rebuild for a South African domain and hosting company
A WHMCS rebuild for DomainsOnline in South Africa: an upgrade to WHMCS 9.1, a new website and client area, .co.za and .africa automation, and Vultr VPS.
What I built
DomainsOnline registers .co.za and .africa domains and sells web hosting, WordPress hosting and VPS servers to South African businesses. WHMCS runs the whole site, including the home page. I took over an older WHMCS install whose theme no longer worked on current PHP, and rebuilt it from the platform up.
First I upgraded WHMCS from 8.7 to 9.1 and PHP from 8.1 to 8.3 in a maintenance window, with a full backup and a rollback script I had tested. Then I built the new website and client area as a custom child theme of Nexus. The home page has a one-line menu, a domain search with price tiles and a 1-2-3 path to getting online. Other pages cover domain registration, transfer, WHOIS lookup, bulk search, web hosting, WordPress hosting and VPS. Old addresses forward to the new pages with 301 redirects. The checkout has two steps, and the client area shows hosting, domains and unpaid invoices at a glance. The owner changes homepage texts, menus and product lines from an admin addon, without code.
Domains needed the most work. The .co.za registrar's API had started refusing requests from the server's country, so registrations and nameserver changes failed. I routed the registrar module through a small relay server in Johannesburg and fixed its admin page and dashboard widget for WHMCS 9. A new hook creates the DNS zone on the cPanel server before a .za domain is registered, so the registry does not hold the new domain for missing DNS, and checks the registry again afterwards. I added .africa through the same registrar, with a WHOIS server so the domain search can find .africa names, and rebuilt bulk search for up to 20 names at once.
For the VPS plans I wrote a WHMCS addon and server module for Vultr. A server is created in Johannesburg on payment, with the operating system the customer picked. In the client area the customer can restart it, see the root password, open a console, watch traffic and manage a firewall. I also fixed the PayFast payment notification for WHMCS 9 and corrected domains that renewed at no charge. I removed add-on products that could not be delivered, closed the security gaps found in the audit, and added captcha to the sign-up, contact, ticket and domain search forms. The handover included an admin guide, a narrated admin video and a customer help center with step-by-step articles, screenshots and narrated videos.
What a domain and hosting company needs, from building this one: upgrade WHMCS before you redesign it, with a backup and a rollback you have tested; read the registrar sync errors every day, because a blocked API looks like a nameserver problem to customers; create the DNS zone before you register a .za domain; check every domain that renews for free; and give the owner an admin screen for texts and products, so small changes do not wait for a developer.
Related service: WHMCS development services.
The challenge
How I solved it
The outcome
Tech stack
Other work
More like this.
NETHAVO
Web Hosting
NETHAVO is a German hosting brand. I built its WordPress website, a WHMCS 9 client area in the same design, and WHMCS modules for SEPA, invoices and DATEV.
WPHost
Web Hosting
A managed WordPress hosting platform on cPanel, LiteSpeed and WHMCS: automated site provisioning, staging copies and a customer panel that hides cPanel.
GoLive Naija
Web Hosting
A hosting website for GoLive Naija in Nigeria: plan pages, domain registration and SSL, connected to WHMCS and cPanel servers with CloudLinux and LiteSpeed.
Have something similar in mind?
Tell me what you're working on. Same approach, your project.
Start a project