Musfiq R. Farhan - Blog & Portfolio Website
A modern, professional blog and portfolio website for Musfiq R. Farhan, a multi-talented entertainer, radio jockey, actor, and content creator from Bangladesh.

🌟 Key Features
📱 Public Website
- 🏠 Home Page - Hero section with professional branding and featured blog posts
- 📝 Blog - Full blog management system with search, filtering, and categorization
- 📰 News & Links - Media appearances, interviews, and featured links
- 👤 About - Professional biography and career highlights
- 🔒 Privacy Policy - Complete privacy policy for AdSense compliance
- 📱 Responsive Design - Mobile-first, fully responsive on all devices
🔐 Admin Dashboard
- Secure Login - Password-protected admin area (Password:
SmbSmb64) - ✍️ Blog Management - Create, edit, delete, and publish blog posts
- 📌 Publish Control - Toggle between draft and published status
- 🌟 Featured Posts - Mark posts as featured for homepage display
- 🔗 Link Management - Manage news, interviews, and media appearances
- 📊 Statistics - Real-time dashboard statistics
⚡ Technical Features
- React 19 - Latest React with modern hooks and patterns
- Tailwind CSS 4 - Utility-first CSS framework with OKLCH colors
- 🔍 SEO Optimized - Person schema, meta tags, Open Graph, Twitter Cards
- 📊 Google Tag Manager - Analytics tracking (GTM-WJKZBG9Z)
- 💾 LocalStorage - Automatic data persistence in browser
- 🎯 TypeScript - Full type safety throughout the application
- ♿ Accessible - WCAG compliant with proper ARIA labels
📸 Gallery
Professional Images
Hero Image:
Gallery Image 1:
Gallery Image 2:
🌐 Social Media Links
- Instagram: @musfiqfarhan
- Facebook: Musfiq R. Farhan
- IMDb: Musfiq R. Farhan
- YouTube: @musfiqrfarhan
- WhatsApp Channel: Join Channel
🚀 Quick Start
Prerequisites
- Node.js 18+
- npm or pnpm
- Git
Installation
# Clone the repository
git clone https://github.com/Sayadbayezid/MusfiqrFarhan.git
cd MusfiqrFarhan
# Install dependencies
pnpm install
# or
npm install
# Start development server
pnpm dev
# or
npm run dev
# Open in browser
# http://localhost:3000
Build for Production
pnpm build
# or
npm run build
Preview Production Build
pnpm preview
# or
npm run preview
📁 Project Structure
MusfiqrFarhan/
├── client/
│ ├── public/
│ │ └── favicon.ico
│ ├── src/
│ │ ├── components/
│ │ │ ├── ui/ # shadcn/ui components
│ │ │ ├── Header.tsx # Navigation header
│ │ │ ├── Footer.tsx # Footer with social links
│ │ │ ├── BlogCard.tsx # Blog post card
│ │ │ ├── SeoSchema.tsx # SEO schema markup
│ │ │ └── ErrorBoundary.tsx
│ │ ├── contexts/
│ │ │ ├── BlogContext.tsx # Blog state management
│ │ │ ├── LinksContext.tsx # Links state management
│ │ │ ├── AuthContext.tsx # Admin authentication
│ │ │ └── ThemeContext.tsx # Theme management
│ │ ├── pages/
│ │ │ ├── Home.tsx # Home page
│ │ │ ├── Blog.tsx # Blog listing
│ │ │ ├── BlogDetail.tsx # Blog post detail
│ │ │ ├── News.tsx # News & links
│ │ │ ├── About.tsx # About page
│ │ │ ├── PrivacyPolicy.tsx # Privacy policy
│ │ │ ├── AdminLogin.tsx # Admin login
│ │ │ ├── AdminDashboard.tsx # Admin dashboard
│ │ │ └── NotFound.tsx # 404 page
│ │ ├── App.tsx # Main app with routes
│ │ ├── main.tsx # React entry point
│ │ └── index.css # Global styles
│ └── index.html # HTML template
├── server/
│ └── index.ts # Express server
├── package.json
├── tsconfig.json
├── vite.config.ts
├── tailwind.config.ts
└── README.md
🔐 Admin Dashboard Guide
Accessing Admin Area
- Navigate to
/adminor click "Admin" in navigation - Enter password:
SmbSmb64 - Click "Login"
Managing Blog Posts
Create New Post
- Click "New Post" button
- Fill in:
- Title - Post headline
- Description - Short preview text
- Content - Full post content
- Category - Radio, Television, Acting, Content Creation, or Personal
- Tags - Comma-separated keywords
- Date - Publication date
- Toggle "Publish post" to make public
- Toggle "Featured post" for homepage display
- Click "Create Post"
Edit Post
- Find post in dashboard
- Click "Edit" button
- Modify details
- Click "Update Post"
Delete Post
- Find post in dashboard
- Click "Delete" button
- Confirm deletion
Publish/Unpublish
- Click "Public" button to publish
- Click "Draft" button to unpublish
- Draft posts are hidden from public blog page
Managing News & Links
Add News Link
- Click "News & Links" tab
- Click "New Link" button
- Fill in:
- Title - Link headline
- Description - Link description
- URL - External link
- Category - News, Interview, Feature, Appearance, or Other
- Source - Publication/source name (optional)
- Date - Date of appearance
- Toggle "Featured" if needed
- Click "Add Link"
Edit/Delete Links
- Click "Edit" to modify
- Click "Delete" to remove
💾 Data Storage
Blog Posts
- Storage: Browser LocalStorage (
blog-postskey) - Format: JSON array
- Persistence: Automatic save on every change
- Backup: Consider upgrading to database for permanent backup
News Links
- Storage: Browser LocalStorage (
news-linkskey) - Format: JSON array
- Persistence: Automatic save on every change
Admin Session
- Storage: Browser LocalStorage (
admin-authkey) - Persistence: Survives page refresh in same browser
- Scope: Not shared across browsers or devices
🎨 Customization
Update Colors
Edit client/src/index.css:
:root {
--primary: oklch(0.35 0.12 260); /* Primary blue */
--secondary: oklch(0.98 0.001 286.375); /* Warm amber */
--background: oklch(1 0 0); /* White */
--foreground: oklch(0.235 0.015 65); /* Dark text */
}
Update Typography
Edit client/index.html:
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
Update Social Links
Edit client/src/components/SeoSchema.tsx:
export const SOCIAL_LINKS = {
instagram: 'https://www.instagram.com/musfiqfarhan',
facebook: 'https://www.facebook.com/share/1cQdw7JcMs/',
imdb: 'https://www.imdb.com/name/nm11068428/bio/',
youtube: 'https://youtube.com/@musfiqrfarhan',
whatsapp: 'https://whatsapp.com/channel/0029VbBdG03HQbS1bTrVHF1X',
};
🔍 SEO Optimization
Implemented Features
- ✅ Person schema with structured data
- ✅ Meta tags (title, description, keywords)
- ✅ Open Graph tags for social sharing
- ✅ Twitter Card tags
- ✅ Responsive design (mobile-friendly)
- ✅ Fast page load
- ✅ Proper heading hierarchy
- ✅ Image alt text
For Google AdSense
- Add more blog content (10-15 posts minimum)
- Deploy to custom domain with HTTPS
- Submit to Google Search Console
- Wait for domain history (6+ months for new domains)
- Apply for AdSense
📊 Analytics
Google Tag Manager
- ID: GTM-WJKZBG9Z
- Status: ✅ Active
- Tracking: Page views, user interactions, events
Connect Google Analytics 4
- Go to Google Tag Manager dashboard
- Add Google Analytics 4 tag
- Configure events and conversions
- Test tracking with Google Analytics debugger
🚀 Deployment
GitHub Pages
- Go to repository Settings
- Enable GitHub Pages
- Select
mainbranch and root folder - Custom domain (optional)
Custom Domain
- Purchase domain from registrar
- Add DNS records pointing to GitHub Pages
- Update domain in repository settings
- Enable HTTPS
Other Hosting Options
- Vercel -
vercel deploy - Netlify - Connect GitHub repo
- Railway - Deploy from GitHub
- Render - Connect GitHub repo
📝 Blog Post Format
Sample Post Structure
{
id: '1',
title: 'Post Title',
description: 'Short description for preview',
content: 'Full post content...',
image: 'https://example.com/image.jpg',
category: 'Radio',
tags: ['tag1', 'tag2'],
date: '2026-05-08',
featured: true,
published: true
}
Categories
- Radio
- Television
- Acting
- Content Creation
- Personal
🔒 Security
Admin Password
- Current password:
SmbSmb64 - Change in
client/src/contexts/AuthContext.tsxif needed - Password is hardcoded (for static site)
Data Privacy
- No data sent to external servers (except images)
- All data stored locally in browser
- No cookies (except Google Tag Manager)
- Privacy policy available at
/privacy
✅ Features Checklist
Completed ✅
- Home page with hero section
- Blog creation and management
- News/links management
- Admin dashboard with authentication
- Publish/draft status control
- Responsive design
- SEO optimization
- Social media integration
- Google Tag Manager
- Privacy policy
- Professional images
- Person schema markup
Future Enhancements 🎯
- Database backend for permanent storage
- Email newsletter subscription
- Blog post comments
- Social media sharing buttons
- Advanced analytics
- Email notifications
- Multi-language support
- Dark mode toggle
🛠️ Available Scripts
# Development
pnpm dev # Start dev server on http://localhost:3000
# Production
pnpm build # Build for production
pnpm start # Run production server
pnpm preview # Preview production build
# Code Quality
pnpm check # TypeScript type check
pnpm format # Format code with Prettier
📚 Documentation
- TESTING_AND_REVIEW.md - Complete testing and verification report
- ADSENSE_SETUP.md - AdSense monetization setup guide
🤝 Contributing
This is a personal portfolio website. For modifications:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
📄 License
MIT License - See LICENSE file for details
📞 Contact & Social Media
- Instagram: @musfiqfarhan
- Facebook: Musfiq R. Farhan
- YouTube: @musfiqrfarhan
- IMDb: Musfiq R. Farhan
- WhatsApp: Channel
🙏 Acknowledgments
- Built with React 19 and Tailwind CSS 4
- UI components from shadcn/ui
- Icons from Lucide React
- Hosted on GitHub Pages / Custom Domain
📋 Quick Reference
Admin Login
- URL:
/admin - Password:
type your
Public Pages
- Home:
/ - Blog:
/blog - Blog Post:
/blog/:id - News:
/news - About:
/about - Privacy:
/privacy
Data Storage Keys
blog-posts- Blog posts JSONnews-links- News links JSONadmin-auth- Admin session state
Last Updated: May 8, 2026
Version: 1.0.0
Status: ✅ Production Ready
See live view musfiq r farhan
Made with ❤️ for Musfiq R. Farhan
deploy: sayad Md Bayezid Hosan