Skip to content

Priyanshu-byte-coder/mzhub

Repository files navigation

MZHub Marketing Website

A modern, enterprise-grade marketing platform for MZHub β€” An AI-powered spiritual technology platform designed for religious institutions, temples, ashrams, and faith communities worldwide.


🎯 Project Status

⚠️ TO-DO LIST

  • Fill site with real information (team, testimonials, content)
  • Projects page (add real project files and images)
  • Landing page optimization (social proof, CTAs, demo video)
  • Blog page (write production articles)
  • Contact automation (email integration)
  • SEO optimization (structured data, analytics, alt text, Core Web Vitals)

βœ… COMPLETED FEATURES

  • Core Architecture: Next.js 14 App Router with TypeScript
  • Responsive Design: Mobile-first, fully responsive across all devices
  • Theme System: Dark/Light mode with system preference detection
  • Animation Framework: Framer Motion with scroll-triggered animations
  • UI Components: Comprehensive component library with shadcn/ui
  • Navigation: Responsive navbar with mobile menu
  • Footer: Multi-column footer with sitemap and social links
  • Loading States: Custom loading screen with animations
  • Page Transitions: Smooth route transitions
  • Basic SEO: Meta tags, Open Graph, Twitter Cards
  • Sitemap: Dynamic sitemap generation
  • Robots.txt: Search engine crawler configuration
  • Contact Form: Client-side validation (backend integration pending)
  • Blog Infrastructure: MDX support and dynamic routing
  • Projects Infrastructure: Project listing and detail pages
  • Typography System: Custom font configuration (Inter + Playfair Display)
  • Color System: Spiritual-themed color palette (indigo + gold)
  • Icon System: Lucide React, Tabler Icons, React Icons integration

πŸ“‹ Table of Contents


🌟 Overview

MZHub is a comprehensive marketing website built to showcase an AI-powered spiritual platform for religious institutions. The platform enables temples, ashrams, churches, mosques, and other faith communities to extend their spiritual reach through technology while preserving their sacred teachings.

Key Brand Message

"You are not replacing the guru. You are extending their reach."

This core philosophy is emphasized throughout the site, ensuring that technology serves as an amplifier of spiritual guidance rather than a replacement.


πŸ›  Tech Stack

Core Framework

  • Next.js 14.2.0 - React framework with App Router
  • React 18.3.1 - UI library
  • TypeScript 5.0+ - Type-safe development

Styling & UI

  • Tailwind CSS 3.4.0 - Utility-first CSS framework
  • shadcn/ui - High-quality component library
  • Radix UI - Accessible component primitives
  • Framer Motion 11.18.2 - Animation library
  • GSAP 3.13.0 - Advanced animations
  • Three.js 0.167.1 - 3D graphics (for AnimatedCanvas)
  • next-themes 0.4.6 - Theme management

Icons & Graphics

  • Lucide React 0.555.0 - Icon library
  • Tabler Icons 3.35.0 - Additional icons
  • React Icons 5.5.0 - Icon collection

Content & Data

  • gray-matter 4.0.3 - Frontmatter parsing for MDX
  • MDX - Markdown with JSX support

Utilities

  • clsx 2.1.1 - Conditional className utility
  • tailwind-merge 3.4.0 - Tailwind class merging
  • class-variance-authority 0.7.1 - Component variants

Development Tools

  • ESLint - Code linting
  • PostCSS - CSS processing
  • Autoprefixer - CSS vendor prefixing

✨ Features

🎨 Design & UX

  • Modern Aesthetic: Clean, professional design with spiritual undertones
  • Responsive Layout: Mobile-first design, optimized for all screen sizes
  • Dark/Light Mode: System-aware theme switching with smooth transitions
  • Smooth Animations: Scroll-triggered animations, page transitions, hover effects
  • Accessibility: WCAG compliant, keyboard navigation, screen reader support
  • Custom Loading Screen: Branded loading experience with animations

