diff --git a/apps/api/src/app/(site)/[locale]/members/[username]/member-profile-content.tsx b/apps/api/src/app/(site)/[locale]/members/[username]/member-profile-content.tsx
new file mode 100644
index 0000000..08fe35f
--- /dev/null
+++ b/apps/api/src/app/(site)/[locale]/members/[username]/member-profile-content.tsx
@@ -0,0 +1,114 @@
+import type { Member } from "@gov-portal/api-client";
+import Link from "next/link";
+
+import { Button } from "@/components/ui/button";
+import { type Dictionary, type Locale, localePath } from "@/lib/i18n";
+
+export function MemberProfileContent({
+ profile,
+ dict,
+ locale,
+ isOwner,
+}: {
+ profile: Member;
+ dict: Dictionary;
+ locale: Locale;
+ isOwner: boolean;
+}) {
+ const bio = profile.bio?.trim() ?? "";
+ const hasSkills = profile.skills.length > 0;
+ const hasAffiliation = profile.affiliation !== null;
+ const hasLinks = profile.links.length > 0;
+ const hasDetails = bio !== "" || hasSkills || hasAffiliation || hasLinks;
+
+ return (
+
+ {bio}
+
+ {dict.member.emptyBody}
+
+ {dict.member.about}
+
+
+ {hasSkills ? (
+
+ ) : null}
+ {dict.member.emptyTitle}
+
- {profile.bio} -
-