{"id":29745691,"url":"https://github.com/zmofei/mofei-life-web","last_synced_at":"2025-07-26T06:17:19.429Z","repository":{"id":303118509,"uuid":"961133141","full_name":"zmofei/mofei-life-web","owner":"zmofei","description":"🚀 Mofei's personal blog website - Open source Next.js multilingual blog platform for learning and reference. Features modern design, WeChat integration, and Cloudflare deployment.","archived":false,"fork":false,"pushed_at":"2025-07-20T08:08:15.000Z","size":550,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T09:24:58.824Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.mofei.life","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zmofei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-05T20:30:35.000Z","updated_at":"2025-07-20T08:08:19.000Z","dependencies_parsed_at":"2025-07-05T20:39:23.614Z","dependency_job_id":"b41150e4-370a-4e95-a5c1-e246014527c8","html_url":"https://github.com/zmofei/mofei-life-web","commit_stats":null,"previous_names":["zmofei/mofei-life-web"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zmofei/mofei-life-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmofei%2Fmofei-life-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmofei%2Fmofei-life-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmofei%2Fmofei-life-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmofei%2Fmofei-life-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zmofei","download_url":"https://codeload.github.com/zmofei/mofei-life-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmofei%2Fmofei-life-web/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267128037,"owners_count":24040157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-26T06:17:17.597Z","updated_at":"2025-07-26T06:17:19.412Z","avatar_url":"https://github.com/zmofei.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mofei Life Web\n\n[![Cloudflare Pages](https://img.shields.io/badge/Deployed%20on-Cloudflare%20Pages-orange?style=flat-square\u0026logo=cloudflare)](https://www.mofei.life/)\n[![Deployment Status](https://img.shields.io/badge/Status-Live-brightgreen?style=flat-square)](#)\n\nOpen source code for the personal blog website [mofei.life](https://www.mofei.life/), a modern multilingual personal blog platform built with Next.js.\n\n**[中文说明 / Chinese Documentation](README_zh.md)**\n\n**Note: This project is primarily intended for code reference and learning purposes. The API endpoints connect to the author's personal backend services. For deploying your own version, please refer to the [Custom Deployment](#custom-deployment) section.**\n\n## 🤖 Development Philosophy\n\nThis project represents Mofei's journey with modern development practices:\n\n- **Pre-2025**: All code was handwritten by Mofei, representing traditional development approaches\n- **2025 onwards**: Mofei embraced AI-assisted development, and the codebase now reflects a collaborative approach between human creativity and AI efficiency\n\nThis evolution showcases how developers can effectively integrate AI tools while maintaining code quality and personal vision.\n\n## 🌟 Features\n\n- **Multilingual Support**: Full support for both Chinese and English\n- **Modern UI**: Beautiful, responsive design with smooth animations\n- **Voice Commentary**: Audio narration for blog posts with speaker icons\n- **SPA Navigation**: Single Page Application experience while preserving SSR benefits\n- **Interactive Comments**: Real-time comment system with user avatars\n- **WeChat Integration**: QR code sharing for WeChat public accounts\n- **Blog System**: Dynamic blog posts with rich content support\n- **RSS Feeds**: Automated RSS feed generation\n- **SEO Optimized**: Complete SEO metadata and sitemap generation\n- **Mobile Responsive**: Optimized for all device sizes\n- **Dark Theme**: Elegant dark theme design\n\n## 🚀 Tech Stack\n\n- **Framework**: Next.js 15.2.4 with App Router\n- **Language**: TypeScript\n- **Styling**: Tailwind CSS 4.1.3\n- **Animations**: Framer Motion\n- **Icons**: Heroicons\n- **Deployment**: Cloudflare Workers with OpenNext\n- **Comments**: Custom comment system with gravatar support\n\n## 🛠️ Getting Started\n\n### Prerequisites\n\n- Node.js 18+ \n- npm, yarn, or pnpm\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/zmofei/mofei-life-web.git\ncd mofei-life-web\n```\n\n2. Install dependencies:\n```bash\nnpm install\n# or\nyarn install\n# or\npnpm install\n```\n\n3. Set up environment variables (optional):\n```bash\n# Create .env.local for local development\n# The project works with default API endpoints\n```\n\n4. Run the development server:\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n```\n\nThe application will be available at `http://localhost:3000` (or `https://local.mofei.life:3000` for development with HTTPS).\n\n## 📝 Available Scripts\n\n- `npm run dev` - Start development server with HTTPS\n- `npm run build` - Build for production\n- `npm run start` - Start production server\n- `npm run lint` - Run ESLint\n- `npm run deploy` - Deploy to Cloudflare Workers\n- `npm run preview` - Preview Cloudflare deployment locally\n\n## 🏗️ Project Structure\n\n```\nsrc/\n├── app/                    # Next.js App Router\n│   ├── [lang]/            # Internationalization routing\n│   │   ├── blog/          # Blog pages\n│   │   ├── message/       # Message/comment pages\n│   │   └── rss/           # RSS feed generation\n│   └── actions/           # Server actions\n├── components/            # Reusable components\n│   ├── Comments/          # Comment system\n│   ├── Common/            # Shared components (SPALink, Pagination)\n│   ├── Context/           # React contexts (Router, Language)\n│   ├── Home/              # Homepage components\n│   ├── util/              # Utility components (SPATransition, VoiceFeatureNotice)\n│   └── ui/                # UI components\n├── lib/                   # Utility functions\n├── utils/                 # Audio management and utilities\n└── styles/               # Global styles\n```\n\n## 🌐 API Integration\n\nThe project integrates with a custom API for:\n- Blog content management\n- Voice commentary audio files (served from static.mofei.life)\n- Comment system\n- User authentication\n- RSS feed generation\n\nAPI endpoints are configured in `src/app/actions/blog.ts`.\n\n## 🎨 Customization\n\n### Styling\n- Modify `src/styles/globals.css` for global styles\n- Update `tailwind.config.js` for theme customization\n- Component-specific styles use Tailwind classes\n\n### Content\n- Blog content is fetched from the API\n- Static assets are stored in `public/`\n- WeChat QR codes are in `public/img/`\n\n### Languages\n- Language routing handled by `src/middleware.ts`\n- Language context in `src/components/Context/LanguageContext.tsx`\n\n## 🚀 Deployment\n\n### Cloudflare Workers (Recommended)\n\n1. Build and deploy:\n```bash\nnpm run deploy\n```\n\n2. Configure environment variables in Cloudflare dashboard if needed\n\n### Other Platforms\n\nThe project can be deployed to any platform supporting Next.js:\n- Vercel\n- Netlify\n- AWS\n- Google Cloud\n\n## 🔧 Custom Deployment\n\nThis project is designed as a personal blog with API endpoints pointing to the author's backend services. To deploy your own version:\n\n1. **Backend Setup**: You'll need to set up your own backend API that provides:\n   - Blog content management\n   - Comment system\n   - User authentication\n   - RSS feed data\n\n2. **API Configuration**: Update the API endpoints in `src/app/actions/blog.ts` and `src/app/actions/blog-server.ts` to point to your backend.\n\n3. **Environment Variables**: Configure your environment variables based on your backend setup.\n\n4. **WeChat Integration**: Replace the WeChat QR codes in `public/img/` with your own if using WeChat integration.\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Built with [Next.js](https://nextjs.org/)\n- Deployed on [Cloudflare Workers](https://workers.cloudflare.com/)\n- Icons by [Heroicons](https://heroicons.com/)\n- Animations by [Framer Motion](https://www.framer.com/motion/)\n\n## 📧 Contact\n\nFor questions or support, please open an issue or contact through the WeChat public accounts featured on the site.\n\n---\n\n**Disclaimer**: This is a personal blog project shared for reference and learning purposes. The API endpoints are configured for the author's specific backend services. While you're welcome to fork and modify this project, please note that it's not designed as a ready-to-use template for general deployment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzmofei%2Fmofei-life-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzmofei%2Fmofei-life-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzmofei%2Fmofei-life-web/lists"}