From 55000a0fb392c1585bedcb27836ac2b82f4a67fa Mon Sep 17 00:00:00 2001 From: "Sodja Nathan O." Date: Thu, 5 Feb 2026 01:29:22 +0000 Subject: [PATCH 1/6] fix scroll: add buttons --- app/components/TestimonialSection.vue | 115 +- pnpm-lock.yaml | 9479 +++++++++++++++++++++++++ 2 files changed, 9585 insertions(+), 9 deletions(-) create mode 100644 pnpm-lock.yaml diff --git a/app/components/TestimonialSection.vue b/app/components/TestimonialSection.vue index 16e8748..113d4c1 100644 --- a/app/components/TestimonialSection.vue +++ b/app/components/TestimonialSection.vue @@ -8,27 +8,52 @@ -
-
-
+
+ + + + +
+
-
+

“{{ t.quote }}”
- + – {{ t.name }}, {{ t.role }}

@@ -40,7 +65,79 @@ From 92ecb65c2ef204b0211f92d4b6e94d62301126f0 Mon Sep 17 00:00:00 2001 From: "Sodja Nathan O." Date: Thu, 5 Feb 2026 12:34:12 +0000 Subject: [PATCH 3/6] feat: randomize grid, add better images and testimony --- app/components/TestimonialSection.vue | 15 ++++- app/data/testimonials.js | 82 +++++++++++++-------------- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/app/components/TestimonialSection.vue b/app/components/TestimonialSection.vue index d623cfe..bc0b7a6 100644 --- a/app/components/TestimonialSection.vue +++ b/app/components/TestimonialSection.vue @@ -37,7 +37,7 @@
import { onMounted, onBeforeUnmount, ref } from 'vue'; -import { testimonials } from '../data/testimonials'; +import { testimonials as rawTestimonials } from '../data/testimonials'; const scroller = ref(null); +const testimonials = ref([]); + +function shuffleArray(array) { + const shuffled = [...array]; + for (let i = shuffled.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; + } + return shuffled; +} function scrollBy(direction = 1) { const el = scroller.value; @@ -120,6 +130,7 @@ function onKeyDown(e) { } onMounted(() => { + testimonials.value = shuffleArray(rawTestimonials); const el = scroller.value; if (!el) return; el.addEventListener('pointerdown', onPointerDown); diff --git a/app/data/testimonials.js b/app/data/testimonials.js index 6c99116..aaf6a7d 100644 --- a/app/data/testimonials.js +++ b/app/data/testimonials.js @@ -1,76 +1,61 @@ export const testimonials = [ { - image: - "https://pbs.twimg.com/profile_images/1686721836795432960/Ghu7dKZC_400x400.jpg", - name: "Andrew Smith", - role: "Full-Stack Developer", - quote: - "I never imagined I could transition from graphic design to full-stack. DevCongress made it possible.", - }, - { - image: "https://pbs.twimg.com/profile_images/1875679658647138304/w--j-PK8_400x400.jpg", - name: "Stefan", - role: "Cyber Security Expert", + image: "https://technovagh.com/wp-content/uploads/2018/02/gAWD8ZGQ.jpg", + name: "Stefan Froelich", + role: "Tech Lead", quote: - "The red-team drills and mentorship sharpened my threat detection instincts and opened the door to leading incident response at Microsoft.", + "DevCongress is where I found community and friends who pushed me to be better.", }, { image: "https://pbs.twimg.com/media/FHvsk2MXMAQBovS?format=jpg&name=large", - name: "Leo", - role: "Data Analyst", - quote: "Mentorship here was invaluable, guiding me to a position at Microsoft.", + name: "BuBunyo", + role: "Technical Engineering Lead", + quote: "As a lover of all things tech, DevCongress has provided the grounds to lead, mentor, challenge, inspire and progress my career and the ecosystem.", }, { - image: - "https://pbs.twimg.com/profile_images/3248556771/feb8ad6b5f403e70ea321d17b80df232_400x400.png", - name: "Anthony Acquah", - role: "Tech Lead", - quote: "Best decision of my career; now I lead a startup team in Silicon Valley.", - }, - { - image: "https://www.devcongress.org/images/claude.jpg", + image: "https://avatars.githubusercontent.com/u/1866816?v=4", name: "Claude Ayitey", - role: "Full-Stack Developer", + role: "Full-Stack Developer and Designer Extraordinaire", quote: - "I never imagined I could transition from graphic design to full-stack. DevCongress made it possible.", + "I never imagined I could transition from graphic design to full-stack. DevCongress made it possible.", }, { - image: "https://www.devcongress.org/images/edem.jpg", - name: "Leo", - role: "Data Analyst", - quote: "Mentorship here was invaluable, guiding me to a position at Microsoft.", + image: "https://avatars.githubusercontent.com/u/676790?v=4", + name: "Edem Kumodzi", + role: "Principal Engineer", + quote: "Shaping others in Devcongress has been pivotal to my growth as a tech leader.", }, { - image: "https://www.devcongress.org/images/elorm.jpg", + image: "https://images.squarespace-cdn.com/content/v1/64c1ced9e4d636753f2d62a9/6c6bc5a8-d5ac-4603-8620-8d7a501cae5f/Elorm+Adjaho+_+IWL+Fellow.jpg", name: "Elorm Adjaho", - role: "Tech Lead", - quote: "Best decision of my career; now I lead a startup team in Silicon Valley.", + role: "Founder and Business Strategist", + quote: "DevCongress has been invaluable training for my journey. Best decision of my career; now I lead a startup team in Silicon Valley.", }, { - image: "https://www.devcongress.org/images/francis.jpg", + image: "https://pbs.twimg.com/profile_images/1278660776232996864/YouNWmIr_400x400.jpg", name: "Francis Addai", - role: "Full-Stack Developer", + role: "Senior Consultant", quote: - "I never imagined I could transition from graphic design to full-stack. DevCongress made it possible.", + "I never imagined I could transition from graphic design to full-stack. DevCongress made it possible.", }, { - image: "https://www.devcongress.org/images/savekirk.jpg", + image: "https://cdn.prod.website-files.com/66ac6f5940aeffad1e0d0aaa/66b5b610ba25ff21243f35c2_kirk%20pasport.jpg", name: "Saviour Kirk Agbenyegah", - role: "Data Analyst", - quote: "Mentorship here was invaluable, guiding me to a position at Microsoft.", + role: "Lead Software Engineer", + quote: "From challenging perspectives to inspiring growth, DevCongress supported my career journey through community and mentorship.", }, { image: - "https://pbs.twimg.com/profile_images/1680929162616291329/_jCSwpti_400x400.jpg", + "https://pbs.twimg.com/profile_images/1680929162616291329/_jCSwpti_400x400.jpg", name: "Yaw Boakye", role: "Tech Lead", quote: "Best decision of my career; now I lead a startup team in Silicon Valley.", }, { - image: "https://ca.slack-edge.com/T0A0T7A5Q-U01NAPY9TEC-f92ae3063f27-512", + image: "https://media.licdn.com/dms/image/v2/D4D03AQGr118XBPfyjw/profile-displayphoto-crop_800_800/B4DZrpH9zrIgAI-/0/1764847772231?e=1772064000&v=beta&t=RxUuGWwMeggNUBsnpEp3QZDGvy2FHxvNTsYJZVHpVrs", name: "Nathan Sodja", role: "Software Engineer", - quote: "Gave me confidence to build my own startup.", + quote: "DevCongress provided community and challenged me to grow into a confident software engineer. Also gave the chance to give back by mentoring others.", }, { image: "https://ca.slack-edge.com/T0A0T7A5Q-U02LQJ83N9H-42650d9d2b97-512", @@ -78,4 +63,19 @@ export const testimonials = [ role: "Software Engineer", quote: "Gave me confidence to build my own startup.", }, + { + image: + "https://pbs.twimg.com/profile_images/1686721836795432960/Ghu7dKZC_400x400.jpg", + name: "Andrew Smith", + role: "Full-Stack Developer", + quote: + "I never imagined I could transition from graphic design to full-stack. DevCongress made it possible.", + }, + { + image: + "https://pbs.twimg.com/profile_images/3248556771/feb8ad6b5f403e70ea321d17b80df232_400x400.png", + name: "Anthony Acquah", + role: "Tech Lead", + quote: "Best decision of my career; now I lead a startup team in Silicon Valley.", + }, ]; From 3579f052eaab5f1b170f4944d26bac4006df5f6c Mon Sep 17 00:00:00 2001 From: "Sodja Nathan O." Date: Thu, 5 Feb 2026 16:24:04 +0000 Subject: [PATCH 4/6] feat: image fallbacks --- app/components/TestimonialSection.vue | 74 ++++++++++++++++----------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/app/components/TestimonialSection.vue b/app/components/TestimonialSection.vue index bc0b7a6..47f7ca9 100644 --- a/app/components/TestimonialSection.vue +++ b/app/components/TestimonialSection.vue @@ -1,8 +1,10 @@ From 85a1c71a70d1589a19ff2b43ac9bcc1c16a53f75 Mon Sep 17 00:00:00 2001 From: "Sodja Nathan O." Date: Fri, 6 Feb 2026 22:35:56 +0000 Subject: [PATCH 5/6] feat: play video auto when scroll into view --- app/components/HeroSection.vue | 43 +++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/app/components/HeroSection.vue b/app/components/HeroSection.vue index e96be47..4d62d57 100644 --- a/app/components/HeroSection.vue +++ b/app/components/HeroSection.vue @@ -1,3 +1,43 @@ + +