// Single source of truth for site identity — used by BaseLayout for // SEO/JSON-LD. Keep these EXACTLY consistent with LinkedIn / GitHub / // git.hoelee.com (name-identity is a personal-brand SEO factor). export const SITE = { name: 'Mr Hoelee', author: 'Lee Teong Hoe', // canonical name — same everywhere handle: 'Mr Hoelee', url: 'https://blog.hoelee.com', title: 'Mr Hoelee — Full-Stack Developer & DevOps Engineer', description: 'Personal blog of Lee Teong Hoe (Mr Hoelee) — full-stack developer and DevOps engineer. Production systems, self-hosting, and infrastructure.', locale: 'en', lang: 'en', email: 'me@hoelee.com', linkedin: 'https://www.linkedin.com/in/hoelee', github: 'https://github.com/hoelee', gitea: 'https://git.hoelee.com/hoelee', website: 'https://www.hoelee.com', twitter: '', // add if you have one // Author photo (B4, 2026-10-16). One real headshot, two sizes, WebP first with the // JPEG as fallback — continuous-tone images are the case where JPEG/WebP beat PNG. // Used by: the About page, the author card on every post, the home hero, and the // JSON-LD `Person.image` (the identity signal search engines read). photo: { large: '/images/lee-teong-hoe-640.jpg', // 640x640 — About page (320 CSS px @2x) largeWebp: '/images/lee-teong-hoe-640.webp', small: '/images/lee-teong-hoe-128.jpg', // 128x128 — author card avatar (64 CSS px @2x) smallWebp: '/images/lee-teong-hoe-128.webp', }, } as const;