πŸ“„ Pages & Routes

  • Home (/) - Hero section, features, philosophy, testimonials, CTA
  • About (/about) - Company mission, values, story, team showcase
  • Projects (/projects) - Portfolio of implementations and case studies
  • Blog (/blog) - Articles on spiritual technology and industry insights
  • Contact (/contact) - Contact form with validation

🎯 Interactive Components

  • Animated Hero: Rotating text animation (Guru ↔ AI)
  • Video Showcase: Embedded video with custom controls
  • Testimonial Carousel: Staggered animation testimonials
  • Team Carousel: Interactive team member showcase
  • Platform Features: Hover cards with detailed feature descriptions
  • Infinite Carousel: Continuous scrolling content
  • Scroll Animations: Reveal, slide, fade effects on scroll
  • 3D Canvas: Three.js animated background

πŸ”§ Technical Features

  • Static Site Generation (SSG): Pre-rendered pages for optimal performance
  • Dynamic Routing: File-based routing with Next.js App Router
  • API Routes: Server-side endpoints for form handling
  • Image Optimization: Next.js Image component with automatic optimization
  • Font Optimization: Google Fonts with display swap
  • Code Splitting: Automatic code splitting for faster loads
  • TypeScript: Full type safety across the codebase

πŸš€ Getting Started

Prerequisites

  • Node.js: 18.0.0 or higher
  • npm: 9.0.0 or higher (or yarn/pnpm equivalent)
  • Git: For version control

Installation

# Clone the repository
git clone https://github.com/your-org/MZHub.git
cd MZHub

# Install dependencies
npm install

# Set up environment variables (if needed)
cp .env.example .env.local
# Edit .env.local with your configuration

Development

# Start development server
npm run dev

# Open browser to http://localhost:3000

The development server includes:

  • Hot Module Replacement (HMR)
  • Fast Refresh for instant updates
  • Error overlay for debugging
  • TypeScript type checking

Building for Production

# Create optimized production build
npm run build

# Start production server
npm start

# Or export static site
npm run build && npm run export

Linting

# Run ESLint
npm run lint

# Fix auto-fixable issues
npm run lint -- --fix

πŸ“‚ Project Structure

