diff --git a/nx-dev/nx-dev/lib/champions.ts b/nx-dev/nx-dev/lib/champions.ts
index 53047692fa..8aad10a461 100644
--- a/nx-dev/nx-dev/lib/champions.ts
+++ b/nx-dev/nx-dev/lib/champions.ts
@@ -1,6 +1,6 @@
import { Champion } from '@nx/nx-dev/ui-common';
-export const champions1: Champion[] = [
+export const champions: Champion[] = [
{
name: 'Santosh Yadav',
expertise:
@@ -109,8 +109,71 @@ export const champions1: Champion[] = [
],
location: 'Belgium',
},
-];
-export const champions2: Champion[] = [
+ {
+ name: 'Bob Strecansky',
+ expertise:
+ 'Community Evangelist, Enterprise Ideology, Performance Optimization',
+ imageUrl: '/images/champions/bob-strecansky.webp',
+ contact: [
+ {
+ label: '@bobstrecansky',
+ link: 'https://twitter.com/bobstrecansky',
+ },
+ ],
+ location: 'Atlanta, GA, USA',
+ },
+ {
+ name: 'Joshua VanAllen',
+ expertise:
+ 'App migrations, large scale repository structures, Angular, Vue, Spring, onboarding, educating the masses',
+ imageUrl: '/images/champions/josh-vanallen.webp',
+ contact: [
+ {
+ label: '@joshvanallen.dev',
+ link: 'https://bsky.app/profile/joshvanallen.dev',
+ },
+ ],
+ location: 'Pennsylvania, USA',
+ },
+ {
+ name: 'Thomas Laforge',
+ expertise:
+ 'Teach users how to create a better developer experience (DX) with Nx and Angular through github challenges, blog posts, and conference talks',
+ imageUrl: '/images/champions/thomas-laforge.webp',
+ contact: [
+ {
+ label: '@laforge_toma',
+ link: 'https://twitter.com/laforge_toma',
+ },
+ ],
+ location: 'France',
+ },
+ {
+ name: 'Fabian Gosebrink',
+ expertise:
+ 'Angular, Blogs, Conferences & Talks, Enterprise Architecture with Nx, Onboarding new Devs, Repository Structure, State Management',
+ imageUrl: '/images/champions/fabian-gosebrink.webp',
+ contact: [
+ {
+ label: 'fabian.gosebrink@offering.solutions',
+ link: 'mailto:fabian.gosebrink@offering.solutions',
+ },
+ ],
+ location: 'Switzerland',
+ },
+ {
+ name: 'Brecht Billiet',
+ expertise:
+ "Large-scale architecture, GenAI automation, Angular, Scaling monorepo's",
+ imageUrl: '/images/champions/brecht-billiet.webp',
+ contact: [
+ {
+ label: 'brecht@simplified.courses',
+ link: 'mailto:brecht@simplified.courses',
+ },
+ ],
+ location: 'Belgium',
+ },
{
name: 'Dominik Pieper',
expertise:
@@ -239,8 +302,6 @@ export const champions2: Champion[] = [
],
location: 'Czechia',
},
-];
-export const champions3: Champion[] = [
{
name: 'Lara Newsom',
expertise:
@@ -268,16 +329,17 @@ export const champions3: Champion[] = [
location: 'USA',
},
{
- name: 'Shai Reznik',
- expertise: 'Writing plugins, Qwik, testing',
- imageUrl: '/images/champions/shai-reznik.webp',
+ name: 'Edouard Maleix',
+ expertise:
+ 'Setting up workspace for startups and enterprises. Improving workspace and CI pipeline performance. Creating plugins for Node.js applications and deployments. Sharing knowledge. Caching nerd.',
+ imageUrl: '/images/champions/edouard-maleix.webp',
contact: [
{
- label: '@shai_reznik',
- link: 'https://twitter.com/shai_reznik',
+ label: 'LinkedIn: edouard-maleix',
+ link: 'https://www.linkedin.com/in/edouard-maleix',
},
],
- location: 'Israel',
+ location: 'Austria',
},
{
name: 'Issam GUISSOUMA',
@@ -291,18 +353,6 @@ export const champions3: Champion[] = [
],
location: 'France',
},
- {
- name: 'Devin Shoemaker',
- expertise: 'Writing plugins and being the resident Nx enthusiast at Ionic',
- imageUrl: '/images/champions/devin-shoemaker.webp',
- contact: [
- {
- label: '@ParanoidCoder',
- link: 'https://twitter.com/ParanoidCoder',
- },
- ],
- location: 'Missouri, USA',
- },
{
name: 'Preston Lamb',
expertise: 'Angular, Cypress, Question Answerer for New Users',
diff --git a/nx-dev/nx-dev/pages/community.tsx b/nx-dev/nx-dev/pages/community.tsx
index bbcb3a08e3..ecd041abc4 100644
--- a/nx-dev/nx-dev/pages/community.tsx
+++ b/nx-dev/nx-dev/pages/community.tsx
@@ -1,3 +1,4 @@
+'use client';
import {
ChampionCard,
ChampionPerks,
@@ -8,7 +9,25 @@ import {
import { ConnectWithUs } from '@nx/nx-dev/ui-community';
import { NextSeo } from 'next-seo';
import { useRouter } from 'next/router';
-import { champions1, champions2, champions3 } from '../lib/champions';
+import dynamic from 'next/dynamic';
+import { champions } from '../lib/champions';
+
+export function ChampionsList(): JSX.Element {
+ return (
+ <>
+ {[...champions]
+ .sort(() => 0.5 - Math.random())
+ .map((data, index) => (
+
-+{data.expertise}
---{' '} - {data.contact[0].label} -
{data.expertise}
+