๐งฉ MAHG.me
February 13, 2026 ยท View on GitHub
๐งฉ MAHG.me
Personal website, portfolio & blog โ built with Next.js 16 and Payload CMS 3.
โจ Features
- ๐จ Bento Grid Design โ Modern UI with glassmorphism and micro-animations
- ๐ Blog with Lexical rich text editor, auto-generated table of contents & dynamic SEO
- ๐ผ Project Portfolio with banners, tech stack tags and external links
- ๐ฌ Contact Form with email delivery via Resend
- ๐ Global SEO Settings configurable from the admin panel (Open Graph, favicon, meta tags)
- ๐ Cal.com Integration for scheduling video calls
- ๐ก๏ธ Full Admin Panel powered by Payload CMS
- ๐ณ Dockerized and ready to deploy with Dokploy
๐ ๏ธ Tech Stack
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| CMS | Payload CMS 3 |
| Database | PostgreSQL 15 |
| Styling | Tailwind CSS 4 |
| Language | TypeScript 5 |
| Icons | Font Awesome 7 |
| Resend | |
| Deployment | Docker + Dokploy |
๐ Project Structure
bentomahg/
โโโ app/
โ โโโ (frontend)/ # Public-facing pages
โ โ โโโ page.tsx # Home (bento grid)
โ โ โโโ blog/ # Blog with dynamic posts
โ โ โโโ portfolio/ # Project showcase
โ โ โโโ about/ # About me
โ โ โโโ contact/ # Contact form
โ โ โโโ components/ # Header, Footer
โ โโโ (payload)/ # Payload CMS admin panel
โ โโโ api/ # API routes (contact, etc.)
โโโ collections/ # Payload schemas (Posts, Projects, etc.)
โโโ globals/ # Global config (SEO, Site Settings)
โโโ lib/ # Utilities (getSeoData, etc.)
โโโ Dockerfile # Production image
โโโ payload.config.ts # Payload configuration
๐ Getting Started
Prerequisites
- Node.js 20+
- PostgreSQL 15+ (or Docker to run it locally)
1. Clone & Install
git clone https://github.com/mahg0899/bentomahg.git
cd bentomahg
npm install --legacy-peer-deps
2. Environment Variables
Create a .env file at the project root:
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/bentomahg
# Payload CMS
PAYLOAD_SECRET=your_secret_here
# Site URL
NEXT_PUBLIC_SERVER_URL=http://localhost:3000
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# Email (optional โ for the contact form)
RESEND_API_KEY=re_xxxxxxxx
3. Start the Database (optional, with Docker)
docker compose up -d
4. Run Development Server
npm run dev
Open http://localhost:3000 for the site and http://localhost:3000/admin for the admin panel.
๐ณ Docker Deployment
The project includes a multi-stage Dockerfile optimized for production:
docker build -t bentomahg .
docker run -p 3005:3005 --env-file .env bentomahg
Required Environment Variables
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string |
PAYLOAD_SECRET | Secret key for Payload CMS |
NEXT_PUBLIC_SERVER_URL | Public site URL |
NEXT_PUBLIC_SITE_URL | Site URL (used for SEO) |
RESEND_API_KEY | Resend API key (for contact emails) |
๐ License
This project is licensed under the MIT License.