MZHub/
β”œβ”€β”€ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ (site)/                   # Site route group
β”‚   β”‚   β”œβ”€β”€ about/                # About page
β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”œβ”€β”€ blog/                 # Blog pages
β”‚   β”‚   β”‚   β”œβ”€β”€ [slug]/           # Dynamic blog post
β”‚   β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”‚   └── page.tsx          # Blog listing
β”‚   β”‚   β”œβ”€β”€ contact/              # Contact page
β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”œβ”€β”€ projects/             # Projects pages
β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”œβ”€β”€ layout.tsx            # Site layout
β”‚   β”‚   β”œβ”€β”€ page.tsx              # Homepage
β”‚   β”‚   └── sitemap.ts            # Dynamic sitemap
β”‚   β”œβ”€β”€ api/                      # API routes
β”‚   β”‚   β”œβ”€β”€ blog/                 # Blog API endpoints
β”‚   β”‚   β”‚   └── route.ts
β”‚   β”‚   └── contact/              # Contact form handler
β”‚   β”‚       └── route.ts
β”‚   β”œβ”€β”€ layout.tsx                # Root layout
β”‚   β”œβ”€β”€ globals.css               # Global styles
β”‚   β”œβ”€β”€ icon.tsx                  # Favicon generator
β”‚   └── apple-icon.tsx            # Apple touch icon
β”‚
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ layout/                   # Layout components
β”‚   β”‚   β”œβ”€β”€ Navbar.tsx            # Main navigation
β”‚   β”‚   └── FooterNew.tsx         # Site footer
β”‚   β”œβ”€β”€ ui/                       # UI components
β”‚   β”‚   β”œβ”€β”€ AnimatedCanvas.tsx    # 3D background
β”‚   β”‚   β”œβ”€β”€ BlobButton.tsx        # Animated button
β”‚   β”‚   β”œβ”€β”€ Button.tsx            # Base button
β”‚   β”‚   β”œβ”€β”€ Card.tsx              # Card component
β”‚   β”‚   β”œβ”€β”€ HoverCard.tsx         # Hover effect card
β”‚   β”‚   β”œβ”€β”€ PlatformFeatures.tsx  # Features section
β”‚   β”‚   β”œβ”€β”€ animated-tooltip.tsx  # Tooltip component
β”‚   β”‚   β”œβ”€β”€ background-paths.tsx  # SVG background
β”‚   β”‚   β”œβ”€β”€ canvas.tsx            # Canvas utilities
β”‚   β”‚   β”œβ”€β”€ checkbox.tsx          # Checkbox input
β”‚   β”‚   β”œβ”€β”€ container-scroll-animation.tsx
β”‚   β”‚   β”œβ”€β”€ glow-menu.tsx         # Glowing menu effect
β”‚   β”‚   β”œβ”€β”€ infinite-carousel.tsx # Infinite scroll
β”‚   β”‚   β”œβ”€β”€ input.tsx             # Text input
β”‚   β”‚   β”œβ”€β”€ label.tsx             # Form label
β”‚   β”‚   β”œβ”€β”€ loading-screen.tsx    # Loading animation
β”‚   β”‚   β”œβ”€β”€ page-transition.tsx   # Page transitions
β”‚   β”‚   β”œβ”€β”€ project-card.tsx      # Project card
β”‚   β”‚   β”œβ”€β”€ scroll-reveal.tsx     # Scroll animations
β”‚   β”‚   β”œβ”€β”€ scroll-slide-reveal.tsx
β”‚   β”‚   β”œβ”€β”€ switch.tsx            # Toggle switch
β”‚   β”‚   β”œβ”€β”€ textarea.tsx          # Text area input
β”‚   β”‚   β”œβ”€β”€ theme-toggle-button.tsx # Theme switcher
β”‚   β”‚   └── tooltip.tsx           # Tooltip
β”‚   β”œβ”€β”€ RotatingText.tsx          # Animated text rotation
β”‚   β”œβ”€β”€ stagger-testimonials.tsx  # Testimonial section
β”‚   β”œβ”€β”€ team-carousel.tsx         # Team showcase
β”‚   β”œβ”€β”€ theme-provider.tsx        # Theme context
β”‚   β”œβ”€β”€ transition-provider.tsx   # Transition context
β”‚   └── video-component.tsx       # Video player
β”‚
β”œβ”€β”€ lib/                          # Utilities and data
β”‚   β”œβ”€β”€ blog.ts                   # Blog utilities
β”‚   β”œβ”€β”€ blogPosts.ts              # Blog post data
β”‚   β”œβ”€β”€ constants.ts              # App constants
β”‚   β”œβ”€β”€ projects.ts               # Project utilities
β”‚   β”œβ”€β”€ projectsData.ts           # Project data
β”‚   β”œβ”€β”€ teamMembers.ts            # Team data
β”‚   β”œβ”€β”€ testimonials.ts           # Testimonial data
β”‚   └── utils.ts                  # Helper functions
β”‚
β”œβ”€β”€ types/                        # TypeScript types
β”‚   β”œβ”€β”€ blog.ts                   # Blog types
β”‚   β”œβ”€β”€ index.ts                  # Shared types
β”‚   └── project.ts                # Project types
β”‚
β”œβ”€β”€ content/                      # Content files
β”‚   └── projects/                 # Project MDX files
β”‚
β”œβ”€β”€ public/                       # Static assets
β”‚   β”œβ”€β”€ icons/                    # Icon files
β”‚   β”œβ”€β”€ images/                   # Image assets
β”‚   β”œβ”€β”€ projects/                 # Project images
β”‚   β”œβ”€β”€ team/                     # Team photos
β”‚   β”œβ”€β”€ video/                    # Video files
β”‚   β”œβ”€β”€ MZHub-logo.png            # Logo (PNG)
β”‚   β”œβ”€β”€ MZHub-logo.svg            # Logo (SVG)
β”‚   β”œβ”€β”€ MZHub-logo_w.svg          # Logo white variant
β”‚   └── robots.txt                # Robots file
β”‚
β”œβ”€β”€ styles/                       # Additional styles
β”‚
β”œβ”€β”€ hooks/                        # Custom React hooks
β”‚
β”œβ”€β”€ .github/                      # GitHub configuration
β”‚
β”œβ”€β”€ .next/                        # Next.js build output
β”œβ”€β”€ node_modules/                 # Dependencies
β”‚
β”œβ”€β”€ .eslintrc.json                # ESLint configuration
β”œβ”€β”€ .gitignore                    # Git ignore rules
β”œβ”€β”€ components.json               # shadcn/ui config
β”œβ”€β”€ next.config.js                # Next.js configuration
β”œβ”€β”€ next-env.d.ts                 # Next.js TypeScript types
β”œβ”€β”€ package.json                  # Dependencies & scripts
β”œβ”€β”€ package-lock.json             # Dependency lock file
β”œβ”€β”€ postcss.config.js             # PostCSS configuration
β”œβ”€β”€ tailwind.config.ts            # Tailwind configuration
β”œβ”€β”€ tsconfig.json                 # TypeScript configuration
β”œβ”€β”€ README.md                     # This file
└── UPDATE-SUMMARY.md             # Update changelog

