diff --git a/apps/api/src/app/(site)/[locale]/members/[username]/layout.tsx b/apps/api/src/app/(site)/[locale]/members/[username]/layout.tsx index c5e46d3..d4d7208 100644 --- a/apps/api/src/app/(site)/[locale]/members/[username]/layout.tsx +++ b/apps/api/src/app/(site)/[locale]/members/[username]/layout.tsx @@ -7,20 +7,20 @@ export async function generateMetadata({ }): Promise { const { username } = await params; const title = `@${username}`; - const description = `View ${username}'s approved public profile on Dev Nepal, including the details they chose to share.`; + // Metadata is built from the URL alone, so it must not claim the profile + // exists or is approved. + const description = `Dev Nepal member profile for @${username}.`; return { title, description, openGraph: { title: `${title} · Dev Nepal`, description, - images: [`https://github.com/${username}.png`], }, twitter: { card: "summary", title: `${title} · Dev Nepal`, description, - images: [`https://github.com/${username}.png`], }, }; } diff --git a/apps/api/src/app/(site)/[locale]/members/page.tsx b/apps/api/src/app/(site)/[locale]/members/page.tsx index d75e801..3039f6b 100644 --- a/apps/api/src/app/(site)/[locale]/members/page.tsx +++ b/apps/api/src/app/(site)/[locale]/members/page.tsx @@ -214,14 +214,10 @@ export default function MembersPage() {
- - + {member.avatarUrl !== null ? ( + + ) : null} + {member.displayName.slice(0, 2).toUpperCase()} diff --git a/apps/api/src/components/modules/members/member-card.tsx b/apps/api/src/components/modules/members/member-card.tsx index c43f074..fb336b0 100644 --- a/apps/api/src/components/modules/members/member-card.tsx +++ b/apps/api/src/components/modules/members/member-card.tsx @@ -148,7 +148,6 @@ export function MemberCard({ className?: string; }) { const profileHref = localePath(locale, `/members/${member.githubUsername}`); - const avatarSrc = member.avatarUrl ?? `https://github.com/${member.githubUsername}.png`; const skills = useMemo( () => member.skills.map((skill) => dict.members.skillNames[skill]), [member.skills, dict], @@ -166,12 +165,15 @@ export function MemberCard({
{/* A late image fades in; Base UI skips the fade for one already cached. */} - - {initials(member.displayName)} + {member.avatarUrl !== null ? ( + + ) : null} + {/* The name is shown next to the avatar, so the initials are decorative. */} + {initials(member.displayName)}