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) => ( + + ))} + + ); +} + +const DynamicChampionsList = dynamic(() => Promise.resolve(ChampionsList), { + ssr: false, + loading: () =>
, +}); export default function Community(): JSX.Element { const router = useRouter(); @@ -68,24 +87,8 @@ export default function Community(): JSX.Element { gather feedback from the community to help improve Nx.

-
-
- {champions1.map((data, index) => ( - - ))} -
-
- {champions2.map((data) => ( - - ))} -
-
- -
- {champions3.map((data) => ( - - ))}
+ diff --git a/nx-dev/nx-dev/public/images/champions/bob-strecansky.webp b/nx-dev/nx-dev/public/images/champions/bob-strecansky.webp new file mode 100644 index 0000000000..4fe6ad4620 Binary files /dev/null and b/nx-dev/nx-dev/public/images/champions/bob-strecansky.webp differ diff --git a/nx-dev/nx-dev/public/images/champions/brecht-billiet.webp b/nx-dev/nx-dev/public/images/champions/brecht-billiet.webp new file mode 100644 index 0000000000..66a4376672 Binary files /dev/null and b/nx-dev/nx-dev/public/images/champions/brecht-billiet.webp differ diff --git a/nx-dev/nx-dev/public/images/champions/devin-shoemaker.webp b/nx-dev/nx-dev/public/images/champions/devin-shoemaker.webp deleted file mode 100644 index 7ad79fd1c6..0000000000 Binary files a/nx-dev/nx-dev/public/images/champions/devin-shoemaker.webp and /dev/null differ diff --git a/nx-dev/nx-dev/public/images/champions/edouard-maleix.webp b/nx-dev/nx-dev/public/images/champions/edouard-maleix.webp new file mode 100644 index 0000000000..f30397571b Binary files /dev/null and b/nx-dev/nx-dev/public/images/champions/edouard-maleix.webp differ diff --git a/nx-dev/nx-dev/public/images/champions/fabian-gosebrink.webp b/nx-dev/nx-dev/public/images/champions/fabian-gosebrink.webp new file mode 100644 index 0000000000..2cb4e33e91 Binary files /dev/null and b/nx-dev/nx-dev/public/images/champions/fabian-gosebrink.webp differ diff --git a/nx-dev/nx-dev/public/images/champions/josh-vanallen.webp b/nx-dev/nx-dev/public/images/champions/josh-vanallen.webp new file mode 100644 index 0000000000..2a07457768 Binary files /dev/null and b/nx-dev/nx-dev/public/images/champions/josh-vanallen.webp differ diff --git a/nx-dev/nx-dev/public/images/champions/shai-reznik.webp b/nx-dev/nx-dev/public/images/champions/shai-reznik.webp deleted file mode 100644 index f0d7b047b3..0000000000 Binary files a/nx-dev/nx-dev/public/images/champions/shai-reznik.webp and /dev/null differ diff --git a/nx-dev/nx-dev/public/images/champions/thomas-laforge.webp b/nx-dev/nx-dev/public/images/champions/thomas-laforge.webp new file mode 100644 index 0000000000..17365fb83b Binary files /dev/null and b/nx-dev/nx-dev/public/images/champions/thomas-laforge.webp differ diff --git a/nx-dev/ui-common/src/lib/champion-card.tsx b/nx-dev/ui-common/src/lib/champion-card.tsx index 69e49d1318..be77f14c28 100644 --- a/nx-dev/ui-common/src/lib/champion-card.tsx +++ b/nx-dev/ui-common/src/lib/champion-card.tsx @@ -15,19 +15,12 @@ export interface Champion { export function ChampionCard({ data }: { data: Champion }): JSX.Element { return ( -
-
-

{data.expertise}

-
- {' '} - {data.contact[0].label} -
-
+
{data.name}
@@ -42,6 +35,11 @@ export function ChampionCard({ data }: { data: Champion }): JSX.Element {
+

{data.expertise}

+
+ {' '} + {data.contact[0].label} +
); }