diff --git a/client/index.html b/client/index.html index a14f022..3fae766 100644 --- a/client/index.html +++ b/client/index.html @@ -3,8 +3,12 @@ - - Zulfaqar Jamal + + + + + + Zul — cozy tech archive
diff --git a/client/public/content.json b/client/public/content.json index 4602085..9bf145e 100644 --- a/client/public/content.json +++ b/client/public/content.json @@ -5,7 +5,7 @@ "title": "Threat Intelligence Specialist | CCT by EC Council | Indie Developer", "headline": "Cybersecurity • DFIR • CTI • Automation", "summary": "Independent cybersecurity enthusiast and EC-Council Certified Cybersecurity Technician (CCT) with a strong interest in offensive and defensive security. Leads the Infinity Code CTF team, training members in problem-solving and security fundamentals. Focused on DFIR, Cyber Threat Intelligence (CTI), automation, VAPT fundamentals and hands-on security projects, while also exploring software development, technical initiatives and STEM education.", - "pronouns": "He/Her/She/Faer", + "pronouns": "she/her", "location": "Singapore, Singapore", "email": "zulfaqardhiyaulhaq@gmail.com", "linkedin": "https://www.linkedin.com/in/zulfaqarnet", @@ -26,12 +26,14 @@ }, "settings": { "theme": { - "bg": "#0e0b13", - "primary": "#f2a8d4", - "violet": "#cbb5ff", - "text": "#f7eff9", - "muted": "#aa9eaf", - "line": "#302635" + "bg": "#1a1625", + "primary": "#ff79c6", + "violet": "#c6a8ff", + "text": "#f4f0fa", + "muted": "#b9afc8", + "line": "#403651", + "sky": "#8be9fd", + "card": "#241e33" } }, "recent": [ diff --git a/client/src/App.jsx b/client/src/App.jsx index 490a9d3..9140327 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -55,6 +55,33 @@ const months = (start, end) => { ); }; +function cozyProjectBadges(item) { + const haystack = [ + item?.title, + item?.category, + item?.description, + ...(Array.isArray(item?.skills) ? item.skills : []), + ...(Array.isArray(item?.tags) ? item.tags : []), + ] + .filter(Boolean) + .join(' ') + .toLowerCase(); + + const badges = []; + + if (/python/.test(haystack)) badges.push('🐍 python princess'); + if (/vapt|pentest|penetration|vulnerab/.test(haystack)) badges.push('🛡️ vapt automation'); + if (/dfir|forensic|incident/.test(haystack)) badges.push('🔎 dfir detective'); + if (/threat|cti|intelligence/.test(haystack)) badges.push('📡 cti signal scout'); + if (/linux/.test(haystack)) badges.push('🐧 linux wizard'); + if (/automation/.test(haystack)) badges.push('✨ cozy automation'); + if (/software|development|indie/.test(haystack)) badges.push('🧸 indie dev'); + + if (!badges.length) badges.push('🌸 curious build'); + + return badges.slice(0, 3); +} + /* ========================================================= CONTENT NORMALIZATION Keeps the client safe when the CMS/API has optional fields. @@ -4768,6 +4795,17 @@ export default function App({ initialContent = null }) { ? window.location : { pathname: '', hash: '', search: '' }; + const hiringQuery = + typeof URLSearchParams !== 'undefined' + ? new URLSearchParams( + currentLocation.search || '' + ) + : null; + + const isMentorHiring = + hiringQuery?.get('hiring') === + 'system_security_mentor'; + const pathnameWithoutBase = currentLocation.pathname.startsWith(BASE_PATH) ? '/' + currentLocation.pathname.slice(BASE_PATH.length).replace(/^\/+/, '') @@ -5148,142 +5186,95 @@ export default function App({ initialContent = null }) { return ( <> {/* =================================================== - NAVIGATION + COZY EXPLORATION DOCK =================================================== */} -