πŸ— Architecture

App Router Structure

The project uses Next.js 14's App Router with the following conventions:

  • Route Groups: (site) group for main site pages
  • Dynamic Routes: [slug] for blog posts and projects
  • Layouts: Nested layouts for shared UI
  • Loading States: loading.tsx for suspense boundaries
  • Error Handling: error.tsx for error boundaries

Component Architecture

  • Atomic Design: Components organized by complexity
  • Composition: Small, reusable components composed into larger features
  • Props Interface: TypeScript interfaces for all component props
  • Client/Server: Explicit "use client" directives where needed

State Management

  • React Context: Theme and transition providers
  • Local State: useState for component-level state
  • Server State: Server components for data fetching

Styling Strategy

  • Tailwind Utility Classes: Primary styling method
  • CSS Modules: For component-specific styles (when needed)
  • CSS Variables: For theme values and dynamic colors
  • Responsive Design: Mobile-first breakpoints

🎨 Component Library

Layout Components

  • Navbar: Responsive navigation with mobile menu, theme toggle
  • FooterNew: Multi-column footer with links and social icons

UI Components

  • Button: Primary button with variants (primary, secondary, outline)
  • BlobButton: Animated blob effect button
  • Card: Container with shadow and hover effects
  • HoverCard: Card with advanced hover animations
  • Input: Form input with validation states
  • Textarea: Multi-line text input
  • Checkbox: Accessible checkbox component
  • Switch: Toggle switch component
  • Label: Form label component
  • Tooltip: Hover tooltip component

Animation Components

  • AnimatedCanvas: Three.js 3D background
  • ScrollReveal: Fade-in on scroll
  • ScrollSlideReveal: Slide-in on scroll
  • PageTransition: Route change animations
  • LoadingScreen: Initial page load animation
  • RotatingText: Text rotation animation
  • InfiniteCarousel: Continuous scrolling content

Feature Components

  • PlatformFeatures: Feature showcase grid
  • StaggerTestimonials: Animated testimonial cards
  • TeamCarousel: Team member carousel
  • VideoShowcase: Video player with custom controls
  • ProjectCard: Project preview card

🎨 Styling & Theming

Color Palette

Spiritual Theme

