\n")}(e);case"developer":return function(e){let{colors:s}=e;return"\n# Hello World \uD83D\uDC4B\n\n## I'm ".concat(e.name,", a ").concat(e.title,"\n\n").concat(e.about,"\n\n### Find me on:\n\n").concat(e.github?"- [GitHub](https://github.com/".concat(e.github,")"):"","\n").concat(e.twitter?"- [Twitter](https://twitter.com/".concat(e.twitter,")"):"","\n").concat(e.linkedin?"- [LinkedIn](https://linkedin.com/in/".concat(e.linkedin,")"):"","\n").concat(e.website?"- [Website](".concat(e.website,")"):"","\n\n### Tech Stack:\n\n").concat(e.skills.map(e=>".concat(e,"-").concat(s.primary.replace("#",""),"?style=flat-square&logo=").concat(e.toLowerCase(),"&logoColor=white)")).join(" "),"\n\n").concat(e.stats?"\n### GitHub Stats:\n\n"):"","\n\n").concat(e.topLangs?"\n### Top Languages:\n\n"):"","\n\n").concat(e.streak?"\n### GitHub Streak:\n\n"):"","\n\n").concat(e.showContribGraph?"\n### Contribution Graph:\n\n"):"","\n\n").concat(e.showTrophies?"\n### GitHub Trophies:\n\n"):"","\n\n").concat(e.showRepos&&e.repositories&&e.repositories.length>0?"\n### Featured Repositories:\n\n".concat(sN(e,{...e.repoSettings,theme:"dark"}),"\n"):"","\n")}(e);case"professional":return a=e,"\n# ".concat(a.name,"\n\n## ").concat(a.title,"\n\n").concat(a.about,"\n\n### Contact\n\n").concat(a.location?"- \uD83D\uDCCD ".concat(a.location):"","\n").concat(a.website?"- \uD83C\uDF10 [".concat(a.website.replace(/^https?:\/\//,""),"](").concat(a.website,")"):"","\n").concat(a.email?"- \uD83D\uDCE7 ".concat(a.email):"","\n\n### Connect\n\n").concat(a.github?"- [GitHub](https://github.com/".concat(a.github,")"):"","\n").concat(a.linkedin?"- [LinkedIn](https://linkedin.com/in/".concat(a.linkedin,")"):"","\n").concat(a.twitter?"- [Twitter](https://twitter.com/".concat(a.twitter,")"):"","\n\n### Skills\n\n").concat(a.skills.map(e=>"- ".concat(e)).join("\n"),"\n\n").concat(a.stats?"\n### GitHub Stats\n\n"):"","\n\n").concat(a.topLangs?"\n### Top Languages\n\n"):"","\n\n").concat(a.streak?"\n### GitHub Streak\n\n"):"","\n\n").concat(a.showContribGraph?"\n### Contribution Graph\n\n"):"","\n\n").concat(a.showTrophies?"\n### GitHub Trophies\n\n"):"","\n\n").concat(a.showRepos&&a.repositories&&a.repositories.length>0?"\n### Featured Repositories\n\n".concat(sN(a,{...a.repoSettings,cardStyle:"detailed"}),"\n"):"","\n");case"elegant":return function(e){let{colors:s}=e;return'\n
\n
Hi \uD83D\uDC4B, I\'m '.concat(e.name,"
\n
A passionate ").concat(e.title," from ").concat(e.location,"
\n
\n\n---\n\n### About me \uD83E\uDD14\n\n").concat(e.about,"\n\n---\n\n### \uD83D\uDEE0 Technologies\n\n").concat(e.skills.map(e=>'')).join(" "),"\n\n---\n\n### \uD83D\uDD17 Let's connect!\n\n
")}var sk=t(9708),sC=t(2450);function sD(e){let{onStartBuilder:s}=e,[t,i]=(0,x.useState)(!1),[r,n]=(0,x.useState)(null),[l,c]=(0,x.useState)(null),d=e=>{n(e)},h=e=>{let s=l===e?null:e;c(s),(0,sb.s)(s?"section_expanded":"section_collapsed","landing_page_interaction",e)};return(0,a.jsxs)("div",{className:"relative h-screen w-full overflow-hidden bg-gradient-to-br from-gray-50 via-purple-50 to-indigo-50 dark:from-gray-950 dark:via-gray-900 dark:to-indigo-950",children:[(0,a.jsx)(o.P.div,{className:"absolute top-[-10%] right-[-5%] w-[40%] h-[40%] rounded-full bg-gradient-to-br from-primary/10 to-secondary/10 blur-3xl",animate:{scale:[1,1.05,1],opacity:[.5,.7,.5]},transition:{duration:8,repeat:Number.POSITIVE_INFINITY,repeatType:"reverse"}}),(0,a.jsx)(o.P.div,{className:"absolute bottom-[-10%] left-[-5%] w-[30%] h-[30%] rounded-full bg-gradient-to-tr from-secondary/10 to-accent/10 blur-3xl",animate:{scale:[1,1.1,1],opacity:[.4,.6,.4]},transition:{duration:10,repeat:Number.POSITIVE_INFINITY,repeatType:"reverse",delay:1}}),(0,a.jsx)("div",{className:"flex h-full w-full items-center justify-center px-6",children:(0,a.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-between max-w-6xl w-full gap-8",children:[(0,a.jsxs)(o.P.div,{className:"flex-1 space-y-6",initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{duration:.6},children:[(0,a.jsxs)("div",{className:"inline-flex items-center gap-2 bg-white/80 dark:bg-gray-900/80 backdrop-blur-sm px-4 py-2 rounded-full text-sm font-medium text-gray-600 dark:text-gray-300 shadow-sm",children:[(0,a.jsx)(R.A,{size:16,className:"text-primary"}),(0,a.jsx)("span",{children:"Elevate your GitHub profile"})]}),(0,a.jsxs)("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold tracking-tight",children:["GitHub Profile ",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"bg-clip-text text-transparent bg-gradient-to-r from-[#4535c7] via-[#5847eb] to-[#7a6cf0] animated-gradient",children:"README Builder"})]}),(0,a.jsx)("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-md",children:"Create an impressive GitHub profile in minutes with our elegant, easy-to-use builder"}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-4",children:[(0,a.jsxs)(A.$,{size:"lg",className:"gap-2 group",onClick:()=>{(0,sb.s)("start_building","landing_page_action","primary_cta"),s()},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[(0,a.jsx)("span",{children:"Start Building"}),(0,a.jsx)(o.P.div,{animate:{x:5*!!t},transition:{duration:.2},children:(0,a.jsx)(sk.A,{size:18})})]}),(0,a.jsx)(A.$,{size:"lg",variant:"outline",className:"gap-2",asChild:!0,children:(0,a.jsxs)("a",{href:"https://github.com/dev-ashishk/github-profile-builder",target:"_blank",rel:"noopener noreferrer",onClick:()=>{(0,sb.s)("github_link_click","landing_page_action","secondary_cta")},children:[(0,a.jsx)(R.A,{size:18}),(0,a.jsx)("span",{children:"View on GitHub"})]})})]}),(0,a.jsxs)("div",{className:"flex items-center gap-6 text-sm text-gray-500 dark:text-gray-400",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(T.A,{size:14}),(0,a.jsx)("span",{children:"6 Templates"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(F.A,{size:14}),(0,a.jsx)("span",{children:"No login required"})]})]})]}),(0,a.jsx)(o.P.div,{className:"flex-1",initial:{opacity:0,x:20},animate:{opacity:1,x:0},transition:{duration:.6,delay:.2},children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"absolute -inset-1 bg-gradient-to-r from-[#5847eb] to-[#7a6cf0] rounded-lg blur opacity-20"}),(0,a.jsx)("div",{className:"relative bg-white dark:bg-gray-900 rounded-lg shadow-xl overflow-hidden border border-gray-200 dark:border-gray-800",children:(0,a.jsxs)("div",{className:"p-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-gray-200 dark:border-gray-800 bg-gray-100 dark:bg-gray-800",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("div",{className:"w-3 h-3 rounded-full bg-red-500"}),(0,a.jsx)("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),(0,a.jsx)("div",{className:"w-3 h-3 rounded-full bg-green-500"})]}),(0,a.jsx)("div",{className:"text-xs text-gray-600 dark:text-gray-400",children:"README.md"}),(0,a.jsx)(eR,{children:(0,a.jsxs)(ez,{children:[(0,a.jsx)(eT,{asChild:!0,children:(0,a.jsx)("button",{className:"text-gray-500 hover:text-primary transition-colors",onClick:()=>{(0,sb.s)("preview_click","landing_page_interaction","code_preview")},children:(0,a.jsx)(e5.A,{size:14})})}),(0,a.jsx)(eP,{children:(0,a.jsx)("p",{children:"Preview in full screen"})})]})})]}),(0,a.jsx)("div",{className:"p-4 font-mono text-sm overflow-hidden text-gray-800 dark:text-gray-200",children:(0,a.jsxs)(o.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.8,duration:.5},className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 ".concat("header"===r?"bg-gray-100 dark:bg-gray-800/60 -mx-2 px-2 py-1 rounded-md":""," transition-all duration-200 cursor-pointer"),onMouseEnter:()=>d("header"),onMouseLeave:()=>d(null),onClick:()=>h("header"),"data-section":"header",children:[(0,a.jsx)(z.A,{size:18,className:"".concat("header"===r?"text-primary":"text-primary/80"," transition-colors duration-200")}),(0,a.jsx)("span",{className:"font-semibold",children:"Hi there, I'm John Doe \uD83D\uDC4B"}),"header"===r&&(0,a.jsx)("span",{className:"ml-auto text-xs text-primary opacity-80",children:"Edit header"})]}),"header"===l&&(0,a.jsx)(o.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"pl-6 text-xs border-l-2 border-primary/30 ml-2",children:(0,a.jsxs)("div",{className:"text-gray-600 dark:text-gray-400",children:["β’ Change your name and greeting",(0,a.jsx)("br",{}),"β’ Add a professional title",(0,a.jsx)("br",{}),"β’ Include a personal tagline"]})}),(0,a.jsx)("div",{className:"".concat("bio"===r?"bg-gray-100 dark:bg-gray-800/60 -mx-2 px-2 py-1 rounded-md":""," transition-all duration-200 cursor-pointer"),onMouseEnter:()=>d("bio"),onMouseLeave:()=>d(null),onClick:()=>h("bio"),"data-section":"bio",children:(0,a.jsxs)("div",{className:"text-gray-700 dark:text-gray-300",children:["Full Stack Developer passionate about creating elegant solutions","bio"===r&&(0,a.jsx)("span",{className:"ml-2 text-xs text-primary opacity-80",children:"Edit bio"})]})}),"bio"===l&&(0,a.jsx)(o.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"pl-6 text-xs border-l-2 border-primary/30 ml-2",children:(0,a.jsxs)("div",{className:"text-gray-600 dark:text-gray-400",children:["β’ Describe your expertise",(0,a.jsx)("br",{}),"β’ Mention your interests",(0,a.jsx)("br",{}),"β’ Share what you're working on"]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ".concat("skills"===r?"bg-gray-100 dark:bg-gray-800/60 -mx-2 px-2 py-1 rounded-md":""," transition-all duration-200 cursor-pointer"),onMouseEnter:()=>d("skills"),onMouseLeave:()=>d(null),onClick:()=>h("skills"),"data-section":"skills",children:[(0,a.jsx)(T.A,{size:14,className:"".concat("skills"===r?"text-secondary":"text-gray-600 dark:text-gray-400"," transition-colors duration-200")}),(0,a.jsxs)("span",{className:"text-gray-600 dark:text-gray-400",children:[(0,a.jsx)("span",{className:"skills"===r?"text-secondary":"",children:"JavaScript"})," ","|",(0,a.jsxs)("span",{className:"skills"===r?"text-secondary":"",children:[" ","React"]})," ","|",(0,a.jsxs)("span",{className:"skills"===r?"text-secondary":"",children:[" ","Node.js"]})," ","|",(0,a.jsxs)("span",{className:"skills"===r?"text-secondary":"",children:[" ","TypeScript"]})]}),"skills"===r&&(0,a.jsx)("span",{className:"ml-auto text-xs text-primary opacity-80",children:"Edit skills"})]}),"skills"===l&&(0,a.jsx)(o.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"pl-6 text-xs border-l-2 border-primary/30 ml-2",children:(0,a.jsxs)("div",{className:"text-gray-600 dark:text-gray-400",children:["β’ Add your technical skills",(0,a.jsx)("br",{}),"β’ Highlight your expertise",(0,a.jsx)("br",{}),"β’ Show language proficiency"]})}),(0,a.jsxs)("div",{className:"flex items-center gap-4 ".concat("stats"===r?"bg-gray-100 dark:bg-gray-800/60 -mx-2 px-2 py-1 rounded-md":""," transition-all duration-200 cursor-pointer"),onMouseEnter:()=>d("stats"),onMouseLeave:()=>d(null),onClick:()=>h("stats"),"data-section":"stats",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(e2.A,{size:14,className:"fill-current ".concat("stats"===r?"text-yellow-500":"text-yellow-600 dark:text-yellow-500"," transition-colors duration-200")}),(0,a.jsx)("span",{className:"text-xs",children:"120 stars"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(e4.A,{size:14,className:"".concat("stats"===r?"text-blue-500":"text-blue-600 dark:text-blue-500"," transition-colors duration-200")}),(0,a.jsx)("span",{className:"text-xs",children:"48 forks"})]}),"stats"===r&&(0,a.jsx)("span",{className:"ml-auto text-xs text-primary opacity-80",children:"Edit stats"})]}),"stats"===l&&(0,a.jsx)(o.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"pl-6 text-xs border-l-2 border-primary/30 ml-2",children:(0,a.jsxs)("div",{className:"text-gray-600 dark:text-gray-400",children:["β’ Display GitHub statistics",(0,a.jsx)("br",{}),"β’ Show contribution graph",(0,a.jsx)("br",{}),"β’ Add achievement badges"]})}),(0,a.jsxs)("div",{className:"border-t border-gray-200 dark:border-gray-800 pt-3 ".concat("projects"===r?"bg-gray-100 dark:bg-gray-800/60 -mx-2 px-2 py-1 rounded-md border-0 pt-4":""," transition-all duration-200 cursor-pointer"),onMouseEnter:()=>d("projects"),onMouseLeave:()=>d(null),onClick:()=>h("projects"),"data-section":"projects",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,a.jsx)(sC.A,{size:14,className:"".concat("projects"===r?"text-secondary":"text-secondary/80"," transition-colors duration-200")}),(0,a.jsx)("span",{className:"font-medium",children:"Featured Projects"}),"projects"===r&&(0,a.jsx)("span",{className:"ml-auto text-xs text-primary opacity-80",children:"Edit projects"})]}),(0,a.jsxs)("ul",{className:"list-disc list-inside text-xs space-y-1 text-gray-700 dark:text-gray-300",children:[(0,a.jsx)("li",{className:"projects"===r?"text-secondary/90":"",children:"React Dashboard"}),(0,a.jsx)("li",{className:"projects"===r?"text-secondary/90":"",children:"Node.js API"}),(0,a.jsx)("li",{className:"projects"===r?"text-secondary/90":"",children:"TypeScript Library"})]})]}),"projects"===l&&(0,a.jsx)(o.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"pl-6 text-xs border-l-2 border-primary/30 ml-2",children:(0,a.jsxs)("div",{className:"text-gray-600 dark:text-gray-400",children:["β’ Showcase your best work",(0,a.jsx)("br",{}),"β’ Add project descriptions",(0,a.jsx)("br",{}),"β’ Include links to repositories"]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ".concat("contact"===r?"bg-gray-100 dark:bg-gray-800/60 -mx-2 px-2 py-1 rounded-md":""," transition-all duration-200 cursor-pointer"),onMouseEnter:()=>d("contact"),onMouseLeave:()=>d(null),onClick:()=>h("contact"),"data-section":"contact",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 text-xs text-gray-600 dark:text-gray-400",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(so.A,{size:12,className:"".concat("contact"===r?"text-primary":""," transition-colors duration-200")}),(0,a.jsx)("span",{children:"john@example.com"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(eM.A,{size:12,className:"".concat("contact"===r?"text-primary":""," transition-colors duration-200")}),(0,a.jsx)("span",{children:"San Francisco, CA"})]})]}),"contact"===r&&(0,a.jsx)("span",{className:"ml-auto text-xs text-primary opacity-80",children:"Edit contact"})]}),"contact"===l&&(0,a.jsx)(o.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"pl-6 text-xs border-l-2 border-primary/30 ml-2",children:(0,a.jsxs)("div",{className:"text-gray-600 dark:text-gray-400",children:["β’ Add contact information",(0,a.jsx)("br",{}),"β’ Include social media links",(0,a.jsx)("br",{}),"β’ Share your location"]})})]})})]})}),(0,a.jsx)(o.P.div,{className:"absolute -top-6 -right-6 bg-white dark:bg-gray-800 shadow-lg rounded-lg p-3 border border-gray-200 dark:border-gray-700",animate:{y:[0,-8,0]},transition:{duration:4,repeat:Number.POSITIVE_INFINITY,repeatType:"reverse"},children:(0,a.jsx)(R.A,{size:24,className:"text-primary"})}),(0,a.jsx)(o.P.div,{className:"absolute -bottom-4 -left-4 bg-white dark:bg-gray-800 shadow-lg rounded-lg p-3 border border-gray-200 dark:border-gray-700",animate:{y:[0,8,0]},transition:{duration:5,repeat:Number.POSITIVE_INFINITY,repeatType:"reverse",delay:1},children:(0,a.jsx)(T.A,{size:24,className:"text-secondary"})})]})})]})})]})}var sS=t(6602);function sA(e){let{steps:s,isOpen:t,onClose:i}=e,[r,n]=(0,x.useState)(0),[l,c]=(0,x.useState)({top:0,left:0});(0,x.useEffect)(()=>{if(!t||!s||0===s.length)return;let e=()=>{let e=document.querySelector(s[r].target);if(!e)return;let t=e.getBoundingClientRect(),a=0,i=0;switch(s[r].position){case"top":a=t.top-120-10,i=t.left+t.width/2-140;break;case"bottom":default:a=t.bottom+10,i=t.left+t.width/2-140;break;case"left":a=t.top+t.height/2-60,i=t.left-280-10;break;case"right":a=t.top+t.height/2-60,i=t.right+10}return i<10&&(i=10),i+280>window.innerWidth-10&&(i=window.innerWidth-280-10),a<10&&(a=10),a+120>window.innerHeight-10&&(a=window.innerHeight-120-10),c({top:a,left:i}),e.classList.add("ring-2","ring-primary","ring-offset-2"),()=>{e.classList.remove("ring-2","ring-primary","ring-offset-2")}},a=e();return window.addEventListener("resize",e),()=>{a&&a(),window.removeEventListener("resize",e)}},[t,r,s]);let d=()=>{n(0),i(),localStorage.setItem("github-profile-guide-seen","true")};return t&&s&&0!==s.length?(0,a.jsx)(sS.N,{children:t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 bg-black/20 backdrop-blur-sm z-50",onClick:d}),(0,a.jsx)(o.P.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},className:"fixed z-50 w-[280px] bg-white dark:bg-gray-800 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700",style:{top:"".concat(l.top,"px"),left:"".concat(l.left,"px")},children:(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,a.jsxs)("div",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:["Step ",r+1," of ",s.length]}),(0,a.jsx)(A.$,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:d,children:(0,a.jsx)(U.A,{size:14})})]}),(0,a.jsx)("p",{className:"text-sm mb-4",children:s[r].content}),(0,a.jsxs)("div",{className:"flex justify-between",children:[(0,a.jsx)(A.$,{variant:"ghost",size:"sm",onClick:d,className:"text-xs",children:"Skip tour"}),(0,a.jsx)(A.$,{size:"sm",onClick:()=>{rsvg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),sG=x.forwardRef((e,s)=>{let{className:t,variant:i,...r}=e;return(0,a.jsx)("div",{ref:s,role:"alert",className:(0,g.cn)(sE({variant:i}),t),...r})});sG.displayName="Alert";let sH=x.forwardRef((e,s)=>{let{className:t,...i}=e;return(0,a.jsx)("h5",{ref:s,className:(0,g.cn)("mb-1 font-medium leading-none tracking-tight",t),...i})});sH.displayName="AlertTitle";let sR=x.forwardRef((e,s)=>{let{className:t,...i}=e;return(0,a.jsx)("div",{ref:s,className:(0,g.cn)("text-sm [&_p]:leading-relaxed",t),...i})});function sz(e,s,t){let a="";if(t){let e=new Date;e.setTime(e.getTime()+864e5*t),a="; expires="+e.toUTCString()}document.cookie=e+"="+(s||"")+a+"; path=/"}sR.displayName="AlertDescription";var sT=t(1526);let sP=sT.bL,s_=x.forwardRef((e,s)=>{let{className:t,...i}=e;return(0,a.jsx)(sT.q7,{ref:s,className:(0,g.cn)("border-b",t),...i})});s_.displayName="AccordionItem";let sM=x.forwardRef((e,s)=>{let{className:t,children:i,...r}=e;return(0,a.jsx)(sT.Y9,{className:"flex",children:(0,a.jsxs)(sT.l9,{ref:s,className:(0,g.cn)("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",t),...r,children:[i,(0,a.jsx)(eh.A,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})})});sM.displayName=sT.l9.displayName;let sF=x.forwardRef((e,s)=>{let{className:t,children:i,...r}=e;return(0,a.jsx)(sT.UC,{ref:s,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...r,children:(0,a.jsx)("div",{className:(0,g.cn)("pb-4 pt-0",t),children:i})})});sF.displayName=sT.UC.displayName;var sL=t(1251),sI=t(1153),sU=t(7950),sB=t.n(sU);function sO(e){let{onClose:s}=e,t=(0,p.usePathname)(),[i,r]=(0,x.useState)(!1),n=e=>{(0,sb.s)("help_navigation","documentation",e),r(!1)},l=[{href:"/help",label:"Getting Started",icon:(0,a.jsx)(P.A,{size:16,className:"mr-2"})},{href:"/help/profile-readme",label:"Profile README",icon:(0,a.jsx)(R.A,{size:16,className:"mr-2"})},{href:"/help/step-by-step",label:"Step-by-Step Guide",icon:(0,a.jsx)(sC.A,{size:16,className:"mr-2"})},{href:"/help/faq",label:"FAQ",icon:(0,a.jsx)(c.A,{size:16,className:"mr-2"})}];return(0,a.jsxs)("header",{className:"sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",children:[(0,a.jsxs)("div",{className:"container flex h-14 items-center",children:[(0,a.jsxs)("div",{className:"mr-4 flex",children:[(0,a.jsxs)(sB(),{href:"/",className:"mr-6 flex items-center space-x-2",onClick:()=>s(),children:[(0,a.jsx)(R.A,{className:"h-6 w-6"}),(0,a.jsx)("span",{className:"font-bold",children:"README Builder"})]}),(0,a.jsx)(A.$,{variant:"ghost",size:"sm",className:"md:hidden",onClick:()=>r(!i),children:i?(0,a.jsx)(U.A,{size:18}):(0,a.jsx)(sI.A,{size:18})})]}),(0,a.jsx)("nav",{className:"hidden md:flex items-center space-x-4 lg:space-x-6 flex-1",children:l.map(e=>(0,a.jsxs)(sB(),{href:e.href,className:(0,g.cn)("flex items-center text-sm font-medium transition-colors hover:text-primary",t===e.href?"text-primary":"text-muted-foreground"),onClick:()=>n(e.href),children:[e.icon,e.label]},e.href))}),(0,a.jsx)("div",{className:"ml-auto flex items-center space-x-4",children:(0,a.jsxs)(A.$,{variant:"ghost",onClick:s,children:[(0,a.jsx)(U.A,{size:18,className:"mr-2"}),"Close Help"]})})]}),i&&(0,a.jsx)(o.P.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"md:hidden border-b pb-2",children:(0,a.jsx)("nav",{className:"flex flex-col space-y-2 px-4",children:l.map(e=>(0,a.jsxs)(sB(),{href:e.href,className:(0,g.cn)("flex items-center text-sm font-medium p-2 rounded-md transition-colors",t===e.href?"bg-muted text-primary":"text-muted-foreground hover:bg-muted hover:text-primary"),onClick:()=>n(e.href),children:[e.icon,e.label]},e.href))})})]})}function sY(e){let{onClose:s}=e,t=(0,p.useRouter)(),i=(0,p.usePathname)(),[r,n]=(0,x.useState)(null),l=e=>{t.push(e),(0,sb.s)("help_navigation","documentation",e)},c=(e,s)=>{navigator.clipboard.writeText(e),n(s),setTimeout(()=>n(null),2e3),(0,sb.s)("help_text_copied","documentation","step_".concat(s))},m=e=>{(0,sb.s)("external_link_clicked","documentation",e)},g=()=>(0,a.jsx)(o.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3},children:(0,a.jsxs)(w,{children:[(0,a.jsxs)(N,{children:[(0,a.jsx)(k,{children:"Welcome to GitHub Profile README Builder"}),(0,a.jsx)(C,{children:"Learn how to create an impressive GitHub profile page that showcases your skills and projects"})]}),(0,a.jsxs)(D,{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"What is a GitHub Profile README?"}),(0,a.jsx)("p",{children:"A GitHub Profile README is a special repository that appears at the top of your GitHub profile page. It's a great way to introduce yourself, showcase your skills, and highlight your best work to visitors of your profile."}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"The README appears on your profile when you create a repository with the same name as your GitHub username and add a README.md file to it."})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"How This Tool Helps You"}),(0,a.jsx)("p",{children:"Our GitHub Profile README Builder makes it easy to create a professional and visually appealing profile page without writing any markdown code. Here's what you can do:"}),(0,a.jsxs)("ul",{className:"list-disc list-inside space-y-2 ml-4",children:[(0,a.jsx)("li",{children:"Choose from 6 professionally designed templates"}),(0,a.jsx)("li",{children:"Automatically fetch your GitHub stats, repositories, and contribution data"}),(0,a.jsx)("li",{children:"Customize sections like skills, projects, experience, and education"}),(0,a.jsx)("li",{children:"Personalize with custom color schemes"}),(0,a.jsx)("li",{children:"Preview your profile in real-time"}),(0,a.jsx)("li",{children:"Copy the generated markdown with a single click"})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Quick Start"}),(0,a.jsxs)("ol",{className:"list-decimal list-inside space-y-3 ml-4",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Fill in your information"})," - Enter your name, title, bio, and other details in the Profile tab"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Connect GitHub"})," - Enter your GitHub username to automatically fetch your stats"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Customize sections"})," - Add skills, projects, work experience, and more"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Choose a template"})," - Select from 6 beautiful templates"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Preview & copy"})," - Preview your profile and copy the generated markdown"]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Create on GitHub"}),' - Follow the instructions in the "Profile README" tab to create your GitHub profile README']})]})]}),(0,a.jsx)("div",{className:"flex justify-center mt-4",children:(0,a.jsxs)(A.$,{onClick:()=>l("/help/profile-readme"),className:"gap-2",children:[(0,a.jsx)("span",{children:"Learn how to create your GitHub Profile README"}),(0,a.jsx)(sk.A,{size:16})]})})]})]})},"getting-started"),j=()=>(0,a.jsx)(o.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3},children:(0,a.jsxs)(w,{children:[(0,a.jsxs)(N,{children:[(0,a.jsx)(k,{children:"Creating Your GitHub Profile README"}),(0,a.jsx)(C,{children:"Follow these steps to create a special repository for your GitHub profile README"})]}),(0,a.jsxs)(D,{className:"space-y-6",children:[(0,a.jsxs)(sG,{className:"bg-blue-50 dark:bg-blue-950 border-blue-200 dark:border-blue-800",children:[(0,a.jsx)(h.A,{className:"h-4 w-4 text-blue-600 dark:text-blue-400"}),(0,a.jsx)(sH,{children:"Important"}),(0,a.jsx)(sR,{children:"Your GitHub profile README is created by making a special repository that has the exact same name as your GitHub username."})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 1: Create a new repository"}),(0,a.jsx)("p",{children:"Go to GitHub and create a new repository with the same name as your GitHub username. This is case sensitive, so make sure it matches exactly."}),(0,a.jsx)("div",{className:"flex justify-center",children:(0,a.jsxs)("a",{href:"https://github.com/new",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-primary hover:underline",onClick:()=>m("create_new_repo"),children:["Create a new repository on GitHub",(0,a.jsx)(e5.A,{size:14})]})}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:'For example, if your username is "johndoe", the repository should be named "johndoe".'})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 2: Initialize with a README"}),(0,a.jsx)("p",{children:'When creating the repository, check the option "Initialize this repository with a README" to automatically create a README.md file.'}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:'GitHub will show a special message saying "You found a secret! username/username is a special repository that you can use to add a README.md to your GitHub profile."'})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 3: Edit the README.md file"}),(0,a.jsx)("p",{children:'After creating the repository, click on the "Edit" button (pencil icon) on the README.md file. Delete all the content and paste the markdown generated by our tool.'})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 4: Commit your changes"}),(0,a.jsx)("p",{children:'After pasting the markdown, scroll down and click the "Commit changes" button to save your profile README.'}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:'You can add a commit message like "Update profile README" to describe your changes.'})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 5: View your profile"}),(0,a.jsx)("p",{children:"Go to your GitHub profile page (github.com/username) to see your new profile README. It will appear at the top of your profile page."}),(0,a.jsx)("div",{className:"flex justify-center",children:(0,a.jsxs)("a",{href:"https://github.com/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-primary hover:underline",onClick:()=>m("view_github_profile"),children:["Go to GitHub",(0,a.jsx)(e5.A,{size:14})]})})]}),(0,a.jsx)("div",{className:"flex justify-center mt-4",children:(0,a.jsxs)(A.$,{onClick:()=>l("/help/step-by-step"),className:"gap-2",children:[(0,a.jsx)("span",{children:"View detailed step-by-step guide"}),(0,a.jsx)(sk.A,{size:16})]})})]})]})},"profile-readme"),f=()=>(0,a.jsx)(o.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3},children:(0,a.jsxs)(w,{children:[(0,a.jsxs)(N,{children:[(0,a.jsx)(k,{children:"Detailed Step-by-Step Guide"}),(0,a.jsx)(C,{children:"Follow these detailed instructions with code examples to create your GitHub profile README"})]}),(0,a.jsxs)(D,{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 1: Generate your markdown"}),(0,a.jsx)("p",{children:"Use our builder to create your profile README. Fill in your information, customize the sections, and choose a template. Then copy the generated markdown."}),(0,a.jsxs)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md flex justify-between items-start",children:[(0,a.jsx)("div",{className:"text-sm text-gray-600 dark:text-gray-300 font-mono overflow-auto max-h-32",children:(0,a.jsx)("pre",{children:"# Hi there, I'm John Doe \uD83D\uDC4B\n\nFull Stack Developer passionate about creating elegant solutions\n\n## \uD83D\uDD27 Skills & Technologies\nJavaScript | React | Node.js | TypeScript"})}),(0,a.jsx)(A.$,{variant:"ghost",size:"sm",className:"ml-2 flex-shrink-0",onClick:()=>c("# Hi there, I'm John Doe \uD83D\uDC4B\n\nFull Stack Developer passionate about creating elegant solutions\n\n## \uD83D\uDD27 Skills & Technologies\nJavaScript | React | Node.js | TypeScript",1),children:1===r?(0,a.jsx)(d.A,{size:16}):(0,a.jsx)(u.A,{size:16})})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 2: Create a special repository"}),(0,a.jsx)("p",{children:'Go to GitHub and create a new repository with the exact same name as your GitHub username. Make sure to check "Initialize this repository with a README".'}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsxs)("p",{className:"text-sm text-gray-600 dark:text-gray-300 font-mono",children:["Repository name: ",(0,a.jsx)("strong",{children:"username"})," (replace with your actual GitHub username)"]})}),(0,a.jsx)("div",{className:"flex justify-center",children:(0,a.jsxs)("a",{href:"https://github.com/new",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-primary hover:underline",onClick:()=>m("create_repo_step_by_step"),children:["Create a new repository on GitHub",(0,a.jsx)(e5.A,{size:14})]})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 3: Edit the README.md file"}),(0,a.jsx)("p",{children:"After creating the repository, you'll be taken to the repository page. Click on the README.md file, then click the edit button (pencil icon) in the top right of the file view."}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Delete any existing content in the file and paste your generated markdown."})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 4: Preview and commit your changes"}),(0,a.jsx)("p",{children:'After pasting your markdown, click the "Preview" tab to see how it will look. If everything looks good, scroll down and click the "Commit changes" button.'}),(0,a.jsxs)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md flex justify-between items-start",children:[(0,a.jsx)("div",{className:"text-sm text-gray-600 dark:text-gray-300 font-mono",children:(0,a.jsx)("pre",{children:"Commit message: Update profile README\nDescription: Add personalized GitHub profile README\n[x] Commit directly to the main branch"})}),(0,a.jsx)(A.$,{variant:"ghost",size:"sm",className:"ml-2 flex-shrink-0",onClick:()=>c("Commit message: Update profile README\nDescription: Add personalized GitHub profile README\n[x] Commit directly to the main branch",4),children:4===r?(0,a.jsx)(d.A,{size:16}):(0,a.jsx)(u.A,{size:16})})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 5: Verify your profile README"}),(0,a.jsx)("p",{children:'Go to your GitHub profile page by clicking on your profile picture in the top right corner and selecting "Your profile", or by navigating to github.com/username (replace "username" with your GitHub username).'}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Your profile README should now appear at the top of your profile page. If you don't see it, make sure the repository name exactly matches your username."})})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Step 6: Update your profile README anytime"}),(0,a.jsx)("p",{children:"You can update your profile README anytime by editing the README.md file in your username repository. You can use our builder to generate new markdown whenever you want to refresh your profile."}),(0,a.jsx)("div",{className:"bg-gray-100 dark:bg-gray-800 p-4 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Tip: Bookmark our GitHub Profile README Builder for easy access whenever you want to update your profile."})})]}),(0,a.jsx)("div",{className:"flex justify-center mt-4",children:(0,a.jsxs)(A.$,{onClick:()=>l("/help/faq"),className:"gap-2",children:[(0,a.jsx)("span",{children:"View Frequently Asked Questions"}),(0,a.jsx)(sk.A,{size:16})]})})]})]})},"step-by-step"),y=()=>(0,a.jsx)(o.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3},children:(0,a.jsxs)(w,{children:[(0,a.jsxs)(N,{children:[(0,a.jsx)(k,{children:"Frequently Asked Questions"}),(0,a.jsx)(C,{children:"Find answers to common questions about GitHub profile READMEs and our builder"})]}),(0,a.jsx)(D,{children:(0,a.jsxs)(sP,{type:"single",collapsible:!0,className:"w-full",children:[(0,a.jsxs)(s_,{value:"item-1",children:[(0,a.jsx)(sM,{children:"What is a GitHub profile README?"}),(0,a.jsxs)(sF,{children:[(0,a.jsx)("p",{className:"mb-2",children:"A GitHub profile README is a special feature that allows you to showcase information about yourself directly on your GitHub profile page. It appears as a prominent section at the top of your profile."}),(0,a.jsx)("p",{children:"To create one, you need to make a new repository with the same name as your GitHub username and add a README.md file to it. GitHub will automatically display the contents of this README at the top of your profile page."})]})]}),(0,a.jsxs)(s_,{value:"item-2",children:[(0,a.jsx)(sM,{children:"Why doesn't my profile README show up on my GitHub profile?"}),(0,a.jsxs)(sF,{children:[(0,a.jsx)("p",{className:"mb-2",children:"If your profile README isn't showing up, check these common issues:"}),(0,a.jsxs)("ul",{className:"list-disc list-inside space-y-1 ml-4",children:[(0,a.jsxs)("li",{children:["Make sure the repository name"," ",(0,a.jsx)("strong",{children:"exactly matches"})," your GitHub username (it's case sensitive)"]}),(0,a.jsx)("li",{children:'Ensure the README file is named "README.md" (case sensitive)'}),(0,a.jsx)("li",{children:"Verify that the README file is in the root directory of the repository"}),(0,a.jsx)("li",{children:"Check that the repository is public (private repositories won't display the README on your profile)"}),(0,a.jsx)("li",{children:"Try refreshing your profile page or logging out and back in if you've just created the repository"})]})]})]}),(0,a.jsxs)(s_,{value:"item-3",children:[(0,a.jsx)(sM,{children:"Can I use HTML in my GitHub profile README?"}),(0,a.jsxs)(sF,{children:[(0,a.jsxs)("p",{className:"mb-2",children:["Yes, GitHub profile READMEs support a subset of HTML along with Markdown. You can use basic HTML tags like"," ",(0,a.jsx)("code",{children:"
"}),", and more."]}),(0,a.jsxs)("p",{className:"mb-2",children:["You can also use HTML for more advanced formatting, such as centering content with ",(0,a.jsx)("code",{children:'
- );
-}
diff --git a/app/help/page.tsx b/app/help/page.tsx
deleted file mode 100644
index c482306..0000000
--- a/app/help/page.tsx
+++ /dev/null
@@ -1,353 +0,0 @@
-import type { Metadata } from "next";
-import Link from "next/link";
-
-import { APP_ROUTES, EXTERNAL_LINKS } from "@/constants/app-link";
-
-export const metadata: Metadata = {
- title: "Getting Started - GitHub Profile README Builder",
- description:
- "Learn how to get started with the GitHub Profile README Builder and create an impressive GitHub profile",
-};
-
-export default function GettingStartedPage() {
- return (
-
-
Getting Started
-
-
-
-
- Welcome to GitHub Profile README Builder
-
-
- This tool helps you create beautiful and informative GitHub profile
- READMEs without writing a single line of markdown. Follow this guide
- to get started with creating your own stunning GitHub profile.
-
-
-
-
- What is a GitHub Profile README?
-
-
- A GitHub Profile README is a special feature introduced by GitHub
- that allows you to showcase information about yourself directly on
- your GitHub profile page. It appears prominently at the top of
- your profile, giving visitors an immediate impression of who you
- are and what you do.
-
-
- As GitHub describes it in their{" "}
-
- official docs
-
- , it's "a new feature that allows you to share information about
- yourself with the community on GitHub.com."
-
-
-
-
-
-
How to Use This Tool
-
-
-
-
-
- Fill out the form with your information
-
-
-
- Complete the profile form with your personal information,
- skills, projects, and social links. The more information you
- provide, the more comprehensive your README will be.
-
-
-
-
-
-
- Preview your README in real-time
-
-
-
- As you fill out the form, the preview section will update
- automatically to show how your README will look on GitHub.
- This allows you to make adjustments and see the results
- immediately.
-
-
-
-
-
-
- Copy the generated markdown
-
-
-
- Once you're satisfied with your README, click the "Copy
- Markdown" button to copy the code to your clipboard. This is
- the code you'll paste into your GitHub README.md file.
-
- On GitHub, create a new repository with the same name as your
- GitHub username. This special repository will display your
- README on your profile page. Make sure it's public and
- initialized with a README.
-
-
-
-
-
-
- Paste the markdown into the README.md file
-
-
-
- In your new repository, edit the README.md file and paste the
- copied markdown. Commit the changes to see your profile README
- live on your GitHub profile.
-
-
-
-
-
-
-
-
Key Features
-
-
-
Real-time Preview
-
- See how your README will look as you build it, making it easy to
- design the perfect profile.
-
-
-
-
- Customizable Sections
-
-
- Add only the sections that matter to you, creating a
- personalized profile that highlights your strengths.
-
-
-
-
- GitHub Stats Integration
-
-
- Include your GitHub statistics to showcase your activity and
- contributions to the community.
-
-
-
-
Markdown Generation
-
- Generate clean, well-formatted markdown code without having to
- write it yourself.
-
-
-
-
-
-
-
- Why Use a Profile README?
-
-
-
- A GitHub profile README allows you to showcase your skills,
- projects, and personality directly on your GitHub profile page.
- It's a great way to:
-
-
-
- Introduce yourself to the GitHub community and potential
- collaborators
-
-
- Highlight your best projects and contributions to open source
-
-
- Display your technical skills and expertise in various
- technologies
-
-
Share your current learning journey and goals
-
- Make your profile stand out to potential employers or clients
-
-
Express your personality and interests beyond just code
-
-
- According to GitHub's documentation, "Your profile README is the
- first thing people will see when they visit your GitHub profile."
- This makes it an essential tool for developers looking to make a
- strong impression.
-
-
-
-
-
-
Need More Help?
-
-
- Check out our detailed guides for more information:
-
-
-
-
-
- Profile README Guide - Learn about GitHub Profile READMEs and
- best practices
-
-
-
-
-
- Step-by-Step Tutorial - Detailed walkthrough of creating your
- profile README
-
-
-
-
-
- Frequently Asked Questions - Answers to common questions about
- profile READMEs
-
-
- );
-}
diff --git a/app/help/profile-readme/page.tsx b/app/help/profile-readme/page.tsx
deleted file mode 100644
index 6e720ea..0000000
--- a/app/help/profile-readme/page.tsx
+++ /dev/null
@@ -1,453 +0,0 @@
-import type { Metadata } from "next";
-import Link from "next/link";
-
-import { APP_ROUTES, EXTERNAL_LINKS } from "@/constants/app-link";
-
-export const metadata: Metadata = {
- title: "Profile README Guide - GitHub Profile README Builder",
- description:
- "Learn about GitHub Profile READMEs and how to create an effective one that showcases your skills and projects",
-};
-
-export default function ProfileReadmePage() {
- return (
-
-
Profile README Guide
-
-
-
-
- What is a GitHub Profile README?
-
-
- A GitHub Profile README is a special feature that allows you to
- showcase information about yourself directly on your GitHub profile
- page. It appears prominently at the top of your profile, giving
- visitors an immediate impression of who you are and what you do.
-
-
-
-
How It Works
-
- GitHub has a special repository naming convention that enables
- this feature. When you create a repository with the same name as
- your GitHub username, the README.md file in that repository will
- be displayed at the top of your GitHub profile page.
-
-
- For example, if your GitHub username is "devjane", creating a
- repository named "devjane" with a README.md file will display that
- README on your profile.
-
-
- This feature was introduced by GitHub in July 2020 and has quickly
- become a popular way for developers to personalize their profiles.
- You can read more about it in the{" "}
-
- official announcement
-
- .
-
-
-
-
-
-
- Why Create a Profile README?
-
-
-
- A well-crafted profile README offers numerous benefits:
-
-
-
Makes your GitHub profile more engaging and informative
-
- Showcases your skills, projects, and contributions in a
- customized way
-
-
- Helps you stand out to potential employers or collaborators
-
-
Provides context about your work and interests
-
Demonstrates your ability to present information clearly
-
- Shows your personality beyond just your code contributions
-
-
-
- According to GitHub, profiles with READMEs tend to receive more
- engagement and visibility in the community.
-
-
-
-
-
-
- Elements of an Effective Profile README
-
-
-
-
-
1. Introduction
-
- Start with a brief introduction about yourself. This could
- include:
-
-
-
- Your name and/or preferred title (e.g., "Full Stack
- Developer")
-
-
- Current role or status (e.g., "Computer Science Student at XYZ
- University")
-
-
A brief statement about your interests or specialties
-
A friendly greeting or personal touch
-
A concise mission statement or career objective
-
-
- Pro tip: Keep your introduction concise but informative. Aim for
- 2-3 sentences that capture who you are professionally.
-
-
-
-
-
- 2. Skills & Technologies
-
-
- Showcase your technical skills and the technologies you work
- with. This can be presented as:
-
-
-
Lists of programming languages
-
Frameworks and tools you're proficient in
-
Categories like "Frontend," "Backend," "DevOps," etc.
- Remember to add your own unique touch rather than directly copying
- these examples. Your README should reflect your personal brand and
- style.
-
-
-
-
-
-
- Ready to Create Your Profile README?
-
-
- Use our tool to generate a professional GitHub profile README in
- minutes! Our builder makes it easy to create a README that showcases
- your skills and projects without having to write any markdown code.
-
-
-
- Back to Help Home
-
-
- Step-by-Step Guide
-
-
-
-
-
- );
-}
diff --git a/app/help/step-by-step/page.tsx b/app/help/step-by-step/page.tsx
deleted file mode 100644
index 02022eb..0000000
--- a/app/help/step-by-step/page.tsx
+++ /dev/null
@@ -1,416 +0,0 @@
-import type { Metadata } from "next";
-import Link from "next/link";
-
-import { APP_ROUTES, EXTERNAL_LINKS } from "@/constants/app-link";
-
-export const metadata: Metadata = {
- title: "Step-by-Step Guide - GitHub Profile README Builder",
- description:
- "A comprehensive step-by-step guide to creating your GitHub Profile README using our builder tool",
-};
-
-export default function StepByStepGuidePage() {
- return (
-
-
Step-by-Step Guide
-
-
-
- This comprehensive guide will walk you through the entire process of
- creating and publishing your GitHub profile README using our builder
- tool.
-
-
-
-
Before You Begin
-
Make sure you have:
-
-
- A GitHub account (if you don't have one,{" "}
-
- sign up here
-
- )
-
-
- Some basic information about yourself, your skills, and projects
-
-
A few minutes to complete the process
-
-
-
-
-
-
- 1
-
-
- Fill Out the Profile Form
-
-
-
- Start by filling out the profile form with your personal
- information, skills, and projects.
-
-
-
Basic Information
-
-
Enter your name, GitHub username, and a brief bio
-
Add your location and website if you want to share them
-
Upload a profile picture or avatar (optional)
-
-
-
Skills & Technologies
-
-
- Add programming languages, frameworks, and tools you're
- proficient in
-
-
- You can organize them by categories (Frontend, Backend, etc.)
-
-
Choose how you want them displayed (badges, text, etc.)
-
-
-
Projects
-
-
Add your best or most recent projects
-
Include project name, description, and repository link
-
List the technologies used in each project
-
Add a demo link if available
-
-
-
GitHub Stats
-
-
Enter your GitHub username to generate stats
-
- Select which stats you want to display (languages,
- contributions, etc.)
-
-
Customize the appearance of your stats cards
-
-
-
Social Links
-
-
Add links to your social media profiles
-
Include professional networks like LinkedIn
-
Add your email if you want to be contacted directly
-
-
-
-
- Tips for Filling Out the Form:
-
-
-
Be concise but informative in your descriptions
-
- Focus on your most relevant skills and impressive projects
-
-
Use professional language that represents you well
-
- Include enough detail to give context, but avoid
- overwhelming visitors
-
-
- Consider your target audience (employers, collaborators,
- etc.)
-
-
-
-
-
-
-
-
- 2
-
-
Preview Your README
-
-
- As you fill out the form, check the preview section to see how
- your README will look on GitHub.
-
-
-
Preview Features
-
-
Real-time updates as you make changes
-
Accurate representation of how it will appear on GitHub
-
- Toggle between light and dark themes to see how it looks in
- both modes
-
-
-
-
-
- What to Look For in the Preview:
-
-
-
Overall layout and visual appeal
-
Proper formatting of text and sections
-
Correct display of badges and links
-
Balance of content (not too sparse or overwhelming)
-
Logical flow of information
-
Any formatting issues or errors
-
-
-
-
- Take your time to review the preview and make adjustments until
- you're satisfied with how your README looks.
-
-
-
-
-
-
- 3
-
-
- Copy the Generated Markdown
-
-
-
- Once you're satisfied with your README, copy the generated
- markdown code.
-
-
-
How to Copy the Markdown
-
-
Scroll to the "Markdown" section below the preview
-
Click the "Copy Markdown" button
-
The code will be copied to your clipboard
-
-
-
-
About Markdown:
-
- Markdown is a lightweight markup language that GitHub uses to
- format text. The generator creates valid markdown code that
- GitHub will render correctly.
-
- If you want to make manual adjustments to the markdown code, you
- can do so before copying it. This is optional, as the generated
- code should work well as-is.
-
-
-
-
-
-
- 4
-
-
- Create a Special Repository on GitHub
-
-
-
- On GitHub, create a new repository that has the same name as
- your GitHub username.
-
- In the "Repository name" field, enter your GitHub username
- exactly
-
-
- Add an optional description (this won't affect your profile
- README)
-
-
Set the repository to "Public"
-
- Check the box to "Initialize this repository with a README"
-
-
Click "Create repository"
-
-
-
-
Important Notes:
-
-
- The repository name must match your GitHub
- username exactly (case-sensitive)
-
-
- The repository must be public for the README to appear on
- your profile
-
-
- GitHub will show a special message indicating this is a
- special repository
-
-
- If you don't see this message, double-check that the
- repository name matches your username
-
-
-
-
-
- This special repository is what enables the profile README
- feature. GitHub will automatically display the README.md file
- from this repository on your profile page.
-
-
-
-
-
-
- 5
-
-
- Paste the Markdown into the README.md File
-
-
-
- Edit the README.md file in your new repository and paste the
- copied markdown code.
-
-
-
Updating the README File
-
-
In your new repository, click on the README.md file
-
- Click the pencil icon (Edit this file) in the upper right
- corner
-
-
Delete any existing content in the file
-
Paste the markdown code you copied from our tool
-
Scroll down and click "Commit changes"
-
Optionally, add a commit message describing your update
-
Click "Commit changes" again to save
-
-
-
-
Final Steps:
-
-
Visit your GitHub profile page to see your new README
-
Check that everything looks as expected
-
Make any additional adjustments if needed
-
Share your profile with others!
-
-
-
-
- After committing the changes, GitHub will automatically update
- your profile page to display your new README. It may take a few
- moments for the changes to appear.
-
-
-
-
-
-
-
- Maintaining Your Profile README
-
-
- Your GitHub profile README is a living document. Here are some tips
- for keeping it up-to-date:
-
-
-
Update it when you complete new projects
-
Add new skills as you learn them
-
Refresh your bio and goals periodically
-
- Consider adding dynamic content like GitHub stats that update
- automatically
-
-
- Review it every few months to ensure it accurately represents your
- current skills and interests
-
-
- Return to this tool anytime to regenerate your README with new
- information
-
-
-
-
-
Pro Tip:
-
- You can bookmark your repository's edit page for quick access
- whenever you want to update your README.
-
-
-
-
-
-
-
- Back to Help Home
-
-
- FAQ
-
-
-
-
-
- );
-}
diff --git a/app/layout.tsx b/app/layout.tsx
deleted file mode 100644
index 25c57ff..0000000
--- a/app/layout.tsx
+++ /dev/null
@@ -1,86 +0,0 @@
-import { Inter } from "next/font/google";
-import type React from "react";
-import { Suspense } from "react";
-
-import { ThemeProvider } from "@/components/theme-provider";
-import { Toaster } from "@/components/ui/toaster";
-import { MainHeader } from "@/components/main-header";
-import GoogleAnalytics from "@/components/google-analytics";
-
-import "@/app/globals.css";
-
-const inter = Inter({ subsets: ["latin"] });
-
-export const metadata = {
- title: "GitHub Profile README Builder",
- description:
- "Create an impressive GitHub profile README that showcases your skills, projects, and contributions. Our intuitive builder helps you stand out with beautiful templates and real-time previews.",
- keywords:
- "GitHub profile, README generator, GitHub README, profile builder, GitHub stats, GitHub contribution graph, GitHub trophy, markdown generator, developer profile",
- openGraph: {
- title: "GitHub Profile README Builder",
- description:
- "Create an impressive GitHub profile README that showcases your skills, projects, and contributions. Our intuitive builder helps you stand out with beautiful templates and real-time previews.",
- url: "https://github-readme-builder.hyper2x.com",
- siteName: "GitHub Profile README Builder",
- images: [
- {
- url: "https://github-readme-builder.hyper2x.com/github-profile-builder-preview.png",
- width: 1200,
- height: 630,
- alt: "GitHub Profile README Builder",
- },
- ],
- locale: "en_US",
- author: "Ashish Kumar",
- type: "website",
- },
-
- twitter: {
- card: "summary_large_image",
- title: "GitHub Profile README Builder",
- description:
- "Create an impressive GitHub profile README that showcases your skills, projects, and contributions. Our intuitive builder helps you stand out with beautiful templates and real-time previews.",
- images: [
- "https://github-readme-builder.hyper2x.com/github-profile-builder-preview.png",
- ],
- },
-};
-
-export default function RootLayout({
- children,
-}: {
- children: React.ReactNode;
-}) {
- return (
-
-
-
-
-
-
-
-
- {children}
-
-
-
-
-
-
-
-
- );
-}
diff --git a/app/page.tsx b/app/page.tsx
deleted file mode 100644
index 9706227..0000000
--- a/app/page.tsx
+++ /dev/null
@@ -1,719 +0,0 @@
-"use client";
-
-import {
- defaultProfileData,
- defaultSections,
- defaultThemes,
-} from "@/data/default-data";
-import confetti from "canvas-confetti";
-import { motion } from "framer-motion";
-import { Check, Copy, RefreshCw, AlertCircle, HelpCircle } from "lucide-react";
-import { useRouter, useSearchParams } from "next/navigation";
-import { useState, useEffect } from "react";
-
-import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
-import { Card, CardContent } from "@/components/ui/card";
-import { Button } from "@/components/ui/button";
-import { Textarea } from "@/components/ui/textarea";
-import { EnhancedProfileForm } from "@/components/enhanced-profile-form";
-import { ProfilePreview } from "@/components/profile-preview";
-import { useToast } from "@/hooks/use-toast";
-import { GitHubContributionGraph } from "@/components/github-contribution-graph";
-import { trackEvent } from "@/utils/analytics";
-import { fetchGitHubData } from "@/services/github";
-import { generateMarkdown } from "@/utils/markdown-generator";
-import { ElegantLandingPage } from "@/components/elegant-landing-page";
-import { TooltipGuide } from "@/components/tooltip-guide";
-import { TooltipProvider } from "@/components/ui/tooltip";
-import { ConfettiButton } from "@/components/confetti-button";
-import { ThemeToggle } from "@/components/theme-toggle";
-import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
-import { getCookie, setCookie, eraseCookie } from "@/utils/cookie-utils";
-import { HelpDocs } from "@/components/help-docs";
-
-export default function Home() {
- const router = useRouter();
- const searchParams = useSearchParams();
- const helpSection = searchParams.get("help");
-
- const { toast } = useToast();
- const [copied, setCopied] = useState(false);
- const [activeTemplate, setActiveTemplate] = useState("modern");
- const [isFetching, setIsFetching] = useState(false);
- const [profileData, setProfileData] = useState(defaultProfileData);
- const [sections, setSections] = useState(defaultSections);
- const [themes] = useState(defaultThemes);
- const [currentTheme, setCurrentTheme] = useState("Default");
- const [generatedMarkdown, setGeneratedMarkdown] = useState("");
- const [showLandingPage, setShowLandingPage] = useState(true);
- const [showGuide, setShowGuide] = useState(false);
- const [showHelpDocs, setShowHelpDocs] = useState(false);
- const [expandedPreview, setExpandedPreview] = useState(false);
- const [isLoadingFromStorage, setIsLoadingFromStorage] = useState(true);
- const [hasLoadedFromStorage, setHasLoadedFromStorage] = useState(false);
- const [showResetAlert, setShowResetAlert] = useState(false);
-
- // Check if we should show help docs based on URL
- useEffect(() => {
- if (helpSection) {
- setShowLandingPage(false);
- setShowHelpDocs(true);
- trackEvent("help_viewed", "documentation", helpSection);
- }
- }, [helpSection]);
-
- // Guide steps for the tooltip tour
- const guideSteps = [
- {
- target: "#profile-tab",
- content: "Start by filling in your basic information in the Profile tab.",
- position: "bottom",
- },
- {
- target: "#github-username",
- content:
- "Enter your GitHub username and click 'Fetch Data' to automatically import your GitHub stats.",
- position: "right",
- },
- {
- target: "#skills-tab",
- content:
- "Add your technical skills and technologies you're proficient in.",
- position: "bottom",
- },
- {
- target: "#template-select",
- content:
- "Choose from 6 professionally designed templates to match your style.",
- position: "left",
- },
- {
- target: "#preview-tab",
- content:
- "Preview how your GitHub profile will look and copy the markdown when you're done.",
- position: "bottom",
- },
- ];
-
- // Load profile data from localStorage on component mount
- useEffect(() => {
- const loadProfileFromStorage = () => {
- setIsLoadingFromStorage(true);
- try {
- const savedProfile = localStorage.getItem("github-profile-data");
- if (savedProfile) {
- const parsedProfile = JSON.parse(savedProfile);
- setProfileData(parsedProfile);
-
- // If template was saved, restore it
- const savedTemplate = localStorage.getItem("github-profile-template");
- if (savedTemplate) {
- setActiveTemplate(savedTemplate);
- }
-
- setHasLoadedFromStorage(true);
-
- // Track successful profile load
- trackEvent(
- "profile_loaded",
- "storage_action",
- "load_from_localstorage"
- );
-
- toast({
- title: "Profile loaded",
- description:
- "Your saved profile has been loaded from browser storage",
- });
- }
- } catch (error) {
- console.error("Error loading profile from localStorage:", error);
-
- // Track error in loading profile
- trackEvent("profile_load_error", "storage_action", "load_error");
-
- toast({
- title: "Error loading profile",
- description:
- "Could not load your saved profile. Using default profile instead.",
- variant: "destructive",
- });
- } finally {
- setIsLoadingFromStorage(false);
- }
- };
-
- // Only load from storage if not on landing page
- if (!showLandingPage && !showHelpDocs) {
- loadProfileFromStorage();
- }
- }, [showLandingPage, showHelpDocs, toast]);
-
- // Handle theme change
- const handleThemeChange = (theme) => {
- setCurrentTheme(theme.name);
- setProfileData({
- ...profileData,
- colors: {
- primary: theme.primary,
- secondary: theme.secondary,
- accent: theme.accent,
- },
- });
-
- // Track theme change
- trackEvent("theme_changed", "user_preference", theme.name);
- };
-
- // Handle section visibility toggle
- const handleToggleSection = (sectionId) => {
- setSections(
- sections.map((section) =>
- section.id === sectionId
- ? { ...section, visible: !section.visible }
- : section
- )
- );
-
- // Update profileData for the corresponding switches
- if (sectionId === "stats") {
- setProfileData({ ...profileData, stats: !profileData.stats });
- } else if (sectionId === "repos") {
- setProfileData({ ...profileData, showRepos: !profileData.showRepos });
- } else if (sectionId === "projects") {
- setProfileData({
- ...profileData,
- showProjects: !profileData.showProjects,
- });
- } else if (sectionId === "blog") {
- setProfileData({ ...profileData, showBlog: !profileData.showBlog });
- } else if (sectionId === "timeline") {
- setProfileData({
- ...profileData,
- showTimeline: !profileData.showTimeline,
- });
- } else if (sectionId === "education") {
- setProfileData({
- ...profileData,
- showEducation: !profileData.showEducation,
- });
- } else if (sectionId === "contact") {
- setProfileData({ ...profileData, showContact: !profileData.showContact });
- }
-
- // Track section toggle
- const newState = !sections.find((section) => section.id === sectionId)
- .visible;
- trackEvent(
- newState ? "section_enabled" : "section_disabled",
- "user_preference",
- sectionId
- );
- };
-
- // Handle section reordering
- const handleMoveSection = (sectionId, direction) => {
- const sectionIndex = sections.findIndex(
- (section) => section.id === sectionId
- );
- if (
- (direction === "up" && sectionIndex === 0) ||
- (direction === "down" && sectionIndex === sections.length - 1)
- ) {
- return;
- }
-
- const newSections = [...sections];
- const targetIndex =
- direction === "up" ? sectionIndex - 1 : sectionIndex + 1;
- const temp = newSections[targetIndex];
- newSections[targetIndex] = newSections[sectionIndex];
- newSections[sectionIndex] = temp;
-
- setSections(newSections);
-
- // Track section reordering
- trackEvent("section_reordered", "user_action", `${sectionId}_${direction}`);
- };
-
- // Auto-generate markdown whenever profileData or activeTemplate changes
- useEffect(() => {
- setGeneratedMarkdown(generateMarkdown(profileData, activeTemplate));
-
- // Save template preference to localStorage
- if (!isLoadingFromStorage) {
- localStorage.setItem("github-profile-template", activeTemplate);
- }
- }, [profileData, activeTemplate, isLoadingFromStorage]);
-
- // Handle copy to clipboard
- const handleCopy = () => {
- navigator.clipboard.writeText(generatedMarkdown);
- setCopied(true);
- toast({
- title: "Copied to clipboard",
- description:
- "You can now paste this into your GitHub profile README.md file",
- });
-
- // Track this action in Google Analytics
- trackEvent("copy_markdown", "user_action", activeTemplate);
-
- // Show confetti
- confetti({
- particleCount: 100,
- spread: 70,
- origin: { y: 0.6 },
- });
-
- setTimeout(() => setCopied(false), 2000);
- };
-
- // Handle template selection
- const handleTemplateChange = (value) => {
- setActiveTemplate(value);
-
- // Track template selection in Google Analytics
- trackEvent("select_template", "user_preference", value);
- };
-
- // Fetch GitHub data
- const handleFetchGitHubData = async (username) => {
- if (!username) return;
-
- setIsFetching(true);
- try {
- const updatedData = await fetchGitHubData(username, profileData);
- setProfileData(updatedData);
-
- // Track successful GitHub data fetch
- trackEvent("github_data_fetched", "api_action", username);
-
- toast({
- title: "GitHub data fetched successfully",
- description: `Found user ${updatedData.name || username} with ${
- updatedData.publicRepos || 0
- } repositories`,
- });
- } catch (error) {
- console.error("Error fetching GitHub data:", error);
-
- // Track error in fetching GitHub data
- trackEvent(
- "github_data_error",
- "api_action",
- error.message || "unknown_error"
- );
-
- toast({
- title: "Error fetching data",
- description:
- error.message || "Could not fetch GitHub data. Please try again.",
- variant: "destructive",
- });
- } finally {
- setIsFetching(false);
- }
- };
-
- // Reset profile to default
- const handleResetProfile = () => {
- setProfileData(defaultProfileData);
- setActiveTemplate("modern");
- localStorage.removeItem("github-profile-data");
- localStorage.removeItem("github-profile-template");
- setHasLoadedFromStorage(false);
- setShowResetAlert(false);
-
- // Track profile reset
- trackEvent("profile_reset", "storage_action", "reset_to_default");
-
- toast({
- title: "Profile reset",
- description: "Your profile has been reset to default settings",
- });
- };
-
- // Start the builder
- const handleStartBuilder = () => {
- setShowLandingPage(false);
-
- // Check if user has seen the guide before using cookies
- const hasSeenGuide = getCookie("github-profile-guide-seen");
-
- // Only show the guide for new users
- if (!hasSeenGuide) {
- setTimeout(() => {
- setShowGuide(true);
- // Set cookie to remember that user has seen the guide
- setCookie("github-profile-guide-seen", "true", 30); // Expires in 30 days
- trackEvent("guide_shown", "user_experience", "first_time_user");
- }, 1000);
- } else {
- trackEvent("returning_user", "user_experience", "guide_skipped");
- }
-
- // Track this action in Google Analytics
- trackEvent("start_builder", "user_action", "landing_page");
- };
-
- // Track tab changes
- const handleTabChange = (tab) => {
- trackEvent("tab_changed", "navigation", tab);
- };
-
- // Track preview expansion
- const toggleExpandPreview = () => {
- const newState = !expandedPreview;
- setExpandedPreview(newState);
- trackEvent(
- newState ? "preview_expanded" : "preview_collapsed",
- "user_action",
- "preview_toggle"
- );
- };
-
- // Reset guide to show again
- const handleResetGuide = () => {
- eraseCookie("github-profile-guide-seen");
- setShowGuide(true);
- trackEvent("guide_reset", "user_action", "manual_reset");
- toast({
- title: "Guide reset",
- description: "The interactive guide will now show",
- });
- };
-
- // Toggle help documentation
- const handleToggleHelpDocs = (section = "") => {
- if (showHelpDocs) {
- setShowHelpDocs(false);
- router.push("/");
- trackEvent("help_docs_closed", "user_action", "help_documentation");
- } else {
- setShowHelpDocs(true);
- if (section) {
- router.push(`/help/${section}`);
- } else {
- router.push("/help");
- }
- trackEvent(
- "help_docs_opened",
- "user_action",
- section || "getting_started"
- );
- }
- };
-
- if (showLandingPage) {
- return ;
- }
-
- if (showHelpDocs) {
- return handleToggleHelpDocs()} />;
- }
-
- return (
-
-
- {
- setShowGuide(false);
- setCookie("github-profile-guide-seen", "true", 30); // Expires in 30 days
- trackEvent("guide_closed", "user_action", "tooltip_guide");
- }}
- />
-
-
-
-
-
- GitHub Profile README Builder
-
-
-
-
- Create an impressive GitHub profile README that showcases your
- skills, projects, and contributions. Our intuitive builder helps
- you stand out with beautiful templates and real-time previews.
-
-
-
-
-
-
-
- {hasLoadedFromStorage && (
-
-
-
-
-
-
-
- Profile loaded from browser storage
-
-
- Your previously saved profile has been loaded. Any
- changes will be automatically saved.
-
-
-
-
-
-
-
- )}
-
- {showResetAlert && (
-
-
-
-
-
- Reset profile to default?
-
- This will delete your saved profile and cannot be undone.
-
-
- A GitHub Profile README is a special repository that appears at
- the top of your GitHub profile page. It's a great way to introduce
- yourself, showcase your skills, and highlight your best work to
- visitors of your profile.
-
-
-
- The README appears on your profile when you create a repository
- with the same name as your GitHub username and add a README.md
- file to it.
-
-
-
-
-
-
How This Tool Helps You
-
- Our GitHub Profile README Builder makes it easy to create a
- professional and visually appealing profile page without writing
- any markdown code. Here's what you can do:
-
-
-
Choose from 6 professionally designed templates
-
- Automatically fetch your GitHub stats, repositories, and
- contribution data
-
-
- Customize sections like skills, projects, experience, and
- education
-
-
Personalize with custom color schemes
-
Preview your profile in real-time
-
Copy the generated markdown with a single click
-
-
-
-
-
Quick Start
-
-
- Fill in your information -
- Enter your name, title, bio, and other details in the Profile
- tab
-
-
- Connect GitHub - Enter your
- GitHub username to automatically fetch your stats
-
-
- Customize sections - Add
- skills, projects, work experience, and more
-
-
- Choose a template - Select
- from 6 beautiful templates
-
-
- Preview & copy - Preview
- your profile and copy the generated markdown
-
-
- Create on GitHub - Follow
- the instructions in the "Profile README" tab to create your
- GitHub profile README
-
-
-
-
-
-
-
-
-
-
- );
-
- const renderProfileReadme = () => (
-
-
-
- Creating Your GitHub Profile README
-
- Follow these steps to create a special repository for your GitHub
- profile README
-
-
-
-
-
- Important
-
- Your GitHub profile README is created by making a special
- repository that has the exact same name as your GitHub username.
-
-
-
-
-
- Step 1: Create a new repository
-
-
- Go to GitHub and create a new repository with the same name as
- your GitHub username. This is case sensitive, so make sure it
- matches exactly.
-
- For example, if your username is "johndoe", the repository
- should be named "johndoe".
-
-
-
-
-
-
- Step 2: Initialize with a README
-
-
- When creating the repository, check the option "Initialize this
- repository with a README" to automatically create a README.md
- file.
-
-
-
- GitHub will show a special message saying "You found a secret!
- username/username is a special repository that you can use to
- add a README.md to your GitHub profile."
-
-
-
-
-
-
- Step 3: Edit the README.md file
-
-
- After creating the repository, click on the "Edit" button (pencil
- icon) on the README.md file. Delete all the content and paste the
- markdown generated by our tool.
-
-
-
-
-
- Step 4: Commit your changes
-
-
- After pasting the markdown, scroll down and click the "Commit
- changes" button to save your profile README.
-
-
-
- You can add a commit message like "Update profile README" to
- describe your changes.
-
-
-
-
-
-
Step 5: View your profile
-
- Go to your GitHub profile page (github.com/username) to see your
- new profile README. It will appear at the top of your profile
- page.
-
-
-
-
- );
-
- const renderStepByStep = () => (
-
-
-
- Detailed Step-by-Step Guide
-
- Follow these detailed instructions with code examples to create your
- GitHub profile README
-
-
-
-
-
- Step 1: Generate your markdown
-
-
- Use our builder to create your profile README. Fill in your
- information, customize the sections, and choose a template. Then
- copy the generated markdown.
-
-
-
-
- {`# Hi there, I'm John Doe π
-
-Full Stack Developer passionate about creating elegant solutions
-
-## π§ Skills & Technologies
-JavaScript | React | Node.js | TypeScript`}
-
-
-
-
-
-
-
-
- Step 2: Create a special repository
-
-
- Go to GitHub and create a new repository with the exact same name
- as your GitHub username. Make sure to check "Initialize this
- repository with a README".
-
-
-
- Repository name: username (replace with your
- actual GitHub username)
-
- After creating the repository, you'll be taken to the repository
- page. Click on the README.md file, then click the edit button
- (pencil icon) in the top right of the file view.
-
-
-
- Delete any existing content in the file and paste your generated
- markdown.
-
-
-
-
-
-
- Step 4: Preview and commit your changes
-
-
- After pasting your markdown, click the "Preview" tab to see how it
- will look. If everything looks good, scroll down and click the
- "Commit changes" button.
-
-
-
-
- {`Commit message: Update profile README
-Description: Add personalized GitHub profile README
-[x] Commit directly to the main branch`}
-
-
-
-
-
-
-
-
- Step 5: Verify your profile README
-
-
- Go to your GitHub profile page by clicking on your profile picture
- in the top right corner and selecting "Your profile", or by
- navigating to github.com/username (replace "username" with your
- GitHub username).
-
-
-
- Your profile README should now appear at the top of your profile
- page. If you don't see it, make sure the repository name exactly
- matches your username.
-
-
-
-
-
-
- Step 6: Update your profile README anytime
-
-
- You can update your profile README anytime by editing the
- README.md file in your username repository. You can use our
- builder to generate new markdown whenever you want to refresh your
- profile.
-
-
-
- Tip: Bookmark our GitHub Profile README Builder for easy access
- whenever you want to update your profile.
-
-
-
-
-
-
-
-
-
-
- );
-
- const renderFAQ = () => (
-
-
-
- Frequently Asked Questions
-
- Find answers to common questions about GitHub profile READMEs and
- our builder
-
-
-
-
-
-
- What is a GitHub profile README?
-
-
-
- A GitHub profile README is a special feature that allows you
- to showcase information about yourself directly on your GitHub
- profile page. It appears as a prominent section at the top of
- your profile.
-
-
- To create one, you need to make a new repository with the same
- name as your GitHub username and add a README.md file to it.
- GitHub will automatically display the contents of this README
- at the top of your profile page.
-
-
-
-
-
-
- Why doesn't my profile README show up on my GitHub profile?
-
-
-
- If your profile README isn't showing up, check these common
- issues:
-
-
-
- Make sure the repository name{" "}
- exactly matches your GitHub username (it's
- case sensitive)
-
-
- Ensure the README file is named "README.md" (case sensitive)
-
-
- Verify that the README file is in the root directory of the
- repository
-
-
- Check that the repository is public (private repositories
- won't display the README on your profile)
-
-
- Try refreshing your profile page or logging out and back in
- if you've just created the repository
-
-
-
-
-
-
-
- Can I use HTML in my GitHub profile README?
-
-
-
- Yes, GitHub profile READMEs support a subset of HTML along
- with Markdown. You can use basic HTML tags like{" "}
- <h1>, <p>,{" "}
- <a>, <img>,{" "}
- <table>, and more.
-
-
- You can also use HTML for more advanced formatting, such as
- centering content with <div align="center">{" "}
- or creating complex layouts with tables.
-
-
- However, for security reasons, GitHub sanitizes the HTML and
- doesn't allow certain tags or attributes, particularly those
- related to JavaScript or styling that could be used
- maliciously.
-
-
-
-
-
-
- How do I add images to my GitHub profile README?
-
-
-
- There are several ways to add images to your GitHub profile
- README:
-
-
-
- Upload directly to the repository: You can
- upload images to your username repository and reference them
- using relative paths.
-
- 
-
-
- Use GitHub Issues: Upload an image to a
- GitHub issue (even a draft), then copy the URL and use it in
- your README.
-
-
- 
-
-
-
- Use external image hosting: Host your
- images on services like Imgur or Cloudinary and link to
- them.
-
- 
-
-
- Use GitHub's asset hosting: Drag and drop
- images directly into the README editor on GitHub, and it
- will automatically upload and link them.
-
-
-
-
-
-
-
- How do I add GitHub stats to my profile README?
-
-
-
- Our builder automatically generates the markdown for GitHub
- stats when you enable them in the Settings tab. These stats
- are powered by several popular open-source projects:
-
- These services generate dynamic images based on your GitHub
- username, which are then embedded in your README.
-
-
-
-
-
-
- How often are GitHub stats updated?
-
-
-
- The GitHub stats shown in your profile README are dynamically
- generated each time someone views your profile. However, there
- are some caching mechanisms in place:
-
-
-
- GitHub's image cache typically refreshes every few hours
- (usually 2-6 hours)
-
-
- Some stat providers have their own caching mechanisms
- (typically refreshed daily)
-
-
- Browser caching might also affect how frequently visitors
- see updated stats
-
-
-
- In general, your GitHub stats should update at least once per
- day, reflecting your recent activity.
-
-
-
-
-
-
- Can I customize the colors and themes of my GitHub stats?
-
-
-
- Yes! Our builder allows you to customize the colors of your
- GitHub stats by changing the color theme in the Settings tab.
- The color theme you select will be applied to your GitHub
- stats cards.
-
-
- For more advanced customization, you can manually edit the
- markdown after copying it. Each GitHub stats service supports
- various parameters for customization:
-
-
-
- theme - Choose from predefined themes like
- dark, radical, merko, etc.
-
-
-
-
-
-
- How do I add a visitor counter to my profile?
-
-
-
- Our builder includes an option to add a visitor counter to
- your profile README. You can enable this in the Settings tab
- under "GitHub Stats & Widgets" by toggling "Profile Visitors".
-
- The markdown for a visitor counter looks like this:{" "}
-
- 
-
-
-
-
-
-
-
- Is there a limit to how long my profile README can be?
-
-
-
- GitHub doesn't impose a strict character limit on profile
- READMEs, but there are some practical considerations:
-
-
-
- Very long READMEs may be visually overwhelming and users
- might not scroll through all the content
-
-
- GitHub's UI displays a certain amount of content before
- adding a "Show more" button, so keep your most important
- information near the top
-
-
- Extremely large READMEs with many images or widgets might
- load slowly for some users
-
-
-
- As a best practice, aim for a concise, well-organized README
- that highlights your most important information without
- overwhelming visitors.
-
-
-
-
-
-
- Can I save my profile configuration for later use?
-
-
-
- Yes! Our GitHub Profile README Builder automatically saves
- your profile configuration to your browser's local storage.
- This means you can:
-
-
-
- Close the browser and return later to continue where you
- left off
-
-
Make incremental changes to your profile over time
-
- Experiment with different templates and settings without
- losing your data
-
-
-
- Your data is stored locally in your browser and is not sent to
- any server (except when you explicitly fetch GitHub data). If
- you clear your browser data or switch to a different browser,
- you'll need to re-enter your information.
-
-
-
-
-
-
- Where can I learn more about GitHub profile READMEs?
-
-
-
- Here are some excellent resources to learn more about GitHub
- profile READMEs:
-
- Remember that while creative elements can make your profile
- more engaging, it's important to maintain readability and not
- overload your README with too many elements.
-
-
-
-
-
-
- How can I organize a large GitHub profile README?
-
-
-
- If you have a lot of content to include in your GitHub profile
- README, here are some organization tips:
-
-
-
- Use clear section headers - Divide your
- README into logical sections with descriptive headers
-
-
- Create a table of contents - Add a
- clickable table of contents at the top that links to each
- section
-
-
- Use collapsible sections - Implement
- GitHub's <details> and{" "}
- <summary> tags to create expandable
- sections
-
-
- Prioritize content - Put the most important
- information at the top where it's immediately visible
-
-
- Use visual hierarchy - Utilize different
- header sizes, bold text, and dividers to create visual
- structure
-
-
- Consider a multi-column layout - Use HTML
- tables or aligned divs to create a multi-column layout for
- certain sections
-
- Link tracking - Use URL shorteners with
- analytics for any links in your README
-
-
- GitHub Traffic - Check the traffic to your
- username repository in GitHub Insights
-
-
- Image proxy analytics - Use an image proxy
- service that provides view statistics
-
-
- Monitor followers - Track changes in your
- follower count over time
-
-
-
- You can also create a simple GitHub Action workflow that
- periodically records metrics like follower count, repository
- stars, and profile views to track changes over time.
-
-
-
-
-
-
- What are GitHub profile README limitations I should be aware of?
-
-
-
- While GitHub profile READMEs are powerful, they do have some
- limitations:
-
-
-
- No JavaScript - GitHub sanitizes HTML and
- doesn't allow JavaScript execution for security reasons
-
-
- Limited CSS - Only a subset of CSS is
- supported through HTML style attributes
-
-
- Image restrictions - Some image hosting
- services may be blocked
-
-
- Rate limiting - Services that generate
- dynamic content may have API rate limits
-
-
- Size considerations - Very large READMEs
- with many images can load slowly
-
-
- Mobile display - Complex layouts may not
- display well on mobile devices
-
-
- Markdown compatibility - Some advanced
- Markdown features may render differently than expected
-
-
-
- To work around these limitations, focus on creating clean,
- well-structured content that looks good across devices and
- browsers. Test your README on different screen sizes to ensure
- it's readable everywhere.
-
-
-
-
-
-
- How can I make my GitHub profile README accessible?
-
-
-
- Making your GitHub profile README accessible ensures it can be
- used by people with disabilities. Here are some accessibility
- best practices:
-
-
-
- Add alt text to images - Always include
- descriptive alt text for images using the format:{" "}
- 
-
-
- Use semantic headers - Organize content
- with proper heading levels (##, ###, etc.) in a logical
- hierarchy
-
-
- Ensure sufficient color contrast - Choose
- colors with enough contrast for readability
-
-
- Don't rely solely on color - Use additional
- indicators besides color to convey information
-
-
- Make link text descriptive - Use meaningful
- link text instead of generic phrases like "click here"
-
-
- Use simple tables - If using tables, keep
- them simple with proper headers
-
-
- Test with a screen reader - Check how your
- README sounds when read aloud
-
-
-
- By making your profile README accessible, you ensure that all
- visitors, including those using assistive technologies, can
- access and understand your content.
-
-
-
-
-
-
- What are some common mistakes to avoid in GitHub profile
- READMEs?
-
-
-
- Here are some common mistakes to avoid when creating your
- GitHub profile README:
-
-
-
- Overcrowding - Adding too much information
- makes your profile overwhelming and hard to read
-
-
- Outdated information - Not updating your
- README regularly with current skills and projects
-
-
- Broken links/images - Links that lead
- nowhere or images that don't load
-
-
- Poor organization - Lack of clear sections
- or logical flow
-
-
- Overusing animations/GIFs - Too many moving
- elements can be distracting
-
-
- Ignoring mobile users - Creating layouts
- that break on smaller screens
-
-
- Missing context - Not providing enough
- information about who you are and what you do
-
-
- Typos and grammatical errors - Not
- proofreading your content
-
-
- Inconsistent styling - Mixing different
- visual styles throughout your README
-
-
-
- Remember that your profile README is often the first
- impression people have of you on GitHub, so it's worth taking
- the time to make it polished and professional.
-
-
-
-
-
-
- How can I showcase my GitHub contributions effectively?
-
-
-
- There are several ways to effectively showcase your GitHub
- contributions in your profile README:
-
- Recent activity - Show your most recent
- GitHub activity automatically
-
-
-
- Our builder includes options to add many of these contribution
- visualizations to your profile README. You can enable them in
- the Settings tab under "GitHub Stats & Widgets".
-
-
-
-
-
-
- How often should I update my GitHub profile README?
-
-
-
- There's no strict rule for how often you should update your
- GitHub profile README, but here are some guidelines:
-
-
-
- Major career changes - Update when you
- change jobs, roles, or career focus
-
-
- New skills - Add new technologies or skills
- as you learn them
-
-
- Significant projects - Feature new major
- projects you've completed
-
-
- Quarterly review - Consider a quarterly
- review to ensure information is current
-
-
- Dynamic content - Set up GitHub Actions to
- automatically update certain parts of your README (like blog
- posts or activity)
-
-
-
- The most important thing is to ensure your README accurately
- represents your current skills, interests, and projects.
- Outdated information can give visitors the wrong impression
- about your current focus and expertise.
-
-
- Using our GitHub Profile README Builder makes updates easy -
- just return to the tool, make your changes, and copy the new
- markdown to update your README.
-
- Choose from 6 professionally designed templates to make your GitHub
- profile stand out
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {templates[currentIndex].name}
-
-
{templates[currentIndex].description}
-
-
-
-
-
-
-
-
-
-
- {templates.map((_, index) => (
-
-
-
-
- );
-}
diff --git a/components/testimonial-section.tsx b/components/testimonial-section.tsx
deleted file mode 100644
index 199fc3f..0000000
--- a/components/testimonial-section.tsx
+++ /dev/null
@@ -1,98 +0,0 @@
-"use client";
-
-import { motion } from "framer-motion";
-import { Star } from "lucide-react";
-
-import { Avatar } from "@/components/ui/atomic/avatar";
-import { Card, CardContent } from "@/components/ui/card";
-
-const testimonials = [
- {
- name: "Alex Johnson",
- role: "Frontend Developer",
- avatar: "/placeholder.svg?key=vkcvp",
- content:
- "This tool saved me hours of work! I was able to create a professional GitHub profile in minutes that truly represents my skills and projects.",
- stars: 5,
- },
- {
- name: "Sarah Chen",
- role: "Full Stack Engineer",
- avatar: "/placeholder.svg?key=c0v2a",
- content:
- "The templates are beautiful and the customization options are exactly what I needed. My GitHub profile now stands out from the crowd!",
- stars: 5,
- },
- {
- name: "Michael Rodriguez",
- role: "Open Source Contributor",
- avatar: "/placeholder.svg?key=jfqwt",
- content:
- "As someone who contributes to many open source projects, having a great GitHub profile is essential. This builder made it effortless.",
- stars: 4,
- },
-];
-
-export function TestimonialSection() {
- return (
-
-
-
-
- What Developers Say
-
-
- Join thousands of developers who have enhanced their GitHub profiles
-