diff --git a/src/app/[handle]/page.tsx b/src/app/[handle]/page.tsx
index 1c75591..e58148f 100644
--- a/src/app/[handle]/page.tsx
+++ b/src/app/[handle]/page.tsx
@@ -29,6 +29,32 @@ function timeAgo(dateStr: string): string {
const months = Math.floor(days / 30);
return `${months} month${months > 1 ? 's' : ''} ago`;
}
+function formatJoinDate(dateStr: string): string {
+ const joined = new Date(dateStr);
+ const now = new Date();
+
+ const diffMs = now.getTime() - joined.getTime();
+ const days = Math.floor(diffMs / 86400000);
+
+ if (days === 0) {
+ return 'Joined today';
+ }
+
+ if (days < 30) {
+ return `Joined ${days} day${days > 1 ? 's' : ''} ago`;
+ }
+
+ const months = Math.floor(days / 30);
+
+ if (months < 12) {
+ return `Joined ${months} month${months > 1 ? 's' : ''} ago`;
+ }
+
+ return `Joined ${joined.toLocaleDateString('en-US', {
+ month: 'long',
+ year: 'numeric',
+ })}`;
+}
type Achievement = {
id: string;
@@ -64,6 +90,7 @@ type ProfileData = {
githubHandle: string;
displayName: string | null;
avatarUrl: string | null;
+ joinedAt: string;
level: number;
xp: number;
prsMerged: number;
@@ -89,7 +116,7 @@ async function loadProfileData(handle: string): Promise
+ {formatJoinDate(profile.joinedAt)} +