/* ═══════════════════════════════════════════════════════════ MohiRDO Portfolio — CUSTOM JAVASCRIPT FOR ELEMENTOR ═══════════════════════════════════════════════════════════ INSTRUCTIONS: This JavaScript should be added to your WordPress site using one of these methods: METHOD 1 (Recommended): Elementor → Custom Code → Add new custom code - Location: Before closing tag - Paste the entire script below METHOD 2: Appearance → Theme File Editor → functions.php Add: wp_enqueue_script('mrd-custom', get_template_directory_uri() . '/js/custom.js', array(), '1.0', true); Then create the js/custom.js file in your theme METHOD 3: Use a plugin like "WPCode" or "Insert Headers and Footers" ═══════════════════════════════════════════════════════════ */ (function() { 'use strict'; /* ───────────────────────────────────────────────────────────── 1. SCROLL REVEAL ANIMATION Uses IntersectionObserver to animate elements into view Elements with class 'mrd-reveal' will fade up on scroll ───────────────────────────────────────────────────────────── */ function initScrollReveal() { const revealElements = document.querySelectorAll( '.mrd-reveal, .mrd-service-card, .mrd-portfolio-card, .mrd-course-card, ' + '.mrd-reason-card, .mrd-testimonial-card, .mrd-blog-featured, .mrd-blog-side, ' + '.mrd-featured-project, .mrd-role-card' ); if (!revealElements.length) return; // Add initial hidden state revealElements.forEach(el => { if (!el.classList.contains('mrd-reveal-initialized')) { el.style.opacity = '0'; el.style.transform = 'translateY(40px)'; el.style.transition = 'opacity 0.6s ease, transform 0.6s ease'; el.classList.add('mrd-reveal-initialized'); } }); const observer = new IntersectionObserver((entries) => { entries.forEach((entry, index) => { if (entry.isIntersecting) { // Stagger animation for grid items const delay = entry.target.dataset.mrdDelay || 0; setTimeout(() => { entry.target.style.opacity = '1'; entry.target.style.transform = 'translateY(0)'; entry.target.classList.add('mrd-revealed'); }, delay); observer.unobserve(entry.target); } }); }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); // Add stagger delays for grid children document.querySelectorAll('.mrd-services-grid, .mrd-portfolio-grid, .mrd-courses-grid, .mrd-reasons-grid, .mrd-testimonials-grid').forEach(grid => { const children = grid.querySelectorAll(':scope > .e-con, :scope > div'); children.forEach((child, i) => { child.dataset.mrdDelay = (i * 80) + 'ms'; }); }); revealElements.forEach(el => observer.observe(el)); } /* ───────────────────────────────────────────────────────────── 2. SKILL BAR ANIMATION Animates skill progress bars when they scroll into view Targets: .mrd-skill-fill elements ───────────────────────────────────────────────────────────── */ function initSkillBars() { const skillBars = document.querySelectorAll('.mrd-skill-fill'); if (!skillBars.length) return; const observer = new IntersectionObserver((entries) => { entries.forEach((entry, index) => { if (entry.isIntersecting) { const bar = entry.target; const targetWidth = bar.style.width || bar.getAttribute('data-width') || '0%'; // Reset and animate bar.style.width = '0%'; bar.style.transition = 'width 1s ease-out'; setTimeout(() => { bar.style.width = targetWidth; bar.classList.add('animated'); }, index * 100 + 200); observer.unobserve(bar); } }); }, { threshold: 0.5 }); skillBars.forEach(bar => observer.observe(bar)); } /* ───────────────────────────────────────────────────────────── 3. NAVIGATION SCROLL EFFECT Adds 'scrolled' class to nav on scroll for glassmorphism effect Also handles smooth scroll for anchor links ───────────────────────────────────────────────────────────── */ function initNavigation() { const nav = document.querySelector('.mrd-nav'); if (!nav) return; // Scroll effect function handleScroll() { if (window.scrollY > 50) { nav.classList.add('scrolled'); } else { nav.classList.remove('scrolled'); } } window.addEventListener('scroll', handleScroll, { passive: true }); handleScroll(); // Initial check // Smooth scroll for anchor links document.querySelectorAll('a[href^="#"]').forEach(link => { link.addEventListener('click', function(e) { const targetId = this.getAttribute('href'); if (targetId === '#') return; const target = document.querySelector(targetId); if (target) { e.preventDefault(); const navHeight = nav.offsetHeight || 64; const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - navHeight; window.scrollTo({ top: targetPosition, behavior: 'smooth' }); } }); }); // Active nav highlighting const sections = document.querySelectorAll('[id]'); function highlightNav() { const scrollPos = window.scrollY + 100; sections.forEach(section => { const sectionTop = section.offsetTop; const sectionHeight = section.offsetHeight; const sectionId = section.getAttribute('id'); if (scrollPos >= sectionTop && scrollPos < sectionTop + sectionHeight) { document.querySelectorAll('.mrd-nav-links a').forEach(link => { link.style.color = ''; if (link.getAttribute('href') === '#' + sectionId) { link.style.color = '#f0fdfa'; } }); } }); } window.addEventListener('scroll', highlightNav, { passive: true }); } /* ───────────────────────────────────────────────────────────── 4. MOBILE MENU TOGGLE Hamburger menu for mobile view Creates a hamburger button and full-screen overlay ───────────────────────────────────────────────────────────── */ function initMobileMenu() { const nav = document.querySelector('.mrd-nav'); if (!nav) return; // Only create if doesn't exist if (document.querySelector('.mrd-hamburger')) return; // Create hamburger button const hamburger = document.createElement('button'); hamburger.className = 'mrd-hamburger'; hamburger.innerHTML = ''; hamburger.setAttribute('aria-label', 'Toggle menu'); nav.appendChild(hamburger); // Create mobile overlay const overlay = document.createElement('div'); overlay.className = 'mrd-mobile-overlay'; // Clone nav links for mobile const navLinks = nav.querySelector('.mrd-nav-links'); if (navLinks) { const mobileLinks = navLinks.cloneNode(true); mobileLinks.className = 'mrd-mobile-links'; overlay.appendChild(mobileLinks); } // Add CTA button to mobile const ctaBtn = nav.querySelector('.mrd-btn-primary'); if (ctaBtn) { const mobileCTA = ctaBtn.cloneNode(true); mobileCTA.className = 'mrd-mobile-cta'; overlay.appendChild(mobileCTA); } document.body.appendChild(overlay); // Toggle hamburger.addEventListener('click', () => { hamburger.classList.toggle('active'); overlay.classList.toggle('active'); document.body.style.overflow = overlay.classList.contains('active') ? 'hidden' : ''; }); // Close on link click overlay.querySelectorAll('a').forEach(link => { link.addEventListener('click', () => { hamburger.classList.remove('active'); overlay.classList.remove('active'); document.body.style.overflow = ''; }); }); } /* ───────────────────────────────────────────────────────────── 5. FAQ ACCORDION ENHANCEMENT Smooth open/close animation for FAQ accordion (Elementor's native accordion is functional but basic) ───────────────────────────────────────────────────────────── */ function initFAQAccordion() { const accordionItems = document.querySelectorAll('.mrd-faq-accordion .elementor-accordion-item'); accordionItems.forEach(item => { const content = item.querySelector('.elementor-accordion-content'); if (content) { content.style.transition = 'max-height 0.3s ease, padding 0.3s ease'; } }); } /* ───────────────────────────────────────────────────────────── 6. COUNTER ANIMATION Animates stat numbers when they come into view Targets: Numbers in hero stats, metrics bar, etc. ───────────────────────────────────────────────────────────── */ function initCounters() { const counterElements = document.querySelectorAll('.mrd-hero-stats h3, .mrd-metrics-bar h3'); if (!counterElements.length) return; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const el = entry.target; const text = el.textContent.trim(); const match = text.match(/(\d+\.?\d*)/); if (match) { const target = parseFloat(match[1]); const suffix = text.replace(match[1], ''); const isDecimal = text.includes('.'); let current = 0; const duration = 1500; const startTime = performance.now(); function animate(currentTime) { const elapsed = currentTime - startTime; const progress = Math.min(elapsed / duration, 1); // Easing const eased = 1 - Math.pow(1 - progress, 3); current = target * eased; el.textContent = (isDecimal ? current.toFixed(1) : Math.floor(current)) + suffix; if (progress < 1) { requestAnimationFrame(animate); } else { el.textContent = text; // Ensure final value is exact } } requestAnimationFrame(animate); } observer.unobserve(el); } }); }, { threshold: 0.5 }); counterElements.forEach(el => observer.observe(el)); } /* ───────────────────────────────────────────────────────────── 7. PARALLAX EFFECT (Subtle) Gentle parallax on hero gradient orbs ───────────────────────────────────────────────────────────── */ function initParallax() { const hero = document.querySelector('.mrd-hero'); if (!hero) return; window.addEventListener('mousemove', (e) => { const x = (e.clientX / window.innerWidth - 0.5) * 20; const y = (e.clientY / window.innerHeight - 0.5) * 20; // Move pseudo-elements via CSS custom properties hero.style.setProperty('--mrd-parallax-x', x + 'px'); hero.style.setProperty('--mrd-parallax-y', y + 'px'); }, { passive: true }); } /* ───────────────────────────────────────────────────────────── 8. MAGNETIC BUTTON EFFECT Subtle magnetic pull on primary buttons when cursor is near ───────────────────────────────────────────────────────────── */ function initMagneticButtons() { const buttons = document.querySelectorAll('.mrd-btn-primary'); buttons.forEach(btn => { btn.addEventListener('mousemove', (e) => { const rect = btn.getBoundingClientRect(); const x = e.clientX - rect.left - rect.width / 2; const y = e.clientY - rect.top - rect.height / 2; btn.style.transform = `translate(${x * 0.15}px, ${y * 0.15}px)`; }); btn.addEventListener('mouseleave', () => { btn.style.transform = ''; }); }); } /* ───────────────────────────────────────────────────────────── 9. INIT ALL ON DOM READY ───────────────────────────────────────────────────────────── */ function init() { initNavigation(); initMobileMenu(); initScrollReveal(); initSkillBars(); initFAQAccordion(); initCounters(); initParallax(); initMagneticButtons(); } // Run when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } // Also run when Elementor finishes preview rendering if (window.elementorFrontend) { window.elementorFrontend.hooks.addAction('frontend/element_ready/global', function() { setTimeout(init, 100); }); } })();
Available for new projects

Crafting Digital
Experiences
That Convert

WordPress developer, SEO strategist, and digital educator helping businesses build powerful online presences that drive real results.

5+

Years Experience

200+

Projects Delivered

50+

Happy Clients

10K+

Students Taught
Ghulam Mohiudeen - MohiRDO

5+

Years of Excellence
About Me

Building the future of digital success

I’m Ghulam Mohiudeen, the person behind MohiRDO. With over 5 years of experience in WordPress development, SEO, and digital education, I’ve helped hundreds of businesses and individuals transform their online presence into powerful revenue-generating machines.

My approach combines technical expertise with creative strategy — building websites that don’t just look stunning, but perform exceptionally. From SEO-optimized WordPress sites to AI-powered solutions, I deliver results that matter.

WordPress Developer

Custom themes & plugins

SEO Specialist

Rank & grow organically

Blogger & Creator

Content that converts

Online Earner

Multiple income streams

Digital Educator

Teaching real skills

Freelancer

Building client businesses
Services

What I Bring to the Table

End-to-end digital solutions crafted with precision, backed by strategy, and delivered with excellence.

Blogging & Content

Strategic content creation that engages audiences and builds authority in your niche.

AI Tools & Integration

Leveraging cutting-edge AI to automate workflows and create intelligent digital solutions.

Online Earning

Proven strategies for building sustainable online income streams and digital businesses.

Digital Education

Comprehensive courses and mentorship programs to help you master digital skills.

Freelancing

Expert guidance on building a thriving freelance career from scratch to six figures.

UI/UX Design

Human-centered design that converts visitors into loyal customers with exceptional experiences.

Portfolio

Selected Work

A curated collection of projects that showcase expertise across WordPress, SEO, AI, and digital strategy.

E-Commerce WordPress Store
WordPress Development

E-Commerce WordPress Store

WooCommerce, Custom Theme, SEO

SaaS Landing Page
Web Design & SEO

SaaS Landing Page

Landing Page, SEO, CRO

Blog Network Platform
Blogging & Content

Blog Network Platform

Multi-site, Automation, Content

AI-Powered Chatbot
AI Integration

AI-Powered Chatbot

AI, Chatbot, Integration

Online Course Platform
Digital Education

Online Course Platform

LMS, WordPress, Gamification

Freelancer Portfolio
Freelancing

Freelancer Portfolio

Portfolio, Branding, SEO

Learning Platform

Master the Digital Game

Structured courses designed to take you from beginner to professional. Learn at your own pace with real-world projects.

6K+

Students

4.85

Avg Rating
WordPress Mastery

WordPress Mastery

📖 Beginner to Advanced
⏱ 40 hours
👥 3,200+ students
⭐ 4.9

Topics: Theme Development, Plugin Creation, WooCommerce, Security

SEO Blueprint

SEO Blueprint

📖 Intermediate
⏱ 25 hours
👥 2,800+ students
⭐ 4.8

Topics: On-Page SEO, Technical SEO, Link Building, Analytics

Skills & Expertise

Precision in Every Skill

Years of deliberate practice and real-world application have honed my expertise across the full digital spectrum.

WordPress

Theme Development
98%
Plugin Development
95%
WooCommerce
92%
Performance Optimization
96%
Security Hardening
90%

SEO & Marketing

Technical SEO
95%
On-Page Optimization
97%
Link Building Strategy
88%
Content Strategy
93%
Analytics & Reporting
91%

Digital & AI

AI Tool Integration
92%
ChatGPT & Prompting
94%
Automation Workflows
89%
Content Generation
90%
Digital Strategy
93%
WordPress
Elementor
WooCommerce
Yoast SEO
Google Analytics
Ahrefs
SEMrush
ChatGPT
Midjourney
Figma
VS Code
Git
Node.js
PHP
MySQL
Cloudflare

98%

Client Satisfaction

3x

Avg. ROI Increase

24h

Response Time

100%

Project Delivery
Why Choose Me

The MohiRDO Difference

What sets my work apart isn’t just technical skill — it’s the commitment to excellence, strategy, and genuine partnership.

Proven Track Record

200+ successful projects delivered with a 98% client satisfaction rate.

Performance-First

I don’t just build websites — I build high-performance digital machines.

Strategic Thinking

Every decision is backed by data and strategy.

Client Partnership

I treat every project as a partnership. Your success is my success.

Results-Driven

I focus on outcomes, not outputs.

Continuous Learning

I stay ahead of industry trends.

Testimonials

Client Stories

Real results from real people. Every testimonial represents a partnership built on trust and delivered with excellence.

⭐⭐⭐⭐⭐

“MohiRDO transformed our online presence completely. Our WordPress site went from loading in 8 seconds to under 2, and our organic traffic increased by 340% in just 6 months.”

Sarah Mitchell

CEO TechVenture Inc.
⭐⭐⭐⭐⭐

“Working with Ghulam was a game-changer for our business. His SEO strategy didn’t just improve our rankings — it completely changed how we approach digital marketing.”

Ahmed Al-Rashid

Founder DigitalEdge
⭐⭐⭐⭐⭐

“The freelancing course literally changed my life. I went from struggling to find clients to earning $5K+ monthly within 6 months.”

David Okonkwo

Freelancer & Course Student
Blog

Latest Insights

In-depth articles, tutorials, and strategies to help you stay ahead.

SEO
🔥 Trending

The Complete SEO Audit Checklist: 50+ Points That Matter

12 min
Dec 2024
Freelancing

From Zero to $5K/Month: A Freelancer's Roadmap

10 min
Nov 2024
FAQ

Common Questions

Everything you need to know about working together. Can’t find what you’re looking for? Reach out directly.

I offer comprehensive WordPress development services including custom theme development, plugin creation, WooCommerce setup, performance optimization, security hardening, and ongoing maintenance. Every solution is built from scratch, tailored to your specific business needs.

My SEO approach starts with a thorough technical audit, followed by keyword research, on-page optimization, content strategy development, and link building. I focus on sustainable, white-hat strategies that deliver long-term results, not quick wins that fade.

My courses are built on real-world experience, not theory. Every lesson includes practical projects, live case studies, and direct mentorship. I focus on skills that actually make money — the same strategies I use for my own business and client projects.

Absolutely. I teach multiple proven online earning strategies including freelancing, blogging, affiliate marketing, digital products, and AI-powered services. I guide you from zero to your first dollar, and then scale to sustainable income.

AI is integrated across all my services — from AI-powered content creation and SEO analysis to chatbot development and workflow automation. I use AI to enhance efficiency and results while maintaining quality and human oversight.

Timelines vary by project scope. A standard WordPress site takes 2-4 weeks, SEO campaigns show initial results in 3-6 months, and custom plugins or complex builds may take 4-8 weeks. I always provide a detailed timeline before starting.

Yes, I offer comprehensive support packages including regular updates, security monitoring, performance optimization, content updates, and priority support. My maintenance plans ensure your website stays fast, secure, and up-to-date.

Let’s Connect

Let’s Build Something Amazing Together

Whether you need a website that converts, an SEO strategy that scales, or guidance to start earning online — I’m one message away.