A modern, enterprise-grade marketing platform for MZHub β An AI-powered spiritual technology platform designed for religious institutions, temples, ashrams, and faith communities worldwide.
- 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)
- 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
- Overview
- Tech Stack
- Features
- Getting Started
- Project Structure
- Component Library
- Styling & Theming
- API Routes
- Content Management
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.
"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.
- Next.js 14.2.0 - React framework with App Router
- React 18.3.1 - UI library
- TypeScript 5.0+ - Type-safe development
- 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
- Lucide React 0.555.0 - Icon library
- Tabler Icons 3.35.0 - Additional icons
- React Icons 5.5.0 - Icon collection
- gray-matter 4.0.3 - Frontmatter parsing for MDX
- MDX - Markdown with JSX support
- clsx 2.1.1 - Conditional className utility
- tailwind-merge 3.4.0 - Tailwind class merging
- class-variance-authority 0.7.1 - Component variants
- ESLint - Code linting
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixing
- 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
- 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
- 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
- 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
- Node.js: 18.0.0 or higher
- npm: 9.0.0 or higher (or yarn/pnpm equivalent)
- Git: For version control
# 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# Start development server
npm run dev
# Open browser to http://localhost:3000The development server includes:
- Hot Module Replacement (HMR)
- Fast Refresh for instant updates
- Error overlay for debugging
- TypeScript type checking
# Create optimized production build
npm run build
# Start production server
npm start
# Or export static site
npm run build && npm run export# Run ESLint
npm run lint
# Fix auto-fixable issues
npm run lint -- --fixMZHub/
βββ 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
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.tsxfor suspense boundaries - Error Handling:
error.tsxfor error boundaries
- 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
- React Context: Theme and transition providers
- Local State: useState for component-level state
- Server State: Server components for data fetching
- 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
Navbar: Responsive navigation with mobile menu, theme toggleFooterNew: Multi-column footer with links and social icons
Button: Primary button with variants (primary, secondary, outline)BlobButton: Animated blob effect buttonCard: Container with shadow and hover effectsHoverCard: Card with advanced hover animationsInput: Form input with validation statesTextarea: Multi-line text inputCheckbox: Accessible checkbox componentSwitch: Toggle switch componentLabel: Form label componentTooltip: Hover tooltip component
AnimatedCanvas: Three.js 3D backgroundScrollReveal: Fade-in on scrollScrollSlideReveal: Slide-in on scrollPageTransition: Route change animationsLoadingScreen: Initial page load animationRotatingText: Text rotation animationInfiniteCarousel: Continuous scrolling content
PlatformFeatures: Feature showcase gridStaggerTestimonials: Animated testimonial cardsTeamCarousel: Team member carouselVideoShowcase: Video player with custom controlsProjectCard: Project preview card
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
}
}primary: {
light: '#e0e7ff',
DEFAULT: 'hsl(var(--primary))',
dark: '#0f172a',
}
secondary: {
light: '#6366f1',
dark: '#1e293b',
}
accent: {
gold: '#f59e0b',
beige: '#fef3c7',
blue: '#6366f1',
}- Sans-serif: Inter (body text, UI elements)
- Serif: Playfair Display (headings, emphasis)
animations: {
'fade-in': 'fadeIn 0.6s ease-in-out',
'slide-up': 'slideUp 0.6s ease-out',
'float': 'float 3s ease-in-out infinite',
}- Title templates with site name
- Descriptive meta descriptions
- Keywords meta tag
- Author and creator tags
- Robots directives
- OG title, description, type
- OG locale and URL
- Site name
- Summary large image card
- Title and description
- Semantic HTML5 structure
- Proper heading hierarchy (H1 β H6)
- Alt text on images (needs completion)
- Dynamic sitemap generation
- Robots.txt configuration
- Canonical URLs
- 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
Endpoint: POST /api/contact
Request Body:
{
"name": "string",
"email": "string",
"message": "string"
}Response:
{
"success": true,
"message": "Message sent successfully"
}Status:
Blog content is managed through:
- Static Data:
lib/blogPosts.ts(current implementation) - 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 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 data in lib/teamMembers.ts:
interface TeamMember {
name: string
role: string
bio: string
image: string
social: {
linkedin?: string
twitter?: string
github?: string
}
}Testimonial data in lib/testimonials.ts:
interface Testimonial {
quote: string
author: string
role: string
organization: string
image?: string
}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