A personal website built with Next.js App Router, featuring photography portfolios and multilingual support.
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS
- Deployment: Vercel
- Analytics: Vercel Analytics & Speed Insights
- Image Storage: Vercel Blob (optional) or local
/public/images
app/
โโโ page.tsx # Homepage
โโโ layout.tsx # Root layout with theme provider
โโโ not-found.tsx # 404 page
โโโ common/ # Utilities & data
โ โโโ config.ts
โ โโโ image.ts # Image URL helper (Vercel Blob / local)
โ โโโ lang.ts # Client-side i18n
โโโ components/
โ โโโ Layout/ # Photography page layout
โ โโโ LocaleSwitcher.tsx
โ โโโ Provider.tsx # Theme provider
โ โโโ Svg.tsx
โโโ shoot/ # Photography galleries by year
โ โโโ 2021/
โ โโโ 2020/
โ โโโ ...
โโโ jon/ # Jon gallery
โโโ alice/lover/ # Alice lover gallery
โโโ styles/
โโโ globals.css
dictionaries/ # Server-side i18n dictionaries
โโโ en.json
โโโ zh-Hans.json
โโโ zh-Hant.json
โโโ jp.json
โโโ fr.json
โโโ ko.json
Install dependencies:
pnpm installRun the development server:
pnpm devOpen http://localhost:3000 with your browser.
Images can be served from:
- Local (default): Place images in
public/images/ - Vercel Blob: Set
NEXT_PUBLIC_BLOB_URLin.env.local
See VERCEL_BLOB_SETUP.md for detailed instructions.
The site supports 6 languages via client-side localStorage locale switching:
- English
- ็น้ซไธญๆ (zh-Hant)
- ็ฎไฝไธญๆ (zh-Hans)
- ๆฅๆฌ่ช (jp)
- franรงais (fr)
- ํ๊ตญ์ด (ko)
Copyright ยฉ 2011-2024 WingRay Liao. All rights reserved.