๐Ÿงฉ MAHG.me

February 13, 2026 ยท View on GitHub

๐Ÿงฉ MAHG.me

Personal website, portfolio & blog โ€” built with Next.js 16 and Payload CMS 3.

Next.js Payload CMS Tailwind CSS PostgreSQL TypeScript

๐ŸŒ Live Site โ†’


โœจ 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

CategoryTechnology
FrameworkNext.js 16 (App Router)
CMSPayload CMS 3
DatabasePostgreSQL 15
StylingTailwind CSS 4
LanguageTypeScript 5
IconsFont Awesome 7
EmailResend
DeploymentDocker + 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

VariableDescription
DATABASE_URLPostgreSQL connection string
PAYLOAD_SECRETSecret key for Payload CMS
NEXT_PUBLIC_SERVER_URLPublic site URL
NEXT_PUBLIC_SITE_URLSite URL (used for SEO)
RESEND_API_KEYResend API key (for contact emails)

๐Ÿ“„ License

This project is licensed under the MIT License.


Built with โ™ฅ๏ธ by MAHG @ Fractalis