31 lines
1.5 KiB
TypeScript
31 lines
1.5 KiB
TypeScript
// 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: '[email protected]',
|
|
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;
|