A production-ready multi-language blog platform built with Next.js (App Router) and TypeScript.
Includes MDX authoring, SEO optimization, dynamic OG images, dark/light mode, and a modern UI design.
- 🌏 Multilingual routing (Korean · English · Uzbek)
- 📝 MDX authoring with frontmatter metadata
- 🧭 SEO optimized (OG tags, sitemap, RSS,
hreflang) - 🌓 Dark & Light theme (system-aware)
- 🔍 Search + tag filtering (Fuse.js)
- 🎨 Premium responsive UI using Tailwind CSS + Framer Motion
- ⚙️ CI/CD with GitHub Actions + Vercel deploy
- 🧱 Type-safe architecture with Zod + strict TypeScript
| Category | Tools |
|---|---|
| Framework | Next.js 15 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS + Typography plugin |
| Content | MDX + gray-matter |
| i18n | next-intl |
| Animation | Framer Motion |
| State | Zustand (optional) |
| Deployment | Vercel |
| Testing | Vitest + Playwright |
src/
├── app/
│ ├── [locale]/blog/
│ ├── [locale]/layout.tsx
│ └── sitemap.xml/route.ts
├── components/
│ ├── layout/
│ └── blog/
├── i18n/
│ ├── messages/
│ └── request.ts
├── lib/
│ ├── posts.ts
│ ├── mdx.ts
│ ├── seo.ts
│ └── types.ts
└── content/
├── ko/posts/
├── en/posts/
└── uz/posts/
git clone https://github.com/DevFayzullo/multi-lang-blog.git
cd multi-lang-blog
pnpm install
pnpm devOpen: http://localhost:3000/ko (or /en, /uz)
Add .mdx files to content/<locale>/posts/:
---
title: "Understanding TypeScript Generics"
date: "2025-10-25"
slug: "ts-generics"
summary: "Deep dive into generics and real-world examples."
tags: ["typescript", "generics"]
lang: "en"
---
Your **MDX content** goes here!- Sitemap →
/sitemap.xml - RSS →
/<locale>/feed.xml - OG Image →
/<locale>/og?title=My+Post
Built by DevFayzullo
Based in 🇰🇷 Seoul — focused on Full-Stack & Next.js Engineering
"Create something today that your future self will thank you for."
— Inspired by daily learning & clean code mindset