import { Box, Container, Flex, Grid, Text } from 'theme-ui'
import Meta from '@hackclub/meta'
import Head from 'next/head'
import Nav from '../components/nav'
import Footer from '../components/footer'
import Bio from '../components/bio'
import BoardBox from '../components/boardbio'
import ForceTheme from '../components/force-theme'
import { fetchTeam } from './api/team'
import Link from 'next/link'
const CommunityTeamBox = ({ title, children }) => {
return (
{title}
{children}
)
}
export default function Team({ team }) {
// Spacing between major team section boxes
const BOX_SPACING = 5
return (
<>
{/* @ts-expect-error -- TODO: fix this */}
By the students,
for the students.
We believe in a world where every young person is empowered to be
the change they want to see around them. At Hack Club, we’re
working hard to make it reality.
Board & Advisors
Board Member>}
subrole="Co-Founder, GitHub"
href="https://github.com/mojombo"
/>
Board Member>}
subrole="Co-Founder and CEO, AMP"
href="https://github.com/sqs"
/>
Board Advisor>}
href="https://en.wikipedia.org/wiki/John_Abele"
subrole="Founder, Boston Scientific"
/>
Hacker Resources Team
{team.current?.filter(member => member.department === 'HQ' && member.staff).length > 0 && (
<>
Staff:
{team.current
?.filter(member => member.department === 'HQ' && member.staff)
.map(member => (
))}
>
)}
{team.current?.filter(member => member.department === 'HQ' && member.gapyear).length > 0 && (
<>
2025-2026 Gap Years:
{team.current
?.filter(member => member.department === 'HQ' && member.gapyear)
.map(member => (
))}
>
)}
{team.current?.filter(member => member.department === 'HQ' && !member.gapyear && !member.staff).length > 0 && (
<>
Teen Contractors:
{team.current
?.filter(member => member.department === 'HQ' && !member.gapyear && !member.staff)
.map(member => (
))}
>
)}
HCB Team
{team.current?.filter(member => member.department === 'HCB' && member.staff).length > 0 && (
<>
Staff:
{team.current
?.filter(member => member.department === 'HCB' && member.staff)
.map(member => (
))}
>
)}
{team.current?.filter(member => member.department === 'HCB' && !member.staff).length > 0 && (
<>
Contributors:
{team.current
?.filter(member => member.department === 'HCB' && !member.staff)
.map(member => (
))}
>
)}
Community Team
{team.current
?.filter(member => member.department === 'Moderation')
.map(member => (
))}
{team.current
?.filter(member => member.department === 'Welcoming')
.map(member => (
))}
{team.current
?.filter(member => member.department === 'Events')
.map(member => (
))}
{team.current
?.filter(member => member.department === 'Newspaper')
.map(member => (
))}
Acknowledgements
Thank you to everyone who helped shape Hack Club into what it is today...
>
)
}
export const getServerSideProps = async () => {
try {
const current = await fetchTeam()
return { props: { team: { current } } }
} catch (e) {
return { props: { team: {} } }
}
}