spiritual: {
  indigo: {
    50: '#f0f4ff',   // Lightest
    100: '#e0e7ff',
    200: '#c7d2fe',
    300: '#a5b4fc',
    400: '#818cf8',
    500: '#6366f1',  // Base
    600: '#4f46e5',
    700: '#4338ca',
    800: '#3730a3',
    900: '#312e81',
    950: '#1e1b4b'   // Darkest
  },
  gold: {
    50: '#fefce8',   // Lightest
    100: '#fef9c3',
    200: '#fef08a',
    300: '#fde047',
    400: '#facc15',
    500: '#eab308',  // Base
    600: '#ca8a04',
    700: '#a16207',
    800: '#854d0e',
    900: '#713f12'   // Darkest
  }
}

Semantic Colors

primary: {
  light: '#e0e7ff',
  DEFAULT: 'hsl(var(--primary))',
  dark: '#0f172a',
}
secondary: {
  light: '#6366f1',
  dark: '#1e293b',
}
accent: {
  gold: '#f59e0b',
  beige: '#fef3c7',
  blue: '#6366f1',
}

Typography

  • Sans-serif: Inter (body text, UI elements)
  • Serif: Playfair Display (headings, emphasis)

Animations

animations: {
  'fade-in': 'fadeIn 0.6s ease-in-out',
  'slide-up': 'slideUp 0.6s ease-out',
  'float': 'float 3s ease-in-out infinite',
}

πŸ“± SEO & Performance

Current SEO Implementation

Meta Tags

  • Title templates with site name
  • Descriptive meta descriptions
  • Keywords meta tag
  • Author and creator tags
  • Robots directives

Open Graph

  • OG title, description, type
  • OG locale and URL
  • Site name

Twitter Cards

  • Summary large image card
  • Title and description

Technical SEO

  • Semantic HTML5 structure
  • Proper heading hierarchy (H1 β†’ H6)
  • Alt text on images (needs completion)
  • Dynamic sitemap generation
  • Robots.txt configuration
  • Canonical URLs

Performance Optimizations

  • Image Optimization: Next.js Image component with automatic WebP conversion
  • Font Optimization: Google Fonts with display: swap
  • Code Splitting: Automatic route-based splitting
  • Dynamic Imports: Lazy loading for heavy components (AnimatedCanvas)
  • Static Generation: Pre-rendered pages at build time

πŸ”Œ API Routes

Contact Form (/api/contact)

Endpoint: POST /api/contact

Request Body:

{
  "name": "string",
  "email": "string",
  "message": "string"
}

Response:

{
  "success": true,
  "message": "Message sent successfully"
}

Status: ⚠️ Backend integration pending (currently logs to console)


πŸ“ Content Management

Blog Posts

Blog content is managed through:

  1. Static Data: lib/blogPosts.ts (current implementation)
  2. MDX Files: content/blog/ (future implementation)

Blog Post Structure:

interface BlogPost {
  slug: string
  title: string
  excerpt: string
  content: string
  author: string
  date: string
  readTime: string
  category: string
  tags: string[]
  image?: string
}

Projects

Projects use MDX files in content/projects/:

Project Frontmatter:

---
title: "Project Title"
description: "Project description"
category: "Category"
tags: ["tag1", "tag2"]
image: "/projects/image.jpg"
gallery: ["/projects/img1.jpg", "/projects/img2.jpg"]
link: "https://project-url.com"
github: "https://github.com/repo"
featured: true
---

Team Members

Team data in lib/teamMembers.ts:

interface TeamMember {
  name: string
  role: string
  bio: string
  image: string
  social: {
    linkedin?: string
    twitter?: string
    github?: string
  }
}

Testimonials

Testimonial data in lib/testimonials.ts:

interface Testimonial {
  quote: string
  author: string
  role: string
  organization: string
  image?: string
}

πŸ“„ License

This project is proprietary software developed for MZHub. All rights reserved.

Copyright Β© 2024 MZHub. All rights reserved.


Built with ❀️ for spiritual institutions worldwide

Last Updated: December 2024

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors