diff --git a/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/BuilderProfile.tsx b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/BuilderProfile.tsx
new file mode 100644
index 00000000..f7b998d5
--- /dev/null
+++ b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/BuilderProfile.tsx
@@ -0,0 +1,79 @@
+import Image from "next/image";
+import SkillBadge from "./SkillBadge";
+import SocialLinks from "./SocialLinks";
+import { Award, FileText, Heart } from "lucide-react";
+import { Address } from "~~/components/scaffold-eth/Address/Address";
+
+interface BuilderProfileProps {
+ name: string;
+ avatarUrl: string;
+ bio: string;
+ ethAddress: string;
+ skills: Array<{ name: string; proficiency: number }>;
+ hobbies: string[];
+}
+
+const BuilderProfile = ({ name, avatarUrl, bio, ethAddress, skills, hobbies }: BuilderProfileProps) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ {skills.map(skill => (
+
+ ))}
+
+
+
+
+
+
+
Hobbies & Interests
+
+
+ {hobbies.map(hobby => (
+
+ {hobby}
+
+ ))}
+
+
+
+
+
+
+
+
+ );
+};
+
+export default BuilderProfile;
diff --git a/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/SkillBadge.tsx b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/SkillBadge.tsx
new file mode 100644
index 00000000..8c98c2c9
--- /dev/null
+++ b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/SkillBadge.tsx
@@ -0,0 +1,24 @@
+import React from "react";
+
+interface SkillBadgeProps {
+ name: string;
+ proficiency: number; // 1-5
+}
+
+const SkillBadge = ({ name, proficiency }: SkillBadgeProps) => {
+ // Ensure proficiency is within bounds
+ const level = Math.min(Math.max(proficiency, 1), 5);
+
+ return (
+
+
{name}
+
+ {[...Array(5)].map((_, i) => (
+
+ ))}
+
+
+ );
+};
+
+export default SkillBadge;
diff --git a/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/SocialLinks.tsx b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/SocialLinks.tsx
new file mode 100644
index 00000000..e16e1298
--- /dev/null
+++ b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/components/SocialLinks.tsx
@@ -0,0 +1,34 @@
+import React from "react";
+import { Github, Link, Linkedin, Twitter } from "lucide-react";
+
+const socialIcons = [
+ { name: "Twitter", url: "https://twitter.com/armolas_06", icon: Twitter },
+ { name: "GitHub", url: "https://github.com/armolas", icon: Github },
+ { name: "LinkedIn", url: "https://linkedin.com/in/arowolomuritadhor", icon: Linkedin },
+ { name: "Website", url: "https://armolasportfolio.netlify.app", icon: Link },
+];
+
+const SocialLinks = () => {
+ return (
+
+ );
+};
+
+export default SocialLinks;
diff --git a/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/page.tsx b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/page.tsx
new file mode 100644
index 00000000..2d6c5a6b
--- /dev/null
+++ b/packages/nextjs/app/builders/0x74370B567f5c65bef0428B9c78df5C691B632Cf7/page.tsx
@@ -0,0 +1,28 @@
+import React from "react";
+import BuilderProfile from "./components/BuilderProfile";
+
+const Index = () => {
+ return (
+
+
+
+ );
+};
+
+export default Index;
diff --git a/packages/nextjs/next.config.ts b/packages/nextjs/next.config.ts
index b81be1a0..99756af3 100644
--- a/packages/nextjs/next.config.ts
+++ b/packages/nextjs/next.config.ts
@@ -26,6 +26,10 @@ const nextConfig: NextConfig = {
protocol: "https",
hostname: "res.cloudinary.com",
},
+ {
+ protocol: "https",
+ hostname: "images.unsplash.com",
+ },
],
},
webpack: config => {
diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json
index d094baa3..0b75d17b 100644
--- a/packages/nextjs/package.json
+++ b/packages/nextjs/package.json
@@ -25,7 +25,7 @@
"burner-connector": "0.0.12",
"daisyui": "^5.0.9",
"kubo-rpc-client": "^5.0.2",
- "lucide-react": "^0.510.0",
+ "lucide-react": "^0.511.0",
"next": "^15.2.3",
"next-nprogress-bar": "^2.3.13",
"next-themes": "^0.3.0",
diff --git a/yarn.lock b/yarn.lock
index e72bd027..0000c782 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4023,7 +4023,7 @@ __metadata:
eslint-config-prettier: ^10.1.1
eslint-plugin-prettier: ^5.2.4
kubo-rpc-client: ^5.0.2
- lucide-react: ^0.510.0
+ lucide-react: ^0.511.0
next: ^15.2.3
next-nprogress-bar: ^2.3.13
next-themes: ^0.3.0
@@ -13415,12 +13415,12 @@ __metadata:
languageName: node
linkType: hard
-"lucide-react@npm:^0.510.0":
- version: 0.510.0
- resolution: "lucide-react@npm:0.510.0"
+"lucide-react@npm:^0.511.0":
+ version: 0.511.0
+ resolution: "lucide-react@npm:0.511.0"
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
- checksum: bc823d2a69255738558fe1ddff18fa9b1f602539928ff4c766a790b190bfc14140061df9cd4fab1680c523053e823668fdc4d726f82f4141f53ee9c58b6916a0
+ checksum: b347d276c1a8cdc51f6ca44ef09d51a3a916bfb58ef0a0d55c729b1afb54877c1bbad981313984751ea13e4cc9903bfeae346f112184c94158a5a39274daea65
languageName: node
linkType: hard