Merge branch 'main' into slack

This commit is contained in:
Toby Brown 2024-01-14 16:45:12 +00:00 committed by GitHub
commit 7af239a766
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 425 additions and 808 deletions

View file

@ -163,8 +163,8 @@ export default function PersonalInfoForm({
</Field>
<Field
name="accommodations"
label="Accessability needs"
description="Please specify any accommodations or accessability needs you have so we can support you during onboarding and while using HCB"
label="Accessibility needs"
description="Please specify any accommodations or accessibility needs you have so we can support you during onboarding and while using HCB"
requiredFields={requiredFields}
>
<Input

View file

@ -8,8 +8,9 @@ export default function GitHub({
key,
text,
time,
url,
message,
opacity,
url,
...props
}) {
return (
@ -17,7 +18,7 @@ export default function GitHub({
variant="pill"
bg="snow"
as="a"
href={url}
href={url || "https://github.com/hackclub"}
target="_blank"
rel="noopener"
sx={{
@ -33,7 +34,8 @@ export default function GitHub({
gap: 2,
height: '2rem',
width: ['fit-content', null, null, '100%'],
maxWidth: '30rem'
maxWidth: '30rem',
opacity: opacity
}}
{...props}
>
@ -81,4 +83,4 @@ export default function GitHub({
</Text>
</Badge>
)
}
}

View file

@ -146,10 +146,10 @@ const Navigation = props => (
<Link>Hackathons</Link>
</NextLink>
<NextLink href="/slack" passHref>
<Link>Slack</Link>
<Link>Community</Link>
</NextLink>
<Link href="https://scrapbook.hackclub.com/">Scrapbook</Link>
<Link href="https://jams.hackclub.com/">Jams</Link>
<Link href="https://jams.hackclub.com/">Workshops</Link>
<NextLink href="/onboard" passHref>
<Link>OnBoard</Link>
</NextLink>

View file

@ -13,16 +13,16 @@ West Hollywood, CA 90069
<Grid columns={[2, 3]} gap={3} sx={{ p: { m: 0, lineHeight: 0 }, img: { borderRadius: 'default' } }}>
![Students coding together](https://lh3.googleusercontent.com/mg1meK6t0YyF_a477Jmi191Qh2mpdKN0sOR3KO5VUjU41gXfZ3lT6274ivItTgXlIQad1c7gXipTqZaNDAUeRNUvyQoYPkQDuuD9ZtD_2OzK_W88Ka0SUwbldH1U_Ep5CROMPUyER4yY2yV3AcToS-IcrSPpdn38f5XfxDbP31iqD4R58BDfnAvLV1lkQCIunjzPcc_PLwpczBw44vYPjr6Z5A6_1pyqI9b-D30b_hqwD7vGF78nXf2PZNpbovyzSnHwRReOb9niSkzNz7dnGA3KTKJcoxS5tlpRVXba9pHvJCMcQp9st9KIBi8X9bl9xIfolKXBknOTaaddsdu-ERgIMq3_WO74Thh-J3M9qgExBPcT6YFkhroGdULBGfFn1hMPxMMC_EC3eIfaRLrO8KvitpSt8ViIUVqqQFaanGHDqzihoNMTtBh7-JldDao5-L8-9ZKfIyqhz9OyPG6ywTbQipQnto3zUFt-cK3RfCaaDBvTIMnKiKVbG6u1FmL8LLNdvWtptNECUXBeekAIMPg0Z8Px6JnWwUn8wJeRnKCJCe63cYZheSteMfyICG3aQRs7vMjnaCoXhTK425JKkmCL8SHwKbqsVY2954hxKzm8knc4SkotzQ042I6sH6kXciNhMwI5soUDO7XPf6N37vWuVn2WFM_Sh1T-JHMwn803_Jd1iujvvUiM0qPoQhQ8lnyI=w640-h400-k-ft)
![Group photo at Assemble, our Summer 2022 hackathon](https://cloud-n8nzmcqp1-hack-club-bot.vercel.app/0assemble-group-min.png)
![Wide-angle photo of hackathon](https://lh3.googleusercontent.com/d1ySE69DZY3t6B5WOMrMdpDz9-1aVVLMEMwNFOt46AfARQg4ViT9ShYG5a7ZJ5kefAM--WThs2z2hjVbssEhnbpsi-QbF_E4bDtBHI12tz7OSgR0LEyvJP2oTxXnrXez6Hx87k4JexmlpEo9uFzRGlq2bbdOovChlxVKq2J-t9_vOBvLE2P-DSvVAgMNV37quk4OGiuxj3ItQ9Ed0KRvnHswuXZnkf5qiS6ed7AvFqvInJRe1QFPR8pcXTn3DzYjNRLH6okIABaIJJ9wXx_JekcnUmJRpCXENe3Fs81xfz4gL6WSfUML4SPCp3PYLTDjLpKWth9KzsFypDgCk-CH1FPOEUuN_DlnDTN74AopwdRtNca6LgoGxuE3VnLrCDgVrnqCJCiu1cXhyQfLZtb-QBLJjnQ9IXOZExUir8f0W4mqirwu8yeJJP-LqQ_53o8GLfVK8LS1E2R0BwFPYViI4LHI52cgWBj05Trusv0q79IpvBOUQeSl3dQPjLZuxllJvScygVVDjpcP-_eVObAQUOfQY9Vq6bG7ujvXrz53m9SgfMqtbzVuZ4MQXxlAs75D94mIl6BLNoMPMuPVvhPRGxYr7UeDmcrk8yjnh9gP8ZP-4GgfCQl3KqBG5v3lD6nNTpXpWdF8E75BRvvHOEHKYUpkK1RYLyiwXy8QH9PHtn3IUYHx1Q1EYJHJ9oxgz9_e5S1u=w640-h400-k-ft)
![Student leading a workshop at Assemble](https://cloud-n8nzmcqp1-hack-club-bot.vercel.app/1assemble2-min.jpg)
![Team of students building a robot](https://lh3.googleusercontent.com/KToyIRihElX97vwiHrUEDm2ZDurUy973L6RiXGRGrQD0cQgf3nCzbyC5h3_zfM3w1JadgxGjQiL7vVVkg_aHkU-0F8TGauxDSRblziJIHOzQY2pWpQoe4RIm-HqXG41xyamtGA4X6hLarACd2L8nu2m_AaWorKYUQfabk57kF6WXGDXO8nVdJcIh59zF1lPvLWuegnBHA__CJbyT-6Kl-r7ZL_rtXGFXgzDL6wBYvQPgBc4CGlFYy8p80nZosHkbr9z14BWOonjpD4_1XDf7y9NYbXWZgchObt8PIqY4eQxcfYQLVQqmMCUT81j8IpnVJTexNHkBH83W-rKShUkU_3U5SvEkb2-fFR-mtUB0ySUO70eMB4r9QkT54bVulB-HzwD7TTjiHZzB57LUO1l1k_sk1QONj7fTV4BT2mlpFwZpmQwNHtSxo5WA6C5WJgPrsbCwB7cW9j-pj9NrbeFwW4d9dGnwhXTjPYJfXlpLbrq-KmakHkHd_i0tXIpmHK5WX3voGxF_7IG02sne1-dU6vQ0sDeh4JKC6J7JwkdQP_x4iR2Yn6vPhsi50pShTENsxMSTkbC1gTuCwWpnuyjA_qGVeLlnq_8MKyLFGDU6HdH6YkR645LDnstsIUEJYl1Te6ijiUmT_B7saD25efXzzKwu4XCW5akA2o87mHxO9vilEZsChE-Y_9hueyHyHAeB81QE=w640-h400-k-ft)
![Students wih hands raised at Flagship](https://cloud-n8nzmcqp1-hack-club-bot.vercel.app/2flagship4-min.jpg)
![Students at Flagship](https://lh3.googleusercontent.com/rUbEAs_fHylS_-vvBsRzAXspACZ_HLgCl5lpoTXdnm9NXTjk97Tazb8CJcSqe0cERzjGbhaUEw4zop2F1vQVZY1l_BWBYrl4F5pJVRWs18Rm_h94uYmkgN-afi_B24RD5cPd3eWAjS0tpi83aL3PKSO0NXN_01EGxk6TXe8OdmYqYTTY14ORAE8Dkmt55T1j6S-j6ugZq8Ez0ky5QNSaaoHEyXO4DOlRLr1S5_V_7IUiGZfkT4-VyML3P_TSxKCQrWGsrY8jLCj_MZTnRvg8sxLvz9wDiSBb_XzYpWQVet-bMWyXeoS8aVriMyjBlWsMZTuCb8jqohDVrSMnv0pF0dwn_OmFI7SbsvXP5OOqqUa1yLhEdAfEiRy6wegg1t-xrhqtcUVA97CKdj3SiPD_fHkCWl8i1lAJfOe71zV1QZuW0ez8FiUy43U5hsL_hsBgP2L-NGZYBuXOq1MUtqpaWsJdlIp6TjxzTD_8X2uUK4MxJG8Sa_Sqg3logr4b3rnpfckyQghHraGSYh31UD1ojkil9931raDJiEw0bH3F_xjVVY9drzOItHOrf_Fr7lBc4zQWjW2h7zzYj41w5TEh_1wQUpQbks12eHNYNa5COV9Iju3pa_xH_AKfQmUbu-bFxtggrcOrHp9l5Woy8ChEqaDP0N3xiWc1_pSJAOrEPjzGzSZxyslHiF2IwxAVeA-0LGbm=w640-h400-k-ft)
![Group photo at Outernet, our Summer 2023 hackathon](https://cloud-n8nzmcqp1-hack-club-bot.vercel.app/3outernet-group-min.jpg)
![Students having a conversation at Flagship](https://lh3.googleusercontent.com/6hI78Ex8V_Akb9mF5rtV8eZih_XX5B7frfRIqTyXqQ_cAylFG8VPc530WAV4_4axx__mtlcl7k95q29ahaZ8xXj1fiOjtUq7ge3fJr_9LpLpXucELZJ0jI-5Tl4b3o775WIfkgrM5wu92kKs2Bx5y29WpTAlIpCtOwTmgW5FnHayjkgAfccA0mKUZpW4hX2uZ776pRu9m16SMxqVijTbLZGnN0v5no2s2e-REUiRX9zmoQND6wzJixgvQ-uPyNgyQMMMryML8GyMC4BzK9bZpdd7mFbHbMWRURilZa00kUK1C7od0PpOCok7iysGmMdNm48IOHPM6MWPA5jo_12xdyeDQLLrNk9wQHofl42jELru9mAgn90JnTdhNCCiZC_QiMSCA_IbIQNo0TW0iCd1mNgJ3JH-z02jTtjSFI1waekplKlWMN4FYKARHueXEhpt2hQZoZn4hLszgo19JxLB_BG7zsQflz7W2tECghgwqW2EHpAPsY-hbGQor_6NCrSoX9Q4fw6ivMHLwfdhukIXV-AN-SWRImvLNNXkU5Ho5HKt2GvPYl9EOx7SmA0W-2X4tikvGaNXa6JOuM9lzffJlKzMi4dN86tvoQ4gTO-N_FHyUvmTtYOhG2yvyhYg1qUsEDt4J1yCr1GYcKx2Cn6nqYUDNSoAef6fiYfcYkOxCelevlEL17i3sbTaoUN10DkJL-Sr=w640-h400-k-ft)
![Students coding at Outernet](https://cloud-n8nzmcqp1-hack-club-bot.vercel.app/4outernet1-min.jpg)
![Students wih hands raised at Flagship](https://lh3.googleusercontent.com/9ZKSYYkSYDmDxOWp_pBUw7W_FXRFwujAW6actP7eHHTJS0JsU-EGjYc2FO-zwpSXDKzkOC4GAzVJW7ljJpoZHesppiUyKMZnJYTeQrq_dEHCSrZ-61VsWoMTJ1uv6hdUWlKflmHcclseo5qWylLzu_NYjr3wpKmXPdDkWtOJeBmBBaY64dtNbF6qkr1lY3bwkGJ3nxQOAFlwDBPaUWMbovAL7S67-lvX_p_LSwkEIGwFdJf38zdGqihDcVtUmVUkN-Z0dOAvIZ5quQ7bRTWbaiAdkBeLRSUnU8eKoDb2Ep_v-WcCFayc8cxPsCj8rnpTRgglKVBl0oQgBHqt_MEC2SRKw3FejX-lo7O-NaN_diSEO__hlYHnGum9Ee_M0UXMikIR9gBp6WfDdtVAqRHgVxCiGffL3z1gtjwx2Lchv99LqgnSRA1mOylEWUl1uZNbuDnu3K38JMN_hM-7kH1d-vQak8T8ngk4_bJGoUNzeyeUUvuGyToeyvkKS-VYuX9VQRu8YDgzbe5YR2D_k2ID9mz2RReDKUpy01GlKZgpLiU7tBBl59mlGDbemlkMpNiJ3VkhDmqjFrgZ3gh8rQLcv3I-GHmch7J8firucCjtIL8eqXSDd5IUIy7zajsadS5MqJHqT0PJQmy3mxTBzzZoDhZ92aj4B0hGy8J1klXm7SQmnkC7aulQjLm3mxca9CA1VBA7=w640-h400-k-ft)
![Students demonstrating a flame thrower at Outernet](https://cloud-ciha944cc-hack-club-bot.vercel.app/0outernet.png)
</Grid>

View file

@ -15,7 +15,7 @@ export default function Secret({ reveal, ...props }) {
right: 5,
bottom: 0,
transform: `${reveal ? 'translateY(0)' : 'translateY(100%)'}`,
transition: '1s',
transition: '2s',
zIndex: 3
}}
{...props}

View file

@ -17,7 +17,7 @@ import { getCookie, hasCookie } from 'cookies-next'
const JoinForm = ({ sx = {} }) => {
const router = useRouter()
const { status, formProps, useField } = useForm('/api/join/', null, {
clearOnSubmit: 5000,
clearOnSubmit: 60000,
method: 'POST',
initData: hasCookie('continent')
? {
@ -140,17 +140,37 @@ const JoinForm = ({ sx = {} }) => {
)}
{!isAdult && (
<Submit
status={status}
mt={'0px!important'}
labels={{
default: useWaitlist ? 'Join Waitlist' : 'Get Invite',
error: 'Something went wrong',
success: useWaitlist
? "We'll be in touch soon!"
: 'Email coming soon!'
}}
/>
<Box>
<Submit
status={status}
mt={'0px!important'}
labels={{
default: useWaitlist ? 'Join Waitlist' : 'Get Invite',
error: 'Something went wrong',
success: useWaitlist
? "We'll be in touch soon!"
: 'Check your email for invite!'
}}
disabled={status === 'loading' || status === 'success'}
/>
{status === 'success' && (
<Text
variant="caption"
color="secondary"
as="div"
sx={{
maxWidth: '600px',
textAlign: 'center',
mt: 3
}}
>
Check your spam folder too! Not there?{' '}
<Link href="mailto:slack@hackclub.com" sx={{ ml: 1 }}>
Send us an email
</Link>
</Text>
)}
</Box>
)}
</form>
</Card>

View file

@ -52,9 +52,17 @@ const useForm = (
if (r.ok) {
setStatus('success')
if (callback) callback(r)
setTimeout(() => setStatus('default'), 3500)
if (options.clearOnSubmit)
setTimeout(() => setData({}), options.clearOnSubmit)
if (options.clearOnSubmit) {
setTimeout(() => {
setData({});
setStatus('default');
}, options.clearOnSubmit);
} else {
setTimeout(() => {
setData({});
setStatus('default')
}, 3500)
}
} else {
setStatus('error')
console.error(response)

View file

@ -12,4 +12,11 @@ export function middleware(request) {
response.cookies.set('continent', continent || '')
return response
}
if (request.nextUrl.pathname === '/donate/') {
return NextResponse.redirect('https://hackclub.com/philanthropy/');
}
return NextResponse.next();
}

View file

@ -160,12 +160,12 @@ const Blinking = styled(Heading)`
&:after {
left: 2px;
text-shadow: -2px 0 ${theme.colors.red};
animation: ${animation1} 2s infinite linear alternate-reverse;
animation: ${animation1} 2s infinite steps(2, jump-end) alternate-reverse;
}
&:before {
left: -2px;
text-shadow: -2px 0 ${theme.colors.cyan};
animation: ${animation2} 4s infinite linear alternate-reverse;
animation: ${animation2} 4s infinite steps(2, jump-end) alternate-reverse;
}
`

View file

@ -14,7 +14,8 @@ export default async function handler(req, res) {
body: JSON.stringify({
email: data.userEmail,
name: data.eventName,
transparent: data.transparent
transparent: data.transparent,
country: data.eventCountryCode,
}),
method: 'POST',
headers: {

View file

@ -453,7 +453,7 @@ const Page = () => (
<>
We build tools, such as{' '}
<a href="https://sprig.hackclub.com">Sprig</a>, that your
members can use to make projects with in meetings! Built more of
members can use to make projects with in meetings! Build more of
them with us in our <Link href="/slack">Slack community</Link>.
</>
}
@ -466,7 +466,7 @@ const Page = () => (
<>
Come prepared to every meeting with over 100{' '}
<a href="https://workshops.hackclub.com">workshops</a> (3 years
worth!) and 18 <a href="https://jams.hackclub.com">Jams</a>{' '}
worth!) and 19 <a href="https://jams.hackclub.com">Jams</a>{' '}
that guide your club members through making fun, creative
projects.
</>

View file

@ -45,7 +45,7 @@ The below summary was calculated from HQ's export from [HCB](https://hackclub.co
- $5,000 - Think Together
Thank you to all the new donors to Hack Club this month. You make Hack Club possible. We rely on donations to keep Hack Club free for students. [Donate here.](https://hackclub.com/donate/)
Thank you to all the new donors to Hack Club this month. You make Hack Club possible. We rely on donations to keep Hack Club free for students. [Donate here.](https://hackclub.com/philanthropy/)
Please note that [Elon Musk also donated $500K this month](https://twitter.com/hackclub/status/1263153557945159680), but the gift didn't hit our account until June 3rd, so it will be included in the June finance update.

View file

@ -1,547 +0,0 @@
import React, { useEffect } from 'react'
import styled from '@emotion/styled'
import {
Box,
Button,
Container,
Flex,
Heading,
Card,
Grid,
Link as A,
Text,
Avatar
} from 'theme-ui'
import Photo from '../components/photo'
import Image from 'next/image'
import Head from 'next/head'
import Meta from '@hackclub/meta'
import ForceTheme from '../components/force-theme'
import Nav from '../components/nav'
import Footer from '../components/footer'
import SprigForm from '../components/donate/sprigForm'
import SprigMeta from '../components/donate/sprigMeta'
import Sponsors from '../components/donate/sponsors'
import donors from '../components/donate/donors.json'
import Marquee from 'react-marquee-slider'
import ExecuteBig from '../public/donate/codedaydc_hack.jpg'
import HackCamp from '../public/donate/sf.jpg'
import HackerGames from '../public/donate/0img_20210830_161125.jpg'
import LaptopDonations from '../public/donate/0screenshot_2021-10-03_at_4.20.30_pm.png'
import Kerala from '../public/donate/0img-20210918-wa0091.jpg'
import HackPenn from '../public/donate/0color_pop.jpg'
import ElonAMA from '../public/donate/elon.jpg'
import SpaceX from '../public/donate/0spacex_and_hack_club.jpg'
import Flagship from '../public/donate/flagship.png'
import MAHacks from '../public/donate/0screenshot_2021-10-03_at_4.07.51_pm.png'
import HackCamp2020 from '../public/donate/0img_6447.jpg'
import InnovationCircuit from '../public/donate/0screenshot_2021-10-03_at_3.45.54_pm.png'
import WindyCity from '../public/donate/6screenshot_2021-10-03_at_3.29.29_pm.png'
import ZephyrFun from '../public/donate/0screenshot_2021-10-03_at_3.59.34_pm.png'
import GoldenTrain from '../public/home/golden-train.png'
const Header = styled(Box)`
background: url('/pattern.svg');
`
const Sheet = styled(Card)`
position: relative;
overflow: hidden;
border-radius: 8px;
width: 100%;
color: white;
`
Sheet.defaultProps = {
sx: {
bg: 'rgba(255, 255, 255, 0.875)',
p: [3, 4],
color: 'black',
width: 1,
mb: 4
}
}
const Row = styled(Box)`
text-align: left;
@media screen and (min-width: 48em) {
display: grid;
grid-gap: 18px;
grid-template-columns: ${({ reverse }) =>
reverse ? '3fr 2fr' : '2fr 3fr'};
}
`
const Quote = styled(Sheet)`
position: relative;
&:before {
content: '“';
line-height: 1;
font-size: 48px;
padding-left: 6px;
position: absolute;
left: 0;
top: 0;
color: #fff;
opacity: 0.5;
padding: 18px;
}
`
Sheet.defaultProps = {
sx: {
maxWidth: '52rem',
fontSize: 3,
p: [4, 5],
color: 'white'
}
}
const FirstQuote = styled(Quote)`
background-image: radial-gradient(
at left top,
rgb(45, 228, 207),
rgb(41, 206, 104),
rgb(53, 181, 36)
);
`
const SecondQuote = styled(Quote)`
background-image: radial-gradient(
at left bottom,
rgb(45, 158, 228),
rgb(45, 66, 228),
rgb(115, 45, 228)
);
`
const subhline = { fontSize: [3, 4], style: { lineHeight: '1.375' } }
const contentContainer = {
maxWidth: 72,
width: 1,
p: 3,
color: 'black',
style: { position: 'relative' }
}
const content = { maxWidth: 48, mx: 0, color: 'black' }
const title = 'Donate'
const desc =
'Contribute today to empower the next generation and help start a coding club at every high school.'
const DonorGrid = styled(Box)`
display: grid;
grid-gap: 6px;
grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
align-items: center;
p,
a {
width: 100%;
}
@media screen and (min-width: 48em) {
grid-gap: 18px;
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}
`
const DonorCardBase = styled(Sheet)`
display: flex;
justify-content: center;
align-items: center;
@media screen and (max-width: 32em) {
border-radius: 0;
box-shadow: none;
}
`
const DonorCard = ({ name, link = false }) => (
<DonorCardBase bg="white" p="18px!important" mb={0}>
<Text color="black" sx={{ textAlign: 'center', fontSize: '16px' }}>
{name}
</Text>
</DonorCardBase>
)
const PhotoRow = ({ photos }) => (
<Box sx={{ height: '200px', overflow: 'hidden' }}>
<Box sx={{ display: ['block', 'block', 'block', 'block', 'none'] }}>
<Marquee velocity={12}>
{photos.map((photo, index) => (
<Image
placeholder="blur"
src={photo}
objectFit="cover"
className="next-image"
height="200px"
width="300px"
alt="Hack Club students"
key={'image-' + index}
/>
))}
</Marquee>
</Box>
<Box sx={{ display: ['none', 'none', 'none', 'none', 'block'] }}>
<Marquee velocity={12}>
{photos.map((photo, index) => (
<Image
placeholder="blur"
src={photo}
objectFit="cover"
className="next-image"
height="200px"
width="600px"
key={'image-' + index}
alt="Hack Club students"
/>
))}
</Marquee>
</Box>
</Box>
)
const DonorListing = ({ name, url }) => {
if (url) {
return (
<A target="_blank" href={url} color="black" underline>
<DonorCard name={name} link />
</A>
)
} else {
return <DonorCard name={name} />
}
}
export default function Donate({ sprig }) {
useEffect(() => {
if (sprig) {
window.document.getElementById('sprig-donation').scrollIntoView()
}
}, [sprig])
return (
<Box>
<Meta
as={Head}
title={title}
description={desc}
image="https://cloud-cz9a6kt0a-hack-club-bot.vercel.app/0social-photo_2.jpg"
/>
<Nav color="muted" />
<ForceTheme theme="light" />
<Header sx={{ position: 'relative' }}>
<Box
sx={{
background: 'rgba(0,0,0, 0.8)',
zIndex: 1,
position: 'relative',
color: 'white!important',
height: '600px'
}}
pt={[5, 5, '110px']}
>
<Box
sx={{
maxWidth: '64rem',
mx: 'auto',
zIndex: 1,
position: 'relative'
}}
align="center"
py={2}
px={[1, 3]}
>
<Container sx={{ maxWidth: '48rem' }}>
<Heading
sx={{
fontSize: ['42px', '54px', '72px'],
my: 2,
color: 'white'
}}
>
We rely on people like you to bring coding to the world.
</Heading>
<Box
sx={{
fontSize: ['22px', '23px', '28px'],
maxWidth: '40rem',
color: 'white'
}}
>
Contribute today to empower the next generation. Help start a
Hack Club at every high school.
</Box>
<Button
variant="ctaLg"
my={3}
sx={{ width: ['100%', 'auto'] }}
as="a"
href="https://hcb.hackclub.com/donations/start/hq"
>
Donate
<Text sx={{ display: ['none', 'inline-block'], ml: 2 }}>
to Hack Club
</Text>
</Button>
<Text
sx={{ mt: 1, display: 'block', opacity: 0.8 }}
fontSize={2}
color="white"
>
Your contribution is tax-deductible.
<br />
Hack Club is a 501(c)(3) nonprofit with the EIN 81-2908499.
</Text>
</Container>
</Box>
</Box>
<Box
sx={{
position: 'absolute',
top: 0,
zIndex: 0,
width: '100%',
display: 'block'
}}
>
<PhotoRow
photos={[
ExecuteBig,
HackCamp,
HackerGames,
LaptopDonations,
Kerala
]}
/>
<PhotoRow
photos={[HackPenn, ElonAMA, SpaceX, GoldenTrain, Flagship]}
/>
<PhotoRow
photos={[
HackCamp2020,
InnovationCircuit,
WindyCity,
MAHacks,
ZephyrFun
]}
/>
</Box>
</Header>
<Container mb={5} id="sprig-donation"></Container>
{sprig && <SprigMeta />}
<Container variant="copy">
<Box pt={[0, 3]} mb={[2, 4]}>
<Heading
sx={{
textAlign: 'center',
fontSize: 4,
textTransform: 'uppercase',
fontWeight: [400, 800],
mb: [0, 0]
}}
>
Now introducing...
</Heading>
<Heading
mt={2}
sx={{
textAlign: 'center',
textTransform: 'uppercase',
fontSize: [5, 7],
lineHeight: [0.8, 1],
mb: 0,
marginBlockEnd: 0,
marginBlockStart: 0,
my: [2, 0]
}}
>
Sprig Consoles
</Heading>
<Box
sx={{
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-around'
}}
>
<Heading
variant="subtitle"
pb={[3, 2, 2]}
sx={{
textAlign: 'center',
color: 'blue',
textTransform: 'uppercase',
mt: [2, 0],
fontWeight: 800
}}
>
Inspiring teenagers to both make and code.
</Heading>
<Text sx={{ textAlign: 'center', fontSize: 2 }}>
A donation to the Sprig fund will send a teenager a Hack Club
Sprig Console Kit: containing a custom PCB, buttons, a screen, a
microprocessor, and more (all open source, of course), so that
they can build and then play their own games.
</Text>
</Box>
</Box>
<Grid
columns={[null, '2fr 3fr']}
gap={[2, 3, 4]}
pt={[0, 0]}
mb={[2, 4]}
>
<Box
as="video"
style={{
width: '100%',
borderRadius: '1em',
height: '100%',
objectFit: 'cover'
}}
autoPlay
muted
loop
>
<source
src="https://cloud-5r3ak1pm6-hack-club-bot.vercel.app/0image_from_ios__online-video-cutter.com__1_.mp4"
type="video/mp4"
/>
</Box>
<Photo
src="https://cloud-kcloydjv0-hack-club-bot.vercel.app/0image_from_ios__1_.jpg"
alt="Sprig PCB"
width={3000}
height={2550}
showAlt
sx={{ height: '100%' }}
/>
</Grid>
<Sheet
sx={{
color: 'white',
bg: 'primary',
display: 'flex',
flexDirection: 'row',
flexWrap: ['wrap', 'nowrap'],
justifyContent: 'space-between',
alignItems: 'center',
padding: 4
}}
>
<SprigForm />
</Sheet>
</Container>
<Container variant="copy" mt={5}>
<FirstQuote>
<Heading my={3} sx={{ fontWeight: 'normal', fontSize: '27px' }}>
When I took CS classes in high school, I always found myself
disengaged and feeling like they were just another class. After
getting involved in Hack Club, a career in computer science changed
from a possibility to reality.
</Heading>
<Heading
fontSize={[4, 5]}
sx={{ fontWeight: 'bold', fontSize: ['27px', '36px'] }}
as="h1"
>
Because of Hack Club, I started organizing hackathons with hundreds
of participants, interning for companies including Intuit, and most
importantly, fell in love with building things with code.
</Heading>
<Flex align="center" mt={[3, 4]}>
<Avatar
src="/hackers/selynna.jpg"
sx={{ height: '48px', width: '48px' }}
mr={3}
st
/>
<Box align="left" fontSize={3}>
<Heading>Selynna Sun</Heading>
<Text fontSize={2} color="green.1">
Sophomore & CS Major @ Cal Poly SLO
</Text>
</Box>
</Flex>
</FirstQuote>
<Container maxWidth={'48rem'} sx={{ maxWidth: '48rem' }} py={[3, 4]}>
<Heading as="h1" sx={{ fontSize: ['36px', '48px'] }}>
Contribute beyond just dollars.
</Heading>
<Box mt={2} mb={2} sx={{ fontSize: '27px' }}>
We accept donations of time, technical or hard science fiction
books, stocks/other securities, and cryptocurrency.
</Box>
<Box mb={3} sx={{ fontSize: '27px' }}>
Please get in touch at{' '}
<A sx={{ color: 'blue' }} href="mailto:hcb@hackclub.com">
hcb@hackclub.com
</A>{' '}
if youre interested in making a contribution with cryptocurrency or
have questions.
</Box>
</Container>
<SecondQuote>
<Heading
fontSize={[4, 5]}
sx={{ fontWeight: 'bold', fontSize: ['27px', '36px'] }}
as="h1"
>
Hack Club has inspired me to grow and become the person I am today.
Being part of the community allows me to meet countless like-minded
individuals who challenge me to become a better person, and a better
hacker.
</Heading>
<Flex align="center" mt={[3, 4]}>
<Avatar
src="/hackers/rashid.jpg"
sx={{ height: '48px', width: '48px' }}
mr={3}
st
/>
<Box align="left" fontSize={3}>
<Heading>Rashid Al-Abri</Heading>
<Text fontSize={2} color="green.1">
Club Leader from Oman in Victoria, BC, Canada
</Text>
</Box>
</Flex>
</SecondQuote>{' '}
</Container>
<Flex justify="center" bg="snow" color="black">
<Container width={1} py={[4, 5]} sx={{ textAlign: ['left', 'center'] }}>
<Heading
px={3}
mt={[3, 4]}
mb={[3, 4]}
mx="auto"
as="h1"
sx={{ fontSize: [5, 6] }}
>
A few of our amazing donors.
</Heading>
<DonorGrid mt={4} mb={4}>
{Object.keys(donors).map(name => (
<DonorListing key={name} name={name} url={donors[name]} />
))}
</DonorGrid>
<Heading px={3} sx={{ fontWeight: 'normal', mt: 2 }}>
and many more
</Heading>
</Container>
</Flex>
<Container {...contentContainer}>
<Row my={5} {...content}>
<Heading {...subhline} mb={4} sx={{ fontSize: [4, 5] }}>
These fabulous companies donate their products to us.
</Heading>
<Sponsors />
</Row>
</Container>
<Footer />
</Box>
)
}
export async function getServerSideProps(context) {
return {
props: {
sprig: Object.keys(context.query).includes('gl')
}
}
}

View file

@ -1,7 +1,17 @@
import {Badge, Box, Button, Card, Flex, Grid, Heading, Link, Text} from 'theme-ui'
import React, {useEffect, useRef, useState} from 'react'
import {
Badge,
Box,
Button,
Card,
Flex,
Grid,
Heading,
Link,
Text
} from 'theme-ui'
import React, { useEffect, useRef, useState } from 'react'
import Head from 'next/head'
import {useRouter} from 'next/router'
import { useRouter } from 'next/router'
import Meta from '@hackclub/meta'
import Nav from '../components/nav'
import BGImg from '../components/background-image'
@ -120,6 +130,24 @@ function Page({
}
}, [count, images.length])
// Spotlight effect
const spotlightRef = useRef()
useEffect(() => {
const handler = event => {
var rect = document.getElementById('spotlight').getBoundingClientRect()
var x = event.clientX - rect.left //x position within the element.
var y = event.clientY - rect.top //y position within the element.
spotlightRef.current.style.background = `radial-gradient(
circle at ${x}px ${y}px,
rgba(132, 146, 166, 0) 10px,
rgba(249, 250, 252, 0.9) 80px
)`
}
window.addEventListener('mousemove', handler)
return () => window.removeEventListener('mousemove', handler)
}, [])
return (
<>
<Meta
@ -148,15 +176,15 @@ function Page({
reveal={reveal}
onMouseEnter={() => {
setHover(true)
console.log(hover)
}}
onMouseOut={() => {
setHover(false)
setReveal(false)
}}
/>
<Konami action={easterEgg}>
{"Hey, I'm an Easter Egg! Look at me!"}
</Konami>
<Box
as="header"
sx={{
@ -228,7 +256,6 @@ function Page({
>
<Text
onClick={() => {
setHover(false)
!reveal ? setReveal(true) : setReveal(false)
}}
sx={{
@ -586,21 +613,38 @@ function Page({
</Box>
<Carousel cards={carouselCards} />
<Box
id="spotlight"
as="section"
sx={{
background: 'snow',
backgroundImage: `url('https://icons.hackclub.com/api/icons/0xF4F7FB/glyph:rep.svg')`,
backgroundImage: `
linear-gradient(rgba(249, 250, 252, 0.7), rgba(249, 250, 252, 0.7)),
url('https://icons.hackclub.com/api/icons/0x8492a6/glyph:rep.svg')
`,
backgroundSize: '40px 40px',
backgroundRepeat: 'repeat',
backgroundPosition: '10% 10%'
position: 'relative'
}}
>
<Box
ref={spotlightRef}
sx={{
position: 'absolute',
zIndex: 2,
top: 0,
left: 0,
right: 0,
bottom: 0,
bg: 'snow',
pointerEvents: 'none'
}}
/>
<Box
sx={{
position: 'relative',
width: '90vw',
maxWidth: 'layout',
margin: 'auto'
margin: 'auto',
zIndex: 5
}}
py={[4, 4, 5]}
>
@ -734,6 +778,7 @@ function Page({
url={data.url}
message={data.message}
key={key}
opacity={1 / (key/2 + 1)}
/>
)
})}
@ -1068,78 +1113,79 @@ function Page({
</Grid>
</Box>
</Box>
</Box>
{new URL(asPath, 'http://example.com').searchParams.get('gen') ===
'z' && (
<>
<Box
sx={{
position: 'fixed',
top: 0,
width: '100%',
zIndex: 1000
}}
>
{new URL(asPath, 'http://example.com').searchParams.get('gen') ===
'z' && (
<>
<Box
sx={{
position: 'relative',
margin: 'auto',
width: 'fit-content',
position: 'fixed',
top: 0,
width: '100%',
zIndex: 1000
}}
>
<Box
sx={{
position: 'relative',
margin: 'auto',
width: 'fit-content',
lineHeight: 0
}}
>
<iframe
width="560"
height="315"
src="https://www.youtube-nocookie.com/embed/sJNK4VKeoBM?si=zvhDKhb9C5G2b4TJ&controls=1&autoplay=1&mute=1"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
</Box>
</Box>
<Box
sx={{
position: 'fixed',
bottom: 0,
right: 0,
zIndex: 1000,
lineHeight: 0
}}
>
<iframe
width="560"
height="315"
src="https://www.youtube-nocookie.com/embed/sJNK4VKeoBM?si=zvhDKhb9C5G2b4TJ&controls=1&autoplay=1&mute=1"
src="https://www.youtube-nocookie.com/embed/ChBg4aowzX8?si=X2J_T95yiaKXB2q4&controls=1&autoplay=1&mute=1"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
</Box>
</Box>
<Box
sx={{
position: 'fixed',
bottom: 0,
right: 0,
zIndex: 1000,
lineHeight: 0
}}
>
<iframe
width="560"
height="315"
src="https://www.youtube-nocookie.com/embed/ChBg4aowzX8?si=X2J_T95yiaKXB2q4&controls=1&autoplay=1&mute=1"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
</Box>
<Box
sx={{
position: 'fixed',
bottom: 0,
left: 0,
zIndex: 1000,
lineHeight: 0
}}
>
<iframe
width="560"
height="315"
src="https://www.youtube-nocookie.com/embed/JDQr1vICu54?si=U6-9AFtk7EdTabfp&autoplay=1&mute=1"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
</Box>
</>
)}
<MailingList />
<Box
sx={{
position: 'fixed',
bottom: 0,
left: 0,
zIndex: 1000,
lineHeight: 0
}}
>
<iframe
width="560"
height="315"
src="https://www.youtube-nocookie.com/embed/JDQr1vICu54?si=U6-9AFtk7EdTabfp&autoplay=1&mute=1"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
</Box>
</>
)}
<MailingList />
</Box>
<Footer
dark
sx={{
@ -1225,7 +1271,7 @@ export async function getStaticProps() {
} catch (error) {
hackathonsData = [] // or some default value if an error occurs
}
hackathonsData.sort((a, b) => new Date(a.start) - new Date(b.start));
hackathonsData.sort((a, b) => new Date(a.start) - new Date(b.start))
let events = await fetch(
'https://events.hackclub.com/api/events/upcoming/'

View file

@ -82,11 +82,12 @@ const PhotoRow = ({ photos }) => (
)
const data = [
{ name: '3452 Members', Teenagers: 3452, year: '2018' },
{ name: '6932 Members', Teenagers: 6932, year: '2019' },
{ name: '13530 Members', Teenagers: 13530, year: '2020' },
{ name: '18347 Members', Teenagers: 18347, year: '2021' },
{ name: '21790 Members', Teenagers: 21790, year: '2022' }
{ name: '3452 Teenagers', Teenagers: 3452, year: '2018' },
{ name: '6932 Teenagers', Teenagers: 6932, year: '2019' },
{ name: '13530 Teenagers', Teenagers: 13530, year: '2020' },
{ name: '18347 Teenagers', Teenagers: 18347, year: '2021' },
{ name: '21790 Teenagers', Teenagers: 21790, year: '2022' },
{ name: '28720 Teenagers', Teenagers: 28720, year: '2023' }
]
const Sheet = styled(Card)`
@ -179,7 +180,7 @@ const Highlight = ({ children }) => {
}
const Line = () => {
return (
<Fade bottom>
<Fade>
<Box
sx={{
borderBottom: '1px solid #e0e6ed',
@ -283,7 +284,7 @@ const delimiterIconStyles = {
}
const Map = () => {
return (
<Fade bottom>
<Fade>
<Box
sx={{
position: 'relative',
@ -345,7 +346,7 @@ const Philanthropy = ({ posts = [] }) => {
>
Investing in the future
</Text>
<Fade bottom delay={90}>
<Fade delay={90}>
<Button
variant="ctaLg"
my={3}
@ -373,7 +374,7 @@ const Philanthropy = ({ posts = [] }) => {
<Header sx={{ position: 'relative' }}>
<Box
sx={{
background: 'rgba(0,0,0, 0.8)',
background: 'rgba(0,0,0, 0.7)',
zIndex: 1,
position: 'relative',
color: 'white!important',
@ -476,7 +477,7 @@ const Philanthropy = ({ posts = [] }) => {
}
}}
>
<Fade bottom delay={60}>
<Fade delay={60}>
<Box
sx={{
mt: 4,
@ -491,7 +492,7 @@ const Philanthropy = ({ posts = [] }) => {
</Box>
</Fade>
<Line />
<Fade bottom>
<Fade>
<Text as="h1" mb={2} mt={4}>
In the next ten years, Hack Club will discover, foster and inspire
thousands more teenagers to use technical skills to solve
@ -499,7 +500,7 @@ const Philanthropy = ({ posts = [] }) => {
</Text>
</Fade>
<br />
<Fade bottom>
<Fade>
<Text as="p">
Led by young engineers, with early backing from the 21st centurys
most iconic creators, Hack Club already reaches tens of thousands
@ -511,7 +512,7 @@ const Philanthropy = ({ posts = [] }) => {
</Text>
</Fade>
<br />
<Fade bottom>
<Fade>
<Text as="p">
Hack Club is always free for teenagers and with your support, Hack
Club can grow to hundreds of thousands of teen hackers, bringing
@ -520,7 +521,7 @@ const Philanthropy = ({ posts = [] }) => {
from, how they identify, or what their parents do.
</Text>
</Fade>
<Fade bottom>
<Fade>
<br />
<Text as="p">
Over time, Hack Clubbers will reshape societies as entrepreneurs,
@ -534,35 +535,35 @@ const Philanthropy = ({ posts = [] }) => {
</Text>
</Fade>
<Grid gap={2} columns={[1, 2, 3, 5]} mt={4}>
<Fade bottom delay={30}>
<Fade delay={30}>
<HackClubber
photo="arianna.png"
quote="Always inspiring interesting new projects"
info="Arianna, 16, Kentucky"
/>
</Fade>
<Fade bottom delay={60}>
<Fade delay={60}>
<HackClubber
photo="jason.png"
quote="Ive met some of the best people"
info="Jason, 16, Texas"
/>
</Fade>
<Fade bottom delay={90}>
<Fade delay={90}>
<HackClubber
photo="sam.png"
quote="In Hack Club Ive found a home"
info="Sam, 17, Singapore"
/>
</Fade>
<Fade bottom delay={120}>
<Fade delay={120}>
<HackClubber
photo="abby.png"
quote="Helped build me a strong coding foundation"
info="Abby, 15, Los Angeles"
/>
</Fade>
<Fade bottom delay={150}>
<Fade delay={150}>
<HackClubber
photo="adriano.png"
quote="Totally different from the coding classes at school"
@ -570,12 +571,12 @@ const Philanthropy = ({ posts = [] }) => {
/>
</Fade>
</Grid>
<Fade bottom>
<Fade>
<Text as="h2" mt={5}>
To discuss a gift:
</Text>
</Fade>
<Fade bottom>
<Fade>
<Grid gap={[4, 2, 2]} columns={[1, '1r 1fr', '1fr 1fr']} mt={2}>
<Box>
<Text as="h3">Reach out to</Text>
@ -623,34 +624,68 @@ const Philanthropy = ({ posts = [] }) => {
</Grid>
</Fade>
<Line />
<Fade bottom delay={100}>
<Fade delay={100}>
<Flex sx={{ justifyContent: 'space-between' }} mt={[3, 4]}>
<Box>
<Text as="h2">View Hack Club's 2020 IRS Form 990</Text>
<Text as="p">2021 Form will soon be ready and shared.</Text>
<Text as="h2">View Hack Club's IRS Form 990s</Text>
<Text as="p">2023 Form will be shared when ready.</Text>
</Box>
<Box>
<Button
as="a"
variant="outline"
href="https://cloud-d2t8vvprl-hack-club-bot.vercel.app/0form990package.pdf"
target="_blank"
mb={4}
sx={{
fontSize: '1em !important',
width: 'fit-content',
float: 'right',
mt: 2
}}
>
Form 990
</Button>
as="a"
variant="outline"
href="https://cloud-q56a8ttty-hack-club-bot.vercel.app/0hack_foundation_2022_form_990.pdf"
target="_blank"
mb={4}
sx={{
fontSize: '1em !important',
width: 'fit-content',
float: 'right',
mt: 2
}}
>
2022
</Button>
<Button
as="a"
variant="outline"
href="https://cloud-f23epej2p-hack-club-bot.vercel.app/0hack_foundation_2021_990_-_public__1_.pdf"
target="_blank"
mb={4}
sx={{
fontSize: '1em !important',
width: 'fit-content',
float: 'right',
mt: 2,
mr: 2
}}
>
2021
</Button>
<Button
as="a"
variant="outline"
href="https://cloud-d2t8vvprl-hack-club-bot.vercel.app/0form990package.pdf"
target="_blank"
mb={4}
sx={{
fontSize: '1em !important',
width: 'fit-content',
float: 'right',
mt: 2,
mr: 2
}}
>
2020
</Button>
</Box>
</Flex>
<span>
Starting in 2021, Hack Club has engaged with an external auditing
firm and has audited financials through the current fiscal year.
</span>
</Fade>
{/* <Fade bottom delay={300}>
{/* <Fade delay={300}>
<Text
as="a"
mt={2}
@ -677,13 +712,18 @@ const Philanthropy = ({ posts = [] }) => {
}}
>
<Container sx={{ textAlign: 'center' }}>
<Fade bottom>
<Fade>
<Text as="h1" sx={{ fontSize: ['28px', '28px', '36px'] }}>
Hack Club is already making a difference!
</Text>
</Fade>
<Grid my="4" gap={2} columns={[1, 1, 1, 2]}>
<Fade bottom delay={30}>
<Grid
my="4"
gap={2}
columns={[1, 1, 1, 2]}
sx={{ alignItems: 'center' }}
>
<Fade delay={30}>
<Graph />
</Fade>
<Box
@ -692,38 +732,38 @@ const Philanthropy = ({ posts = [] }) => {
margin: 'auto'
}}
>
<Fade bottom delay={90}>
<Fade delay={90}>
<Stat
num="11 million"
words="messages sent"
background="https://icons.hackclub.com/api/icons/0xFAFAFA/glyph:slack.svg"
/>
</Fade>
<Fade bottom delay={120}>
<Fade delay={120}>
<Stat
num="400"
words="Hack Clubs around the world"
num="450+"
words="coding clubs"
background="https://icons.hackclub.com/api/icons/0xFAFAFA/glyph:event-code.svg"
/>
</Fade>
<Fade bottom delay={150}>
<Fade delay={180}>
<Stat
num="500"
words="nonprofits supported"
background="https://icons.hackclub.com/api/icons/0xFAFAFA/glyph:member-add.svg"
/>
</Fade>
<Fade bottom delay={180}>
<Stat
num="100+"
words="global events"
num="180+"
words="global events supported"
background="https://icons.hackclub.com/api/icons/0xFAFAFA/glyph:profile.svg"
/>
</Fade>
<Fade bottom delay={180}>
<Fade delay={150}>
<Stat
num="4"
words="life changing summers"
num="1800+"
words="nonprofits & clubs sponsored"
background="https://icons.hackclub.com/api/icons/0xFAFAFA/glyph:member-add.svg"
/>
</Fade>
<Fade delay={180}>
<Stat
num="$14 million"
words="transacted on HCB"
background="https://icons.hackclub.com/api/icons/0xFAFAFA/glyph:photo.svg"
/>
</Fade>
@ -762,7 +802,7 @@ const Philanthropy = ({ posts = [] }) => {
}
}}
>
<Fade bottom>
<Fade>
<Text as="h1" my={4}>
As the largest network of technical teenagers, we are featured in
the news:
@ -819,12 +859,12 @@ const Philanthropy = ({ posts = [] }) => {
</Grid>
</Fade>
<Line />
<Fade bottom>
<Text as="h1">Board of Directors</Text>
<Fade>
<Text as="h1" sx={{marginBottom: '20px'}}>Board of Directors</Text>
</Fade>
<Grid gap={4} columns={[1, '1fr 2fr', '1fr 2fr']} mt={2}>
<Box>
<Fade bottom>
<Fade>
<Box>
<Box sx={{ display: 'flex', alignItems: 'center' }}>
<Box
@ -855,7 +895,7 @@ const Philanthropy = ({ posts = [] }) => {
</Box>
</Box>
</Fade>
<Fade bottom delay={200}>
<Fade delay={200}>
<br />
<Box>
<Box sx={{ display: 'flex', alignItems: 'center' }}>
@ -883,7 +923,7 @@ const Philanthropy = ({ posts = [] }) => {
</Box>
</Box>
</Fade>
<Fade bottom delay={400}>
<Fade delay={400}>
<br />
<Box>
<Box sx={{ display: 'flex', alignItems: 'center' }}>
@ -911,7 +951,7 @@ const Philanthropy = ({ posts = [] }) => {
</Box>
</Box>
</Fade>
<Fade bottom delay={600}>
<Fade delay={600}>
<br />
<Box>
<Box sx={{ display: 'flex', alignItems: 'center' }}>
@ -939,15 +979,15 @@ const Philanthropy = ({ posts = [] }) => {
</Box>
</Box>
</Fade>
<Fade bottom delay={800}>
<Fade delay={800}>
<br />
<Text sx={{ color: 'muted', fontSize: '90%' }}>
Board advisor: John Abele (Founder, Boston Scientific)
</Text>
</Fade>
</Box>
<Fade bottom delay={900}>
<Box sx={{ color: 'muted' }}>
<Fade delay={900}>
<Box sx={{ color: 'slate' }}>
<Text as="p">
<Quote></Quote>Hack Club is the organization I wish I had
when I was a teenager.
@ -978,166 +1018,196 @@ const Philanthropy = ({ posts = [] }) => {
</Grid>
<Line />
<Box>
<Fade bottom>
<Text as="h1">Join our community of generous donors</Text>
<Fade>
<Text as="h1" sx={{marginBottom: '20px'}}>Join our community of generous donors</Text>
</Fade>
<Grid gap={2} columns={[2, 4, 4]} mt={2}>
<Box>
<Fade bottom delay={50}>
<Text as="h3">$2 Million</Text>
<Fade delay={50}>
<Text as="h3" sx={{marginBottom: '8px'}}>Above $5M </Text>
</Fade>
<Fade bottom delay={80}>
<Fade delay={70}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Tom Preston-Werner
Musk Foundation (4x)
</Text>
</Fade>
<Fade bottom delay={110}>
<br></br>
<Fade delay={90}>
<Text as="h3" sx={{marginBottom: '8px'}}> $1M - $5M </Text>
</Fade>
<Fade delay={110}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Musk Foundation
Tom Preston-Werner (7x)
</Text>
</Fade>
</Box>
<Box>
<Fade bottom delay={140}>
<Text as="h3">$500k - $1M</Text>
</Fade>
<Fade bottom delay={170}>
<Fade delay={120}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Joe Liemandt
Tobi Lutke
</Text>
</Fade>
<Fade bottom delay={200}>
<Fade delay={130}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
The Libermans
</Text>
</Fade>
<Fade bottom delay={230}>
</Box>
<Box>
<Fade delay={140}>
<Text as="h3" sx={{marginBottom: '8px'}}>$500k - $1M</Text>
</Fade>
<Fade delay={180}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Lizzy Danhakl/Andrew Reed
Lizzy Danhakl/Andrew Reed (3x)
</Text>
</Fade>
<Fade delay={210}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Craig Newmark (4x)
</Text>
</Fade>
<Fade delay={230}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Endless Network (2x)
</Text>
</Fade>
<Fade delay={250}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Joe Liemandt
</Text>
</Fade>
</Box>
<Box>
<Fade bottom delay={260}>
<Text as="h3">$200k - $500k</Text>
<Fade delay={260}>
<Text as="h3" sx={{marginBottom: '8px'}}>$200k - $500k</Text>
</Fade>
<Fade bottom delay={290}>
<Fade delay={290}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Vitalik Buterin
Gwynne Shotwell
</Text>
</Fade>
<Fade bottom delay={300}>
<Fade delay={300}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Jack Dorsey
</Text>
</Fade>
<Fade bottom delay={320}>
<Fade delay={330}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Craig Newmark
Vitalik Buterin
</Text>
</Fade>
<Fade bottom delay={350}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Ron Conway
</Text>
</Fade>
<Fade bottom delay={380}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Endless Network
</Text>
</Fade>
<Fade bottom delay={410}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Argosy Foundation
</Text>
</Fade>
<Fade bottom delay={440}>
<Fade delay={345}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Ron Baron
</Text>
</Fade>
</Box>
<Box>
<Fade bottom delay={470}>
<Text as="h3">$100k- $200k</Text>
</Fade>
<Fade bottom delay={5000}>
<Fade delay={360}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Quinn Slack
Ron Conway (4x)
</Text>
</Fade>
<Fade bottom delay={530}>
<Fade delay={410}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Adam Ross
Argosy Foundation (3x)
</Text>
</Fade>
</Box>
<Box>
<Fade delay={470}>
<Text as="h3" sx={{marginBottom: '8px'}}>$100k- $200k</Text>
</Fade>
<Fade delay={500}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Quinn Slack (3x)
</Text>
</Fade>
<Fade delay={530}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Adam Ross (3x)
</Text>
</Fade>
<Fade delay={560}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
Peter Levine
</Text>
</Fade>
<Fade delay={590}>
<Text as="p" sx={{ lineHeight: '1.8em' }}>
FUTO
</Text>
</Fade>
</Box>
</Grid>
<Fade delay={800}>
<br />
<Text sx={{ color: 'muted', fontSize: '90%' }}>
* The numbers in bracket indicates repeated gifts
</Text>
</Fade>
</Box>
<Fade bottom>
<Fade>
<Text as="h2" mt={4} mb={2}>
A few others who support Hack Club
</Text>
</Fade>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 2 }} mb={5}>
<Fade bottom delay={30}>
<Fade delay={30}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/0figma.png"
name="Dylan Field, Founder, Figma"
/>
</Fade>
<Fade bottom delay={60}>
<Fade delay={60}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/1vercel.png"
name="Guillermo Rauch, Founder, Vercel"
/>
</Fade>
<Fade bottom delay={90}>
<Fade delay={90}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/7laravel.png"
name="Taylor Otwell, Creator of Laravel"
/>
</Fade>
<Fade bottom delay={120}>
<Fade delay={120}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/5sequoia.png"
name="Andrew Reed, Partner, Sequoia"
/>
</Fade>
<Fade bottom delay={150}>
<Fade delay={150}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/6replit.png"
name="Amjad Masad, Co-founder, Replit"
/>
</Fade>
<Fade bottom delay={180}>
<Fade delay={180}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/2workflow.png"
name="Conrad Kramer, Co-founder, Workflow"
/>
</Fade>
<Fade bottom delay={210}>
<Fade delay={210}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/3github.png"
name="Tim Clem, Senior Engineer, GitHub"
/>
</Fade>
<Fade bottom delay={240}>
<Fade delay={240}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/4sentry.png"
name="David Cramer, Co-founder, Sentry"
/>
</Fade>
<Fade bottom delay={270}>
<Fade delay={270}>
<Pill
logo="https://cloud-kwnsazl2x-hack-club-bot.vercel.app/8vgs.png"
name="Mahmoud Abdelkader, CEO, Very Good Security"
/>
</Fade>
<Fade bottom delay={270}>
<Fade delay={270}>
<Pill name="Blake Lieberman, Partner, Rief Ventures" />
</Fade>
<Fade bottom delay={300}>
<Fade delay={300}>
<Text
as="a"
href="/philanthropy/supporters"
@ -1152,6 +1222,7 @@ const Philanthropy = ({ posts = [] }) => {
display: 'flex',
alignItems: 'center',
transition: '0.5s ease',
border: '1px solid #1f2d3d',
':hover': {
backgroundColor: '#e0e6ed'
}
@ -1161,14 +1232,14 @@ const Philanthropy = ({ posts = [] }) => {
</Text>
</Fade>
</Box>
<Fade bottom>
<Fade>
<Text as="h2" my={3}>
Only through their support are we able to empower students like
Obrey and Maggie
</Text>
</Fade>
<Grid gap={3} columns={[1, 1, 1, 2]} mt={2} mb={4}>
<Fade bottom delay={100}>
<Fade delay={100}>
<Q>
<Heading mb={3} sx={{ fontWeight: 'normal', fontSize: '18px' }}>
Obrey Muchena started a Hack Club in his senior year of high
@ -1200,7 +1271,7 @@ const Philanthropy = ({ posts = [] }) => {
</Flex>
</Q>
</Fade>
<Fade bottom delay={200}>
<Fade delay={200}>
<Q>
<Heading mb={3} sx={{ fontWeight: 'normal', fontSize: '18px' }}>
In 2021, Maggie joined the Hack Club community; she has since
@ -1235,7 +1306,7 @@ const Philanthropy = ({ posts = [] }) => {
</Fade>
</Grid>
<Line />
<Fade bottom>
<Fade>
<Text as="h1" sx={{ textAlign: 'center' }} mb={[4, 5]}>
Hack Club invites the 21st centurys leading thinkers, builders
and disrupters to join our small, core network of donors with a
@ -1243,7 +1314,7 @@ const Philanthropy = ({ posts = [] }) => {
</Text>
</Fade>
<Grid columns={['1fr', '1fr', '1fr', '0.8fr 1.2fr']}>
<Fade bottom>
<Fade>
<Box>
<Text as="p">
We envision thousands of diverse Hack Club leaders in towns
@ -1262,66 +1333,66 @@ const Philanthropy = ({ posts = [] }) => {
</Fade>
<Map />
</Grid>
<Fade bottom>
<Fade>
<Text as="p" mt={4}>
Your gift will:
</Text>
</Fade>
<ul>
<Fade bottom>
<Fade>
<li>
Increase support to serve thousands more teenagers, with a
strong focus on serving those who face additional barriers to
contributing their talents to the world
</li>
</Fade>
<Fade bottom delay={30}>
<Fade delay={30}>
<li>
Create hundreds more Hack Clubs in high schools and communities
across the country and world
</li>
</Fade>
<Fade bottom delay={60}>
<Fade delay={60}>
<li>
Inspire a problem-solving mindset and a hacker identity, where
teenagers are empowered to build what they want to see in the
world
</li>
</Fade>
<Fade bottom delay={90}>
<Fade delay={90}>
<li>
Make Hack Club the best place to be a teenager on the internet,
incentivizing a shift among teenagers from consumers to creators
of technology
</li>
</Fade>
<Fade bottom delay={120}>
<Fade delay={120}>
<li>
Launch special projects, in which Hack Clubbers collaborate with
SpaceX, Vercel, Cloudflare, Replit, Dogecoin and others
</li>
</Fade>
<Fade bottom delay={150}>
<Fade delay={150}>
<li>
Popularize transparent accounting, open source building, and
high-integrity leadership
</li>
</Fade>
<Fade bottom delay={180}>
<Fade delay={180}>
<li>Grow the team, mostly engineers</li>
</Fade>
<Fade bottom delay={210}>
<Fade delay={210}>
<li>
Host dozens of in-person events, including our summer adventure
</li>
</Fade>
<Fade bottom delay={240}>
<Fade delay={240}>
<li>
Extend mini-grants of hardware and internet access to hundreds
of teenagers
</li>
</Fade>
<Fade bottom delay={270}>
<Fade delay={270}>
<li>
Bring computer science and engineering skills to thousands more
teenagers
@ -1329,18 +1400,18 @@ const Philanthropy = ({ posts = [] }) => {
</Fade>
</ul>
<Box my={4}>
<Fade bottom delay={350}>
<Fade delay={350}>
<Text as="h2" sx={{ mb: 0, pb: 0, mt: 2 }}>
Thank you for your consideration!
</Text>
</Fade>
<Fade bottom delay={380}>
<Fade delay={380}>
<Text as="h2" sx={{ mt: 0 }}>
Sincerely,
</Text>
</Fade>
<Flex mb={4}>
<Fade bottom delay={410}>
<Fade delay={410}>
<Box sx={{ marginRight: 3 }}>
<Image
src="/philanthropy/christina-s.png"
@ -1351,7 +1422,7 @@ const Philanthropy = ({ posts = [] }) => {
<Text as="p">Christina Asquith, Co-founder and COO</Text>
</Box>
</Fade>
<Fade bottom delay={440}>
<Fade delay={440}>
<Box>
<Image
src="/philanthropy/zach-s.png"
@ -1364,7 +1435,7 @@ const Philanthropy = ({ posts = [] }) => {
</Fade>
</Flex>
</Box>
<Fade bottom delay={200}>
<Fade delay={200}>
<Grid
gap={4}
columns={[1, '2fr 1fr', '2fr 1fr']}
@ -1398,7 +1469,7 @@ const Philanthropy = ({ posts = [] }) => {
</Box>
</Grid>
</Fade>
<Fade bottom>
<Fade>
<Button
as="a"
href="/philanthropy/hackclub_philanthropy.pdf"
@ -1409,7 +1480,7 @@ const Philanthropy = ({ posts = [] }) => {
Download as PDF
</Button>
</Fade>
<Fade bottom>
<Fade>
<Text
as="p"
sx={{ fontSize: '90% !important', color: 'muted', pb: 2 }}

View file

@ -61,7 +61,7 @@ const Page = () => (
</Box>
<Button
as="a"
href="https://drive.google.com/open?id=1FgPJv68QzLVvCdFFTls0Exu0JO2npIhC"
href="https://drive.google.com/drive/folders/1t57tU00j6OZbDCpWsyRYsaQGShQqK9Zh?usp=sharing"
variant="outline"
mt={4}
mb={4}

View file

@ -25,7 +25,7 @@ export default function Team() {
backgroundImage:
'radial-gradient(ellipse farthest-corner at top left,rgb(36 181 165 / 70%),rgb(30 151 137 / 70%)), url(https://cloud-6b7atvvf8-hack-club-bot.vercel.app/0hack_club_team_-_july_2023.jpg)',
backgroundSize: 'cover',
backgroundPosition: '75%'
backgroundPosition: '25% 15%'
}}
>
<Container>
@ -256,6 +256,15 @@ export default function Team() {
... .... . .----. ... / .- .-.. ... --- / ..-. .-.. ..- . -. - / .. -. / -- --- .-. ... . / -.-. --- -.. . -.-.--"
pronouns="she/her"
/>
<Bio
img="https://assets.devlucas.page/images/profile.jpg"
name="Lucas Honda"
teamRole="Engineering"
text="Lucas is a 14 year old Hack Clubber from Sao Paulo, Brazil. Since joining the Hack Club, he has been fascinated by Sprig and is currently leading Sprig App Review Team, and working to make it the best it possibly can be. He loves all aspects of aviation, and scours the internet/skies looking for and investigating flying machines. He spends a good portion of his time with his dog, a happy and playful dog."
pronouns="he/him"
href="https://page.devlucas.page"
video="https://www.youtube.com/embed/vuLtlzMMW6o?si=v-Dbn2fSGvTyXlbY"
/>
</Grid>
</Box>
</Box>