From f0b3e92571f9ac503dd2306410280b2866cd2738 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 3 Nov 2025 13:02:38 +0000 Subject: [PATCH 1/6] Initial plan From 4f254d1079b88099a9e7825c287f8af5193ea79d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 3 Nov 2025 13:06:27 +0000 Subject: [PATCH 2/6] Initial exploration - understanding current design Co-authored-by: UmairJibran <43789374+UmairJibran@users.noreply.github.com> --- public/rss.xml | 106 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 public/rss.xml diff --git a/public/rss.xml b/public/rss.xml new file mode 100644 index 00000000..00e69a88 --- /dev/null +++ b/public/rss.xml @@ -0,0 +1,106 @@ + + + + + Umair Jibran's Writings + + + https://umairjibran.com/writings + + + Latest articles from Umair Jibran's writings. + + + + en-us + + + Mon, 03 Nov 2025 13:05:25 GMT + + + + Mastering Local Backend Development: Docker & NGINX as a Reverse Proxy for Efficient Testing + + + https://umairjibran.com/blogs/docker-nginx-reverse-proxy-local-dev + + + Learn how to set up a local backend environment using Docker and NGINX as a reverse proxy. Streamline your development and testing with this step-by-step guide, optimized for efficient scaling and traffic management. + + + Sun, 20 Oct 2024 18:13:00 GMT + + + https://umairjibran.com/blogs/docker-nginx-reverse-proxy-local-dev + + + + + GitHub CODEOWNERS: A Comprehensive Guide + + + https://umairjibran.com/blogs/github-codeowners + + + Learn how to use GitHub's CODEOWNERS file to streamline your project's workflow. This guide covers everything you need to know about CODEOWNERS, including how to create and use it effectively. + + + Sat, 12 Oct 2024 18:13:00 GMT + + + https://umairjibran.com/blogs/github-codeowners + + + + + LocalStack: Your Gateway to Seamless Cloud Testing Locally + + + https://umairjibran.com/blogs/localstack-your-gateway-to-cloud-testing + + + Discover how LocalStack enables you to emulate AWS services locally, saving time and costs while improving productivity. + + + Sun, 22 Dec 2024 18:13:00 GMT + + + https://umairjibran.com/blogs/localstack-your-gateway-to-cloud-testing + + + + + Make it your own + + + https://umairjibran.com/blogs/make-it-your-own + + + Learn how you can customize this template to make it your own. This guide will help you understand how the template is organized and how to add new content. + + + Thu, 22 Aug 2024 19:29:00 GMT + + + https://umairjibran.com/blogs/make-it-your-own + + + + + Ultimate Guide to Removing Sensitive Data from Git History: Protect Your Codebase + + + https://umairjibran.com/blogs/removing-historic-commits + + + Discover the definitive methods to remove sensitive data like API keys from Git history. Learn how to safeguard your repository, rewrite commit history, and prevent future leaks using best practices. + + + Sun, 08 Dec 2024 18:13:00 GMT + + + https://umairjibran.com/blogs/removing-historic-commits + + + + \ No newline at end of file From 929a034199126e4e5889a7752df6f8633f35ba4c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 3 Nov 2025 13:11:37 +0000 Subject: [PATCH 3/6] Transform home page to brutalist design Co-authored-by: UmairJibran <43789374+UmairJibran@users.noreply.github.com> --- src/app/layout.tsx | 2 +- src/app/page.tsx | 160 ++++++++++++++-------------- src/components/Header.tsx | 18 ++-- src/components/RecentWriting.tsx | 14 +-- src/styles/globals.css | 174 +++++++++++++------------------ tailwind.config.ts | 15 ++- 6 files changed, 181 insertions(+), 202 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 29595bee..f5a10526 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -49,7 +49,7 @@ export default function RootLayout({ data-website-id={umamiAnalytics.dataWebsiteId} />
{children} diff --git a/src/app/page.tsx b/src/app/page.tsx index a9211283..4373a3ae 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -80,12 +80,12 @@ function ExperienceTimelineItem({ {/* Card */}
setShowDetails(true)} >
{/* Company Logo */} -
+
{companyLogos[experience.company] ? ( ) : ( - + )}
{/* Content */}
-

+

{experience.position} {experience.volunteer && ( Volunteer @@ -117,13 +117,13 @@ function ExperienceTimelineItem({ e.stopPropagation()} > {experience.company} -

+

{startDate.toLocaleDateString("en-US", { month: "short", year: "numeric", @@ -137,7 +137,7 @@ function ExperienceTimelineItem({ : "Present"}{" "} · {duration}

-

+

{experience.oneLine}

@@ -147,7 +147,7 @@ function ExperienceTimelineItem({ {/* Timeline dot and line */}
-
+
{/* Empty space on the other side */} @@ -193,9 +193,9 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) {
{/* Previous Testimonial (Left, smaller) */}
-
- -

+

+ +

{testimonials[getTestimonialIndex(-1)].testimonial}

@@ -204,13 +204,13 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) { alt={testimonials[getTestimonialIndex(-1)].name} width={32} height={32} - className="rounded-full" + className="border-2 border-black" />
-
+
{testimonials[getTestimonialIndex(-1)].name}
-
+
{testimonials[getTestimonialIndex(-1)].designationAtTime}
@@ -222,9 +222,9 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) {
-
- -

+

+ +

{testimonials[currentIndex].testimonial}

@@ -233,16 +233,16 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) { alt={testimonials[currentIndex].name} width={56} height={56} - className="rounded-full" + className="border-4 border-black" />
-
+
{testimonials[currentIndex].name}
-
+
{testimonials[currentIndex].designationAtTime}
-
+
{testimonials[currentIndex].employerAtTime}
@@ -250,7 +250,7 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) { @@ -261,9 +261,9 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) { {/* Next Testimonial (Right, smaller) */}
-
- -

+

+ +

{testimonials[getTestimonialIndex(1)].testimonial}

@@ -272,13 +272,13 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) { alt={testimonials[getTestimonialIndex(1)].name} width={32} height={32} - className="rounded-full" + className="border-2 border-black" />
-
+
{testimonials[getTestimonialIndex(1)].name}
-
+
{testimonials[getTestimonialIndex(1)].designationAtTime}
@@ -299,10 +299,10 @@ function TestimonialsCarousel({ testimonials }: { testimonials: any[] }) { setIsTransitioning(false); }, 300); }} - className={`h-2 rounded-full transition-all duration-300 ${ + className={`h-4 transition-all duration-300 border-2 border-black ${ index === currentIndex - ? "w-8 bg-green-400" - : "w-2 bg-gray-700 hover:bg-gray-600" + ? "w-8 bg-black" + : "w-4 bg-white hover:bg-gray-200" }`} aria-label={`Go to testimonial ${index + 1}`} /> @@ -337,11 +337,11 @@ export default function Home() { }, []); return ( -
- {/* Hero Section - Dark Theme */} +
+ {/* Hero Section - Brutalist Theme */}
{/* Title */} -

+

Software engineer, technical
writer & open-source maintainer @@ -349,24 +349,27 @@ export default function Home() { {/* Description */}
{/* Social Links */} -
- {profile.social.map((item) => ( +
+ {profile.social.map((item, idx) => ( - {item.icon === "GitHub" && } - {item.icon === "Linkedin" && } - {item.icon === "Twitter" && } - {item.icon === "Mail" && } - {item.icon === "Type" && } + {item.icon === "GitHub" && } + {item.icon === "Linkedin" && } + {item.icon === "Twitter" && } + {item.icon === "Mail" && } + {item.icon === "Type" && } {item.name} ))} @@ -375,11 +378,11 @@ export default function Home() { {/* Recent Writing Section */} {latestBlog && (
-
-

Latest Writing

+
+

Latest Writing

View all @@ -391,23 +394,23 @@ export default function Home() { {/* GitHub Contribution Graph Placeholder */}
-

+

Contribution Graph

-
+
-

+

1038 contributions in the last year

- Less + Less
-
-
-
-
+
+
+
+
- More + More
{/* Simplified contribution grid */} @@ -416,18 +419,18 @@ export default function Home() { const intensity = Math.random(); const bgColor = intensity > 0.75 - ? "bg-[#39d353]" + ? "bg-black" : intensity > 0.5 - ? "bg-[#26a641]" + ? "bg-brutalist-red" : intensity > 0.25 - ? "bg-[#006d32]" + ? "bg-brutalist-yellow" : intensity > 0.1 - ? "bg-[#0e4429]" - : "bg-[#161b22]"; + ? "bg-gray-200" + : "bg-white"; return (
); @@ -439,14 +442,14 @@ export default function Home() { {/* Work Experience Section - Timeline */}
-

+

Work Experience

{/* Timeline container */}
{/* Vertical line */} -
+
{/* Timeline items */}
@@ -465,13 +468,13 @@ export default function Home() { {experience.map((exp, index) => (
{ // Will need to handle mobile dialog }} >
-
+
{companyLogos[exp.company] ? ( ) : ( - + )}
-

+

{exp.position}

e.stopPropagation()} > {exp.company} -

+

{new Date(exp.startDate).toLocaleDateString("en-US", { month: "short", year: "numeric", @@ -510,7 +513,7 @@ export default function Home() { }) : "Present"}

-

+

{exp.oneLine}

@@ -523,23 +526,23 @@ export default function Home() {
{/* Testimonials Section - Carousel */} -
+
-

What People Say

+

What People Say

{/* Footer / Contact */} -