A personal blog and portfolio built with modern technology stack, integrating technical article display, open source project management, and rich interactive features.
- Content Management: Blog posts, Notes, Projects, and Photo Album with MDX support.
- Interactive Comments: Nested replies, markdown support, emoji reactions, and email notifications.
- Media Experience: Global music player, masonry photo gallery, and video support.
- Social Features: Guestbook, Friends links, and "Talk" (micro-blogging).
- User System: Authentication (GitHub/Google), Profile management, and Active sessions tracking.
- Admin Dashboard: comprehensive management for content, comments, users, and more.
- AI Integration: AI-powered summary for blog posts.
- Performance & SEO: SSR/ISR, Sitemap, RSS feed, and PWA support.
- Search: Full-text search capability.
graph TD
A[Frontend] --> B["Next.js 15 (App Router)"]
A --> C["Tailwind CSS 4"]
A --> D["TypeScript 5.7"]
A --> E["React 19"]
A --> F["Framer Motion"]
G[Backend & Data] --> H["Drizzle ORM"]
G --> I["oRPC (Type-safe RPC)"]
H --> J["PostgreSQL"]
I --> K["Redis (Upstash)"]
G --> L["Better Auth"]
M[Build & Tools] --> N["pnpm 10"]
M --> O["Content Collections"]
M --> P["Playwright & Vitest"]
M --> Q["ESLint 9"]
classDef framework fill:#2196F3,stroke:#1976D2;
classDef service fill:#FFC107,stroke:#000;
classDef build fill:#9C27B0,stroke:#7B1FA2;
class A,D,E,M,N,P,Q service;
class B,C,F,H,I,J,K,L,O build;
docker compose up -d- Node.js >= 22
- pnpm >= 10
- PostgreSQL
- Redis
# Install dependencies
pnpm i
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials
# Database initialization
pnpm db:generate
pnpm db:migrate
pnpm db:seed
# Start development server
pnpm dev# Build production version
pnpm build
# Type checking
pnpm typecheck
# Code linting
pnpm lint
# Database management (Studio)
pnpm db:studio
# Run Unit Tests
pnpm test:unit
# Run E2E Tests
pnpm test:e2e
