Merge branch 'main' into patch-11

This commit is contained in:
Arav Narula 2023-09-01 19:48:00 -04:00 committed by GitHub
commit dda2a8a9b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
122 changed files with 872 additions and 646 deletions

View file

@ -11,9 +11,9 @@ It was a huge honor last month to have Elon [spend an hour in an ask-me-anything
When hackers see problems in the world, we dont blame someone else: we try to take them on to solve. Elon is very selective about the nonprofits he supports and Im proud Hack Club is one of them.
So…how will Hack Club invest $500,000? We want to use this to help 1,000 more students start and join Hack Clubs in their towns ([see the worldwide map](https://hackclub.com/map/)). For those already in Hack Club, we look to you to help us make a higher-quality experience. We plan to continue much of what were already doing (and [what I wrote about in January](https://zachinto2020.wordpress.com/2019/12/31/as-midnight-approaches/)): spending as little money as possible at all times, growing slowly, adding diverse staff to make Hack Club better (video game designers, software engineers, media producers, and more). We are pushing hard to try and make the [Hack Club Slack](https://hackclub.com/) the best place to be a teenager on the internet and expanding [Hack Club Bank](https://hackclub.com/bank/).
So…how will Hack Club invest $500,000? We want to use this to help 1,000 more students start and join Hack Clubs in their towns ([see the worldwide map](https://hackclub.com/map/)). For those already in Hack Club, we look to you to help us make a higher-quality experience. We plan to continue much of what were already doing (and [what I wrote about in January](https://zachinto2020.wordpress.com/2019/12/31/as-midnight-approaches/)): spending as little money as possible at all times, growing slowly, adding diverse staff to make Hack Club better (video game designers, software engineers, media producers, and more). We are pushing hard to try and make the [Hack Club Slack](https://hackclub.com/) the best place to be a teenager on the internet and expanding [HCB](https://hackclub.com/hcb/).
Well be fully transparent in how we spend this money. One thing weve been working toward after winning the [Frank Grant](https://grant.frank.ly/) is open sourcing our finances. Hack Club HQ has been running on Hack Club Bank since February, and starting today, [**you can see our finances publicly**](https://bank.hackclub.com/hq). Through Hack Club Bank, you can track how we spend every dollar of Elons gift. Soon, well also launch [Franks](https://frank.ly/) transparency tools on [hackclub.com](https://hackclub.com/).
Well be fully transparent in how we spend this money. One thing weve been working toward after winning the [Frank Grant](https://grant.frank.ly/) is open sourcing our finances. Hack Club HQ has been running on HCB since February, and starting today, [**you can see our finances publicly**](https://hcb.hackclub.com/hq). Through HCB, you can track how we spend every dollar of Elons gift. Soon, well also launch [Franks](https://frank.ly/) transparency tools on [hackclub.com](https://hackclub.com/).
Hack Clubs mission is to build a new generation of hackers. This starts in high school, where Hack Club students learn to be technically proficient, build their friend network, learn to raise and spend money, and develop into kind, curious, thoughtful, optimistic, and honest leaders. And now Elon Musk is one of our largest supporters.

View file

@ -4,10 +4,10 @@ In 2014, Hack Club was founded, and Tom joined as Hack Clubs first board memb
Tom and Theresa also helped fund [The Hacker Zephyr](https://hack.af/zephyrdoc), an epic, cross-country train hackathon taken by 42 teen hackers in the summer of 2021. Tom even hacked alongside Hack Clubbers onboard.
With this gift, we will continue to build the engineering team at Hack Club, including a Tech Lead for [Hack Club Bank](https://hackclub.com/bank), and new engineers to support clubs, the Hack Club online community, and events.
With this gift, we will continue to build the engineering team at Hack Club, including a Tech Lead for [HCB](https://hackclub.com/hcb), and new engineers to support clubs, the Hack Club online community, and events.
One of our goals in 2022 is to improve Hack Club and to support more teenagers in joining the community. Thank you Tom and Theresa for helping make this possible.
We thank Tom and Theresa for their generous gift and will carefully use each cent to advance our mission to create a new generation of young, highly-technical teen leaders capable of solving our worlds greatest problems. Every penny will be spent [transparently](https://bank.hackclub.com/hq).
We thank Tom and Theresa for their generous gift and will carefully use each cent to advance our mission to create a new generation of young, highly-technical teen leaders capable of solving our worlds greatest problems. Every penny will be spent [transparently](https://hcb.hackclub.com/hq).
— Christina Asquith, COO, and Zach Latta, founder

View file

@ -10,11 +10,11 @@ Today, we're excited to announce Elon is donating $1 million to Hack Club.
This gift will help launch a number of ideas we've been discussing, including helping more in-person hackathons get off the ground, providing more direct 1:1 technical support on the [Hack Club Slack](https://hackclub.com/slack/), and starting up cool new projects like [The Hacker Zephyr](https://github.com/hackclub/the-hacker-zephyr). We also want to use his gift to help 1,000 more teenagers start and join Hack Clubs in their towns.
We will be spending every dollar as wisely as possible, growing thoughtfully, and adding diverse staff to make Hack Club better. We are pushing hard to try and make the Hack Club Slack the best place to be a teenager on the internet and expanding [Hack Club Bank](https://hackclub.com/bank/).
We will be spending every dollar as wisely as possible, growing thoughtfully, and adding diverse staff to make Hack Club better. We are pushing hard to try and make the Hack Club Slack the best place to be a teenager on the internet and expanding [HCB](https://hackclub.com/hcb/).
Elon is very selective about the nonprofits he supports and we're proud Hack Club is one of them.
Hack Club will be fully transparent in how we spend this money. Hack Club HQ has been running on Hack Club Bank since February 2020, and [you can see our finances publicly here](https://bank.hackclub.com/hq).
Hack Club will be fully transparent in how we spend this money. Hack Club HQ has been running on HCB since February 2020, and [you can see our finances publicly here](https://hcb.hackclub.com/hq).
Hack Club's mission is to help foster a new generation of hackers. This starts in high school, where Hack Clubbers learn to be technically proficient, build their friend network, learn to raise and spend money, and develop into kind, curious, thoughtful, optimistic, and honest leaders. And now Elon Musk is one of our largest supporters.

View file

@ -98,9 +98,21 @@ export default function Bio({ popup = true, spanTwo = false, ...props }) {
</Text>
</Flex>
{!popup && (
<Text mt={2} mb={0} color="black">
{text}
</Text>
<>
<Text mt={2} mb={0} color="black">
{text}
</Text>
{ name === "Ben Dixon" && (
<Flex sx={{
marginTop: 4,
marginX: 5,
justifyContent: "center",
aspectRatio: 4/3
}}>
<iframe width="100%" src="https://www.youtube-nocookie.com/embed/POv-3yIPSWc?si=25WKed0HkazCZZOz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</Flex>
)}
</>
)}
{!popup && href && (
<Flex sx={{ alignItems: 'center' }}>

View file

@ -6,9 +6,7 @@ const pricePerSprig = 100
const SprigForm = () => {
const [count, setCount] = useState(1)
function url() {
const u = new URL(
'https://bank.hackclub.com/donations/start/game-lab-fund/'
)
const u = new URL('https://hcb.hackclub.com/donations/start/game-lab-fund/')
u.searchParams.set(
'amount',
pricePerSprig * count * 100 /* convert to cents */

View file

@ -27,15 +27,14 @@ a lot of what weve already been doing (and [what I wrote about at the beginni
of the year](https://zachinto2020.wordpress.com/2019/12/31/as-midnight-approaches/)):
well spend as little money as possible at all times, and well hire a small
number of diverse staff from video game engineers to media producers to make
Hack Club better. We are pushing hard now to expand users of [Hack Club
Bank](https://hackclub.com/bank/), and continuing to try and make the Hack Club
Slack the best place to be a teenager on the intenet.
Hack Club better. We are pushing hard now to expand users of [HCB](https://hackclub.com/hcb/),
and continuing to try and make the Hack Club Slack the best place to be a teenager on the intenet.
Well have a proper announcement in a few weeks, but one thing were doing after
winning the [Frank Grant](https://grant.frank.ly/) and now receiving Elons
gift, is open sourcing our finances. Hack Club HQ has been running on Hack Club
Bank since February and starting today, you can see our account publicly at
https://bank.hackclub.com/hq. You can track how we spend every single dollar of
gift, is open sourcing our finances. Hack Club HQ has been running on HCB
since February and starting today, you can see our account publicly at
https://hcb.hackclub.com/hq. You can track how we spend every single dollar of
Elons gift. Soon, we will also launch https://frank.ly/ on Hack&nbsp;Clubs
website.

View file

@ -19,7 +19,7 @@ const Content = () => (
}}
>
<Container maxWidth={28} sx={{ mx: 0, pt: 4, pb: 2 }}>
<Text variant="eyebrow">Hack Club Bank</Text>
<Text variant="eyebrow">HCB</Text>
<br />
<Text as="span" variant="title">
Grants, waived fees, and more!
@ -36,7 +36,7 @@ const Content = () => (
}
body={
<>
Running on Bank? Get a $500 grant once you have a venue, provided
Running on HCB? Get a $500 grant once you have a venue, provided
by Hack Club with the help of{' '}
<Link
href="https://www.firstinspires.org/"
@ -56,22 +56,22 @@ const Content = () => (
icon="bolt"
leadText="All fees waived."
body={`
Run your hackathon on Hack Club Bank for free. All the money you raise goes
Run your hackathon on HCB for free. All the money you raise goes
directly towards your hackathon.`}
/>
<ListItem
icon="rep"
leadText="A suite of free tools."
body={`
When you join Hack Club Bank, you'll have access to a suite of free tools including
When you join HCB, you'll have access to a suite of free tools including
debit cards, a domain name, stickers, and more.`}
/>
</List>
<NextLink href="/bank" passHref>
<NextLink href="/hcb" passHref>
<Button as="a" variant="outlineLg" sx={{ width: [null, null, 500] }}>
Apply&nbsp;
<Box as="span" sx={{ display: ['none', 'inline', ''] }}>
for Hack Club Bank
for HCB
</Box>{' '}
</Button>
@ -164,7 +164,7 @@ const Static = () => (
sx={{
position: 'relative',
overflow: 'hidden',
backgroundImage: `url('/bank/bg.webp')`,
backgroundImage: `url('/hcb/bg.webp')`,
backgroundSize: 'cover'
}}
>

View file

@ -168,7 +168,7 @@ const Apply = ({ channel }) => {
<Slide left>
<Photo
src="/hackathons/grant/step3.png"
alt="Screenshot of a grant in the form of a transaction on a Hack Club Bank ledger"
alt="Screenshot of a grant in the form of a transaction on a HCB ledger"
width={3000}
height={2550}
showAlt

View file

@ -82,8 +82,7 @@ export default function Recap() {
desc={
<>
Get a $500 grant for your hackathon (thanks to <i>FIRST</i>!),
and access to a suite of financial tools when you join Hack Club
Bank.
and access to a suite of financial tools when you join HCB.
</>
}
/>

View file

@ -2,33 +2,32 @@ import { useEffect, useRef, useState } from 'react'
import { Box, Flex, Input, Text } from 'theme-ui'
import FlexCol from '../../flex-col'
import AutofillColourFix from './autofill-colour-fix'
import { geocode, search } from '../../../lib/bank/apply/address-validation'
import { geocode, search } from '../../../lib/hcb/apply/address-validation'
import Icon from '../../icon'
const approvedCountries = [
"AT",
"FI",
"FR",
"DE",
"GR",
"ES",
"IT",
"SE",
"TR",
"GB",
"NO",
"UA",
"BR",
"CO",
"US",
"CA",
"MX",
"JP",
"PH",
"MY",
"SG",
];
'AT',
'FI',
'FR',
'DE',
'GR',
'ES',
'IT',
'SE',
'TR',
'GB',
'NO',
'UA',
'BR',
'CO',
'US',
'CA',
'MX',
'JP',
'PH',
'MY',
'SG'
]
export default function AutoComplete({ name, isPersonalAddressInput }) {
const input = useRef()
@ -38,8 +37,8 @@ export default function AutoComplete({ name, isPersonalAddressInput }) {
const optionClicked = async prediction => {
input.current.value = prediction.name
await onInput(prediction.name)
setPredictions(null)
await onInput(prediction.name)
setPredictions(null)
}
const clickOutside = e => {
if (input.current && !input.current.contains(e.target)) {
@ -47,26 +46,26 @@ export default function AutoComplete({ name, isPersonalAddressInput }) {
}
}
const onInput = async value => {
setPredictions(value ? (await search(value)).results : null);
const onInput = async value => {
setPredictions(value ? (await search(value)).results : null)
if (isPersonalAddressInput) return
geocode(value)
.then(res => {
const country = res?.results[0]?.country
const countryCode = res?.results[0]?.countryCode
if (isPersonalAddressInput) return
geocode(value)
.then(res => {
const country = res?.results[0]?.country
const countryCode = res?.results[0]?.countryCode
setCountryCode(countryCode)
setCountryCode(countryCode)
sessionStorage.setItem('bank-signup-eventCountry', country)
sessionStorage.setItem('bank-signup-eventCountryCode', countryCode)
})
.catch(err => console.error(err));
}
sessionStorage.setItem('bank-signup-eventCountry', country)
sessionStorage.setItem('bank-signup-eventCountryCode', countryCode)
})
.catch(err => console.error(err))
}
const onInputWrapper = async e => {
if (e.target.value) await onInput(e.target.value)
}
const onInputWrapper = async e => {
if (e.target.value) await onInput(e.target.value)
}
//TODO: Close suggestions view when focus is lost via tabbing.
//TODO: Navigate suggestions with arrow keys.
@ -119,7 +118,7 @@ export default function AutoComplete({ name, isPersonalAddressInput }) {
<br />
If you're somewhere else, you can still use bank!
<br />
Please contact us at bank@hackclub.com
Please contact us at hcb@hackclub.com
</Text>
</Flex>
)}

View file

@ -2,20 +2,20 @@ import { Box, Flex, Link, Text } from 'theme-ui'
import Icon from '../../icon'
import FlexCol from '../../flex-col'
export default function BankInfo() {
export default function HCBInfo() {
return (
<Box>
<FlexCol gap={4}>
<FlexCol gap={4}>
<Text sx={{ fontSize: 36 }}>
What Hack Club Bank <i>is</i>
What HCB <i>is</i>
</Text>
<FlexCol gap={3} ml={3}>
<FlexCol gap={2}>
<Flex sx={{ alignItems: 'center', gap: 2 }}>
<Link
color="white"
href="/bank/fiscal-sponsorship"
href="/hcb/fiscal-sponsorship"
target="_blank"
sx={{
fontSize: 3,
@ -49,7 +49,7 @@ export default function BankInfo() {
</FlexCol>
<FlexCol gap={4}>
<Text sx={{ fontSize: 36 }}>
What Hack Club Bank <i>is not</i>
What HCB <i>is not</i>
</Text>
<FlexCol gap={3} ml={3}>
<FlexCol gap={2}>
@ -72,7 +72,7 @@ export default function BankInfo() {
<Text sx={{ color: 'muted' }}>
<ul>
<li>
If youre a for-profit entity, then Bank is not for you.
If youre a for-profit entity, then HCB is not for you.
Consider setting up a business.
</li>
</ul>

View file

@ -15,7 +15,7 @@ async function sendApplication() {
// Send the data
try {
const res = await fetch('/api/bank/apply', {
const res = await fetch('/api/hcb/apply', {
method: 'POST',
cors: 'no-cors',
headers: { 'Content-Type': 'application/json' },
@ -86,7 +86,7 @@ export default function NavButton({
// Set the step query param to minStep if it's not there.
await setStep(minStep)
} else if (step === minStep && isBack) {
await router.push('/bank')
await router.push('/hcb')
return
} else if (step < minStep) {
// Set the step query param to minStep if it's lower than that.
@ -124,7 +124,7 @@ export default function NavButton({
if (step >= maxStep && !isBack) {
await sendApplication()
await router.push('/bank/apply/success')
await router.push('/hcb/apply/success')
return
} else {
step += isBack ? -1 : 1

View file

@ -92,7 +92,7 @@ export default function PersonalInfoForm({
</Field>
<Field
name="returningUser"
label="Have you used Bank before?"
label="Have you used HCB before?"
col={false}
requiredFields={requiredFields}
>
@ -161,19 +161,19 @@ export default function PersonalInfoForm({
</div>
) : null}
</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 Hack Club Bank"
requiredFields={requiredFields}
>
<Input
name="accommodations"
id="accommodations"
placeholder="I need a screen reader"
sx={{ ...AutofillColourFix }}
/>
</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"
requiredFields={requiredFields}
>
<Input
name="accommodations"
id="accommodations"
placeholder="I need a screen reader"
sx={{ ...AutofillColourFix }}
/>
</Field>
</>
)
}

View file

@ -1,5 +1,5 @@
import { Card, Badge as ThemeBadge, Box, Heading, Text, Image } from 'theme-ui'
import { Organization } from '../../../pages/bank/climate'
import { Organization } from '../../../pages/hcb/climate'
import Tilt from '../../../components/tilt'
import Icon from '@hackclub/icons'
import Tooltip from '../tooltip'

View file

@ -31,8 +31,8 @@ export default function Everything({ fee, partner = false }) {
'Transaction data export': 'download',
'Record shared notes on transactions': 'docs',
'24-hour response support': 'clock',
'Reimbursement process': 'enter',
'Instant deposits': 'bolt'
'Reimbursement process': 'enter'
// 'Instant deposits': 'bolt'
}).map(([item, icon = 'enter']) => (
<ListItem key={item} icon={icon}>
{item}
@ -44,7 +44,7 @@ export default function Everything({ fee, partner = false }) {
'Generate attendee legal waivers': '',
'Virtual debit cards (with Apple & Google Pay)': '',
'Debit card transaction paper trail': '',
'Transparency Mode (optional)': ''
'Transparency Mode': ''
}).map(([item, date]) => (
<ListItem
key={item}
@ -113,7 +113,7 @@ export default function Everything({ fee, partner = false }) {
>
<Container variant="narrow">
<Text sx={{ color: 'muted', lineHeight: 1.375 }}>
Hack Club Bank is a{' '}
HCB is a{' '}
<Link
color="primary"
href="https://en.wikipedia.org/wiki/Fiscal_sponsorship"

View file

@ -24,12 +24,9 @@ export default function Features({ partner = false }) {
<Box>
<Module
icon="bank-account"
name="Bank account"
name="Fund"
body={
<>
Bank account under the hood with a custom, beautiful
dashboard.
</>
<>A fund under the hood with a custom, beautiful dashboard.</>
}
/>
<ModuleDetails>
@ -44,7 +41,7 @@ export default function Features({ partner = false }) {
</ModuleDetails>
</Box>
<Laptop
href="https://bank.hackclub.com/the-innovation-circuit"
href="https://hcb.hackclub.com/the-innovation-circuit"
title="See The Innovation Circuits finances in public"
sx={{
gridColumn: [null, null, 'span 2'],
@ -74,12 +71,12 @@ export default function Features({ partner = false }) {
name="Balance &amp; history"
body="Check real-time account balance + transaction history online anytime."
/>
<Module
{/* <Module
icon="bolt"
name="Instant deposits"
body="Receive donations and invoice payments instantly once they're paid."
/>
<Module
/> */}
{/* <Module
icon="payment"
name="Built-in invoicing"
body={
@ -96,7 +93,7 @@ export default function Features({ partner = false }) {
.
</>
}
/>
/> */}
<Module
icon="docs"
name="Pre-written forms"
@ -189,12 +186,12 @@ export default function Features({ partner = false }) {
>
Have more questions? <br /> Check out the{' '}
<Link
href="https://bank.hackclub.com/faq"
href="https://hcb.hackclub.com/faq"
target="_blank"
rel="noreferrer"
hoverline
>
Hack Club Bank FAQ
HCB FAQ
</Link>
.
</Text>
@ -272,7 +269,7 @@ function Laptop({ href, title, sx }) {
height: '100%',
minHeight: '16rem',
backgroundSize: 'auto 115%',
backgroundImage: "url('/bank/laptop-dark.png')",
backgroundImage: "url('/hcb/laptop-dark.png')",
backgroundPosition: 'center top',
backgroundRepeat: 'no-repeat'
}}

View file

@ -10,7 +10,7 @@ export default function Features() {
<Box sx={{ py: 5 }}>
<Box as="a" href="#testimonials">
<Image
src="/bank/meet-teams-using-bank.svg"
src="/hcb/meet-teams-using-hcb.svg"
alt="yeah"
width={200}
height={100}
@ -61,11 +61,11 @@ export default function Features() {
<ModuleDetails>
<Link
href="https://bank.hackclub.com/poseidon-robotics"
href="https://hcb.hackclub.com/poseidon-robotics"
target="_blank"
>
<NextImage
src="/bank/poseidon-dashboard.png"
src="/hcb/poseidon-dashboard.png"
alt="iPad"
width={500}
height={300}
@ -262,7 +262,7 @@ export default function Features() {
>
<Text variant="caption" sx={{ color: 'muted' }}>
Hack Club does not directly provide banking services. Banking services
provided by FDIC-certified financial institutions.
are provided by FDIC-certified financial institutions.
</Text>
</Container>

View file

@ -119,7 +119,7 @@ export default function Signup() {
const handleSubmit = async e => {
e.preventDefault()
await fetch('/api/bank/demo', {
await fetch('/api/hcb/demo', {
method: 'POST',
body: JSON.stringify({
eventName,
@ -144,7 +144,7 @@ export default function Signup() {
<Base
id="form"
method="POST"
action="/api/bank/demo"
action="/api/hcb/demo"
onSubmit={handleSubmit}
>
<Grid sx={{ gridTemplateColumns: '1fr 2fr', alignItems: 'center' }}>

View file

@ -122,7 +122,7 @@ export default function RealTimeline() {
/>
<Step
icon="rep"
name="Meet with the Bank team on a call"
name="Meet with the HCB team on a call"
duration="Step 2"
/>
<Step

View file

@ -24,11 +24,11 @@ export default function Testimonials() {
}}
>
<Heading variant="title">
<i>FIRST</i> teams all over the country run on Bank.
<i>FIRST</i> teams all over the country run on HCB.
</Heading>
<Text variant="lead" color="muted">
Everywhere from San Jose to Boston to New York,
Hack&nbsp;Club&nbsp;Bank powers teams of all sizes.
Everywhere from San Jose to Boston to New York, HCB powers teams of
all sizes.
</Text>
</Container>
<Container>
@ -48,7 +48,7 @@ export default function Testimonials() {
website="evposeidon.wixsite.com"
url="https://evposeidon.wixsite.com/robo/home"
imgSrc="https://cloud-qtng6088u-hack-club-bot.vercel.app/0image.png"
quote="Overall, Hack Club Bank has opened more opportunities for Poseidon, allowing us to undertake larger projects, both on the playing field and in our community."
quote="Overall, [HCB] has opened more opportunities for Poseidon, allowing us to undertake larger projects, both on the playing field and in our community."
hackerName="Ian Marwong"
hackerRole="Team Lead"
hackerAvatarUrl="/hackers/ian-marwong.jpg"
@ -67,7 +67,7 @@ export default function Testimonials() {
hackerName="Brian Cisto"
hackerRole="Team Captain & Software Lead"
imgSrc="https://cloud-oelh6sp7b-hack-club-bot.vercel.app/0screen_shot_2022-11-06_at_8.45.37_pm.png"
quote="Hack Club Bank has been essential to keeping track of our finances as well as giving us the opportunity to establish ourselves as a nonprofit."
quote="[HCB] has been essential to keeping track of our finances as well as giving us the opportunity to establish ourselves as a nonprofit."
/>
</Grid>
</Container>
@ -211,7 +211,7 @@ function Organization({
</Box>
{transparency && (
<Link
href={`https://bank.hackclub.com/${transparency}`}
href={`https://hcb.hackclub.com/${transparency}`}
target="_blank"
rel="noreferrer"
sx={{ mt: ['16px', '0px'] }}

View file

@ -1,8 +1,17 @@
import { Box, Button, Heading, Link, Text, Container, Badge } from 'theme-ui'
import {
Box,
Button,
Heading,
Link,
Flex,
Text,
Container,
Badge
} from 'theme-ui'
import Fade from 'react-reveal/Fade'
import ScrollHint from '../scroll-hint'
import Image from 'next/image'
import hero from '../../public/bank/bg.webp'
import hero from '../../public/hcb/bg.webp'
export default function Landing({ showButton = true, eventsCount }) {
return (
@ -51,9 +60,33 @@ export default function Landing({ showButton = true, eventsCount }) {
}}
as="h1"
>
<Underline>Become a 501(c)(3) nonprofit</Underline> with
Hack&nbsp;Club&nbsp;Bank.
<Underline>Become a nonprofit</Underline> with HCB
</Heading>
<Flex
sx={{
gap: 3,
alignItems: 'center',
justifyContent: 'center',
marginBottom: 4
}}
>
<img
src="/hcb/hcb-icon-icon-dark.png"
alt="HCB Icon"
height={64}
sx={{
margin: 'auto'
}}
/>
<Text as="h2" sx={{ fontSize: 4 }}>
HCB by
</Text>
<img
src="https://assets.hackclub.com/flag-standalone.svg"
alt="hack club flag"
height={48}
/>
</Flex>
<Container variant="copy">
<Text
variant="lead"
@ -75,18 +108,8 @@ export default function Landing({ showButton = true, eventsCount }) {
Innovation Circuit
</Link>{' '}
is one of {Math.round((eventsCount - 50) / 100) * 100}+
teams who use <strong>Hack&nbsp;Club&nbsp;Bank</strong> to
run world-class organizations, hackathons, and clubs.
</Text>
</Container>
<Container variant="copy" mt={3}>
<Text
sx={{
textShadow: '0 3px 6px rgba(0, 0, 0, 0.5)',
}}
color="muted"
>
Hack Club Bank is a <Link href="https://en.wikipedia.org/wiki/Fiscal_sponsorship">fiscal sponsor</Link> and not a banking institution.
teams who use <strong>HCB</strong> to run world-class
organizations, hackathons, and clubs.
</Text>
</Container>
</Container>
@ -113,7 +136,7 @@ export default function Landing({ showButton = true, eventsCount }) {
<Button
variant="outlineLg"
as="a"
href="https://bank.hackclub.com"
href="https://hcb.hackclub.com"
target="_blank"
style={{ zIndex: '100' }}
ml={3}

View file

@ -5,7 +5,7 @@ import kebabCase from 'lodash/kebabCase'
const orgs = [
{
logo: '/bank/nonprofits/girlgenius.png',
logo: '/hcb/nonprofits/girlgenius.png',
name: 'Girl Genius',
director: 'Chloe Yan',
role: 'Executive Director',
@ -15,7 +15,7 @@ const orgs = [
'Girl Genius Magazine is a fully student-run publication inspiring the next generation of female and non-binary leaders in STEAM. Their journalism and inclusive online community are dedicated to breaking down techs lingering gender barriers. Becoming fiscally sponsored allowed them to publish more issues, host over 40 workshops, organize a conference, and reach a global audience of 11k readers (and counting).'
},
{
logo: '/bank/nonprofits/techshift.png',
logo: '/hcb/nonprofits/techshift.png',
transparency: 'techshift',
name: 'TechShift',
director: 'Daniel Jin',
@ -23,10 +23,10 @@ const orgs = [
budget: 100,
website: 'techshift.org',
description:
'Founded in 2017, TechShift supports a network of 30+ student-run chapters across 3 continents leading initiatives at the intersection of technology and social impact. With the help of Hack Club Bank, they are bringing about a more equitable technological future through their mentorship programs, community partnerships, microgrants, and the STEM For Social Good Toolkit.'
'Founded in 2017, TechShift supports a network of 30+ student-run chapters across 3 continents leading initiatives at the intersection of technology and social impact. With the help of HCB, they are bringing about a more equitable technological future through their mentorship programs, community partnerships, microgrants, and the STEM For Social Good Toolkit.'
},
{
logo: '/bank/nonprofits/projectboom.jpg',
logo: '/hcb/nonprofits/projectboom.jpg',
transparency: 'projectboom',
name: 'Project Boom',
director: 'Kunal Botla',
@ -36,10 +36,10 @@ const orgs = [
website: 'projectboom.org',
url: 'https://projectboom.org/',
description:
'Project Boom is a student-led organization with a simple mission: getting computers to those who need them. Instead of becoming e-waste, old machines are given new life to deserving students worldwide. Joining Hack Club Bank provided Project Boom with a platform to easily accept and manage donations, helping them to repair and ship more computers than ever before.'
'Project Boom is a student-led organization with a simple mission: getting computers to those who need them. Instead of becoming e-waste, old machines are given new life to deserving students worldwide. Joining HCB provided Project Boom with a platform to easily accept and manage donations, helping them to repair and ship more computers than ever before.'
},
{
logo: '/bank/nonprofits/executebig.png',
logo: '/hcb/nonprofits/executebig.png',
name: 'Execute Big',
director: 'Mingjie Jiang',
role: 'Co-Executive Director',
@ -47,7 +47,7 @@ const orgs = [
budgetLabel: 'funded',
website: 'executebig.org',
description:
'Execute Big began by using leftover hackathon funds to provide travel grants for students. Hack Club Bank helped make possible their array of grants, fellowships, and innovative programs to share computer science with students nationally. Now their own 501(c)(3) nonprofit, they leverage existing resources to make STEM activities accessible to everyone.'
'Execute Big began by using leftover hackathon funds to provide travel grants for students. HCB helped make possible their array of grants, fellowships, and innovative programs to share computer science with students nationally. Now their own 501(c)(3) nonprofit, they leverage existing resources to make STEM activities accessible to everyone.'
}
]
@ -68,9 +68,8 @@ export default function Nonprofits() {
>
<Heading variant="title">Nonprofit? No problem.</Heading>
<Text variant="lead" color="muted">
Hack Club Bank is a powerful, safe, and easy-to-use financial
platform, whether you're receiving your first donation or spending
$100,000 a year.
HCB is a powerful, safe, and easy-to-use money thing, whether you're
receiving your first donation or spending $100,000 a year.
</Text>
</Container>

View file

@ -22,12 +22,12 @@ export default function Run() {
>
<Container maxWidth={28} sx={{ mx: 0, py: 4 }}>
<Text variant="heading" sx={{ fontSize: 48 }}>
Bank doesnt stop at closing ceremony.
HCB doesnt stop at closing ceremony.
</Text>
<br />
<Text variant="lead" sx={{ color: 'muted', fontSize: 28 }}>
Receiving and managing money is just the start. Hack Club Bank helps
you handle ongoing obligations while youre organizing.
Receiving and managing money is just the start. HCB helps you handle
ongoing obligations while youre organizing.
</Text>
</Container>
<List>

View file

@ -18,7 +18,7 @@ export default function Start({ stats }) {
}}
>
<Heading variant="ultratitle" color="white">
Sign up for Hack&nbsp;Club&nbsp;Bank.
Sign up for HCB.
</Heading>
<Text color="muted" variant="lead" m="0 !important">
Open to Hack Clubs, hackathons, and charitable organizations in
@ -32,8 +32,8 @@ export default function Start({ stats }) {
>
<ApplyButton />
<Text color="muted" sx={{ fontSize: 18 }}>
We run Hack Club HQ on Bank!{' '}
<Link href="https://bank.hackclub.com/hq" color="primary">
We run Hack Club HQ on HCB!{' '}
<Link href="https://hcb.hackclub.com/hq" color="primary">
See&nbsp;our&nbsp;finances.
</Link>
</Text>

View file

@ -102,7 +102,7 @@ const Stats = ({ stats }) => {
}
export async function getStaticProps(context) {
const res = await fetch(`https://bank.hackclub.com/stats`)
const res = await fetch(`https://hcb.hackclub.com/stats`)
const stats = await res.json()
return {

View file

@ -22,7 +22,7 @@ const events = [
budget: 15,
attendees: 115,
testimonial:
'For me, Hack Club Bank unlocked organizing hackathons. Even after as a club leader, raising money seemed insurmountable. Bank directly enabled organizing events in my community with event bank accounts & a supportive community. I couldnt recommend it more highly.'
'For me, HCB unlocked organizing hackathons. Even after as a club leader, raising money seemed insurmountable. HCB directly enabled organizing events in my community with event bank accounts [sic] & a supportive community. I couldnt recommend it more highly.'
},
{
name: 'Teenhacks LI',
@ -31,7 +31,7 @@ const events = [
budget: 35,
attendees: 300,
testimonial:
'For our hackathon, Hack Club Bank has given us the tools to make sure our organization is professional with sponsors. Bank and their team have created an easily manageable resource to make sure any event is run successfully. We would highly recommend any organization be a part of the Hack Club ecosystem.'
'For our hackathon, HCB has given us the tools to make sure our organization is professional with sponsors. HCB and their team have created an easily manageable resource to make sure any event is run successfully. We would highly recommend any organization be a part of the Hack Club ecosystem.'
},
{
transparency: 'mahacks',
@ -41,7 +41,7 @@ const events = [
budget: 10,
attendees: 70,
testimonial:
'Hack Club Bank removed the barriers to starting fundraising for MAHacks. In mere days, vs months of nonprofit paperwork, Bank enabled my team to invoice sponsors professionally and manage our finances on a clear, up-to-date dashboard. I highly recommend using Bank & joining the Hack Club community.'
'HCB removed the barriers to starting fundraising for MAHacks. In mere days, vs months of nonprofit paperwork, HCB enabled my team to invoice sponsors professionally and manage our finances on a clear, up-to-date dashboard. I highly recommend using HCB & joining the Hack Club community.'
},
{
transparency: 'dv-hacks',
@ -51,7 +51,7 @@ const events = [
budget: 12,
attendees: 150,
testimonial:
'Hack Club Bank is an essential platform for any hackathon organizer! It made us look both professional and credible in front of our sponsors and it relieved us of legal/financial burdens. Hack Club Bank was there for us every step of the way and for a first-year hackathon, that support was priceless.'
'HCB is an essential platform for any hackathon organizer! It made us look both professional and credible in front of our sponsors and it relieved us of legal/financial burdens. HCB was there for us every step of the way and for a first-year hackathon, that support was priceless.'
}
]
@ -69,11 +69,11 @@ export default function Testimonials() {
}}
>
<Heading variant="title">
The best events across the country run on Bank.
The best events across the country run on HCB.
</Heading>
<Text variant="lead" color="muted">
Everywhere from Philadelphia to Phoenix to Portland,
Hack&nbsp;Club&nbsp;Bank powers events of all sizes.
Everywhere from Philadelphia to Phoenix to Portland, HCB powers
events of all sizes.
</Text>
</Container>
<Container
@ -94,9 +94,7 @@ export default function Testimonials() {
>
{events.map(event => {
const id = kebabCase(event.name)
return (
<Event {...event} img={`/bank/events/${id}.jpg`} key={id} />
)
return <Event {...event} img={`/hcb/events/${id}.jpg`} key={id} />
})}
</Grid>
</Container>
@ -208,7 +206,7 @@ function Event({
</Box>
{transparency && (
<Link
href={`https://bank.hackclub.com/${transparency}`}
href={`https://hcb.hackclub.com/${transparency}`}
target="_blank"
rel="noreferrer"
sx={{ mt: ['16px', '0px'] }}

View file

@ -13,7 +13,7 @@ function Step({ stepIndex, label }) {
}}
>
<Image
src={`/bank/timeline-steps/step${stepIndex}.svg`}
src={`/hcb/timeline-steps/step${stepIndex}.svg`}
sx={{ flexShrink: 0 }}
alt=""
/>
@ -32,9 +32,9 @@ function Step({ stepIndex, label }) {
export default function Timeline() {
const labels = [
'Register your organization for Bank',
'Register your organization for HCB',
'Explore the interface in Playground mode',
'Hop on an intro call with the Bank team',
'Hop on an intro call with our team',
'Start fundraising!'
]
const stepSideLength = 64

View file

@ -1,41 +1,47 @@
import React from "react";
import React from 'react'
const addClassNameToChildren = (children, className) => React.Children.map(children, child => React.cloneElement(child, { className: `${child.props.className || ''} ${className}` }));
const addClassNameToChildren = (children, className) =>
React.Children.map(children, child =>
React.cloneElement(child, {
className: `${child.props.className || ''} ${className}`
})
)
const tooltip = (direction) => function Tooltip ({ children, text }) {
const escapedText = text.replace(/'/g, "\\'");
const tooltip = direction =>
function Tooltip({ children, text }) {
const escapedText = text.replace(/'/g, "\\'")
const directionalStyles = ({
e: `
const directionalStyles = {
e: `
left: 100%;
bottom: 50%;
right: 0;
margin-left: 0.5rem;
transform: translateY(50%);
`,
w: `
w: `
right: 100%;
bottom: 50%;
margin-right: 0.5rem;
transform: translateY(50%);
`,
n: `
n: `
right: 50%;
bottom: 100%;
margin-bottom: 0.5rem;
transform: translateX(50%);
`,
s: `
s: `
right: 50%;
top: 100%;
margin-top: 0.5rem;
transform: translateX(50%);
`
})[direction || 'e'];
}[direction || 'e']
return (
<>
<style>{`.tooltipped {
<>
<style>{`.tooltipped {
position: relative;
}
@ -81,16 +87,16 @@ const tooltip = (direction) => function Tooltip ({ children, text }) {
}
}`}</style>
{children}
</>
);
}
{children}
</>
)
}
const Tooltip = tooltip();
Tooltip.N = tooltip('n');
Tooltip.S = tooltip('s');
Tooltip.E = tooltip('e');
Tooltip.W = tooltip('w');
const Tooltip = tooltip()
Tooltip.N = tooltip('n')
Tooltip.S = tooltip('s')
Tooltip.E = tooltip('e')
Tooltip.W = tooltip('w')
export { Tooltip };
export default Tooltip;
export { Tooltip }
export default Tooltip

View file

@ -26,13 +26,13 @@ export default function Bank({ data }) {
variant="title"
sx={{ color: 'red', fontSize: ['36px', 4, 5], mt: [0, 3] }}
>
Hack&nbsp;Club&nbsp;Bank
HCB
</Heading>
<Grid columns={[1, '1.3fr 1fr', 2]}>
<Box>
<Text as="p" variant="subtitle">
Become a 501(c)3 nonprofit and join 700+ teams using
Hack&nbsp;Club Bank to run world-class events.
Become a 501(c)3 nonprofit and join 700+ teams using HCB to run
world-class events.
</Text>
<Text as="p" variant="subtitle">
This platform is built and maintained by the Hack&nbsp;Club team.
@ -40,11 +40,11 @@ export default function Bank({ data }) {
<Buttons
id="27"
icon="bank-account"
link="/bank"
link="/hcb"
primary="red"
sx={{ mt: [0, 2, 3] }}
>
Start banking!
Start fundraising!
</Buttons>
<Box
sx={{
@ -64,7 +64,7 @@ export default function Bank({ data }) {
textAlign: 'center',
'&:before': {
content: '""',
backgroundImage: 'url(/home/bank-mobile.webp)',
backgroundImage: 'url(/home/hcb-mobile.webp)',
backgroundSize: '100%',
backgroundRepeat: 'no-repeat',
width: '100%',
@ -76,7 +76,7 @@ export default function Bank({ data }) {
>
{/* <Box
sx={{
backgroundImage: 'url(/home/bank-screen.webp)',
backgroundImage: 'url(/home/hcb-screen.webp)',
zIndex: 2,
position: 'absolute',
margin: 'auto',
@ -112,7 +112,7 @@ export default function Bank({ data }) {
textAlign: 'center',
'&:before': {
content: '""',
backgroundImage: 'url(/home/bank.webp)',
backgroundImage: 'url(/home/hcb.webp)',
backgroundSize: '100%',
backgroundRepeat: 'no-repeat',
width: '100%',
@ -124,7 +124,7 @@ export default function Bank({ data }) {
>
{/* <Box
sx={{
backgroundImage: 'url(/home/bank-screen.webp)',
backgroundImage: 'url(/home/hcb-screen.webp)',
zIndex: 2,
position: 'absolute',
margin: 'auto',

View file

@ -39,7 +39,12 @@ export default function Outernet() {
28th to 31st July, 2023!
</Text>
<Flex
sx={{ flexDirection: 'column', mt: [3, 3, 4], alignItems: 'end', justifyContent: 'flex-end' }}
sx={{
flexDirection: 'column',
mt: [3, 3, 4],
alignItems: 'end',
justifyContent: 'flex-end'
}}
>
<Buttons
icon="event-add"

View file

@ -55,4 +55,4 @@ Growing fast, we currently work with 10,000 - 20,000 teens in 36 states and 22 c
Located in the heart of Shelburne, Vermont.
Check out the [Hack Club philosophy](https://hackclub.com/philosophy/), our [code of conduct](https://hackclub.com/conduct/), and our real-time [transparent finances](https://bank.hackclub.com/hq).
Check out the [Hack Club philosophy](https://hackclub.com/philosophy/), our [code of conduct](https://hackclub.com/conduct/), and our real-time [transparent finances](https://hcb.hackclub.com/hq).

View file

@ -2,33 +2,33 @@ _As of June 2021, this position has been filled._
At [Hack Club](https://hackclub.com), a 501(c)(3) nonprofit in Shelburne, Vermont, we're building the program we wish we had in high school: a space for [high school hackers](https://en.wikipedia.org/wiki/Hacker_ethic).
As part of this, we're seeking to hire a full-time Bank Operations Assistant to report to the [Bank Operations Lead](https://hackclub.com/jobs/bank-ops-lead/) and join our team of 8 at HQ to support growth of one of our key programs.
As part of this, we're seeking to hire a full-time HCB Operations Assistant to report to the [HCB Operations Lead](https://hackclub.com/jobs/hcb-ops-lead/) and join our team of 8 at HQ to support growth of one of our key programs.
**Title:** Hack Club Bank Operations Associate
**Title:** HCB Operations Associate
**Job Description:**
[Hack Club Bank](https://medium.com/hackclub/hack-club-bank-is-now-live-for-everyone-including-you-884f7f54836f) is our in-house financial software used by 1,500 Hack Clubbers to financially power their Hack Clubs, hackathons, and student-organized nonprofits. When teenagers use Hack Club Bank, we act as their backing financial and legal entity, allowing them to leverage our 501(c)(3) nonprofit status to receive donations and use our beautiful in-house software to manage and spend their funds.
[HCB](https://medium.com/hackclub/hack-club-bank-is-now-live-for-everyone-including-you-884f7f54836f) is our in-house financial software used by 1,500 Hack Clubbers to financially power their Hack Clubs, hackathons, and student-organized nonprofits. When teenagers use HCB, we act as their backing financial and legal entity, allowing them to leverage our 501(c)(3) nonprofit status to receive donations and use our beautiful in-house software to manage and spend their funds.
Recently, we've made the decision to open up Hack Club Bank to anyone looking to power their nonprofit. We have nearly 300 various organizations and events that have partnered with Hack Club Bank within the last 3 years and we're gearing up to grow substantially.
Recently, we've made the decision to open up HCB to anyone looking to power their nonprofit. We have nearly 300 various organizations and events that have partnered with HCB within the last 3 years and we're gearing up to grow substantially.
As the first full-time addition to the Bank Operations team, your role will be to partner with the Bank Operations Lead on managing our fiscal sponsorship program. You will assist with onboarding new nonprofits, daily backend operations, and providing world class support. Large or small, each organization partnering with Hack Club Bank is given exceptional white glove treatment.
As the first full-time addition to the HCB Operations team, your role will be to partner with the HCB Operations Lead on managing our fiscal sponsorship program. You will assist with onboarding new nonprofits, daily backend operations, and providing world class support. Large or small, each organization partnering with HCB is given exceptional white glove treatment.
You will report to the Bank Operations Lead but will have autonomy over your work day. Each staff member that joins Hack Club is expected to manage their own workload and manage up when they require assistance.
You will report to the HCB Operations Lead but will have autonomy over your work day. Each staff member that joins Hack Club is expected to manage their own workload and manage up when they require assistance.
A typical day with Hack Club Bank may look like this:
A typical day with HCB may look like this:
- Responding to various Bank user support requests. Users may contact us via email, Slack, texting, and phone calls. How you manage your response time is up to you but we require a 24hr turn-around time frame on weekdays. Requests that come in over the weekend are expected to be responded to on the following Monday.
- Responding to various HCB user support requests. Users may contact us via email, Slack, texting, and phone calls. How you manage your response time is up to you but we require a 24hr turn-around time frame on weekdays. Requests that come in over the weekend are expected to be responded to on the following Monday.
- Process new applications and set up onboarding calls if appropriate.
- Video calls with Bank users and prospective Bank users.
- Video calls with HCB users and prospective HCB users.
- Daily backend transaction categorization and management. Money doesn't move in Hack Club Bank without human approval. Our team is responsible for making sure donations and expenses are mapped to the correct organization.
- Daily backend transaction categorization and management. Money doesn't move in HCB without human approval. Our team is responsible for making sure donations and expenses are mapped to the correct organization.
- Assist with designing new features. We are always looking to add new and exciting features for Bank users and a good portion of our work is assisting with launching these.
- Assist with designing new features. We are always looking to add new and exciting features for HCB users and a good portion of our work is assisting with launching these.
- Eventually you would help manage a new partnership that Hack Club is entering into. This would mean that you would be responsible for all fiscally sponsored organizations coming through this partnership and would report to the Bank Operations Lead.
- Eventually you would help manage a new partnership that Hack Club is entering into. This would mean that you would be responsible for all fiscally sponsored organizations coming through this partnership and would report to the HCB Operations Lead.
A bit of what we think you'll be like:
@ -52,6 +52,6 @@ To apply, email us at <jobs@hackclub.com> with "I will go down with this ship" i
And last, some details on compensation. This role pays between $38K$43K, depending on your experience—and as a nonprofit we know that's probably less than you'd make elsewhere. We offer healthcare and 4 weeks paid vacation.
\- Melanie Smith, Bank Operations Lead, and Zach Latta, Executive Director
\- Melanie Smith, HCB Operations Lead, and Zach Latta, Executive Director
P.S. If you're technical, you can apply by running `$ ssh jobs.hackclub.com` in your terminal.

View file

@ -4,25 +4,25 @@ At [Hack Club](https://hackclub.com), a 501(c)(3) nonprofit, we're building a gi
Alongside the soccer players, theater kids, and band geeks, we aspire to create and foster a new type of teenager: the teenage hacker. Our goal: to become as ubiquitous, as universal, and as culturally foundational for young people today as the Girl and Boy Scouts were 70 years ago.
**Title:** Hack Club Bank Operations Lead
**Title:** HCB Operations Lead
**Job Description:**
[Hack Club Bank](https://hackclub.com/bank/) is our in-house financial software used by 1,500 Hack Clubbers to financially power their Hack Clubs, hackathons, and student-organized nonprofits. When teenagers use Hack Club Bank, we act as their backing financial and legal entity, allowing them to leverage our 501(c)(3) nonprofit status to receive donations and use our beautiful in-house software to manage and spend their funds.
[HCB](https://hackclub.com/hcb/) is our in-house financial software used by 1,500 Hack Clubbers to financially power their Hack Clubs, hackathons, and student-organized nonprofits. When teenagers use HCB, we act as their backing financial and legal entity, allowing them to leverage our 501(c)(3) nonprofit status to receive donations and use our beautiful in-house software to manage and spend their funds.
As our 7th full-time staff member, your role will be to end-to-end own the human operations essential to Hack Club Bank's success, including onboarding video calls with new Hack Clubbers signing up, daily backend transaction categorization and management through our custom software, and providing a world-class customer success experience over Slack and email to Hack Clubbers. In addition to yourself, in this role you will lead 3 current part-time Hack Clubbers - and grow this team - to help you accomplish Hack Club Bank's human operations.
As our 7th full-time staff member, your role will be to end-to-end own the human operations essential to HCB's success, including onboarding video calls with new Hack Clubbers signing up, daily backend transaction categorization and management through our custom software, and providing a world-class customer success experience over Slack and email to Hack Clubbers. In addition to yourself, in this role you will lead 3 current part-time Hack Clubbers - and grow this team - to help you accomplish HCB's human operations.
In addition to leading human operations to provide a world-class and reliable experience for Hack Clubbers, you'll also work closely with engineering to help identify and design new features for Bank.
In addition to leading human operations to provide a world-class and reliable experience for Hack Clubbers, you'll also work closely with engineering to help identify and design new features for HCB.
You will have autonomy in how you make Hack Clubbers happy and how you manage the operations team for maximum impact. A formal list of your responsibilities would be something like:
- End-to-end owning onboarding new Hack Clubbers onto Bank, from designing and maintaining the application flow, to reviewing and making decisions on new applications, to running interview and onboarding video calls, to designing and executing the contract signing flow.
- Daily backend transaction categorization and management. Money doesn't move in Hack Club Bank without human approval and you and your team will be the humans-in-the-loop on all transactions.
- Providing a world-class customer success experience to Hack Clubbers who reach out over Slack and email for help using Bank.
- Leading our student operations team, having daily communication with them, and organizing them for efficient and impactful work. This team has grown Bank from 0 to almost 1,600 users and almost $1 million raised.
- Designing our support systems and processes to more quickly and more meaningfully serve Bank users.
- End-to-end owning onboarding new Hack Clubbers onto HCB, from designing and maintaining the application flow, to reviewing and making decisions on new applications, to running interview and onboarding video calls, to designing and executing the contract signing flow.
- Daily backend transaction categorization and management. Money doesn't move in HCB without human approval and you and your team will be the humans-in-the-loop on all transactions.
- Providing a world-class customer success experience to Hack Clubbers who reach out over Slack and email for help using HCB.
- Leading our student operations team, having daily communication with them, and organizing them for efficient and impactful work. This team has grown HCB from 0 to almost 1,600 users and almost $1 million raised.
- Designing our support systems and processes to more quickly and more meaningfully serve HCB users.
- Thinking ahead, plan, and identify process improvements and product improvements that can be implemented through a combination of human and software effort.
- Be the top point of contact for all things Bank.
- Be the top point of contact for all things HCB.
And a bit of what we suspect you'll be like:
@ -39,8 +39,8 @@ And a bit of what we suspect you'll be like:
To apply, email us at bankalanker@hackclub.com with "through the looking glass" in the subject line. We don't think we'll be able to identify this person just by looking at their resume, so please include 300-400 words on your background relative to this role and why you're interested.
And last, some details on compensation. This role pays between $45K - $55K, depending on your experienceand as a nonprofit we know that's probably less than you'd make elsewhere. We offer healthcare and 4 weeks paid vacation.
And last, some details on compensation. This role pays between $45K - $55K, depending on your experience-and as a nonprofit we know that's probably less than you'd make elsewhere. We offer healthcare and 4 weeks paid vacation.
\- Christina Asquith, COO, Scott Motte, Engineering Manager for Hack Club Bank, and Zach Latta, Executive Director
\- Christina Asquith, COO, Scott Motte, Engineering Manager for HCB, and Zach Latta, Executive Director
P.S. If you're technical, you can apply by running `$ ssh jobs.hackclub.com` in your terminal.

View file

@ -139,8 +139,8 @@ const Navigation = props => (
<NextLink href="/clubs" passHref>
<Link>Clubs</Link>
</NextLink>
<NextLink href="/bank" passHref>
<Link>Bank</Link>
<NextLink href="/hcb" passHref>
<Link>Fiscal&nbsp;Sponsorship</Link>
</NextLink>
<NextLink href="/hackathons" passHref>
<Link>Hackathons</Link>

View file

@ -12,16 +12,16 @@ import {
import { useRouter } from 'next/router'
import useForm from '../../lib/use-form'
import Submit from '../submit'
import { getCookie, hasCookie } from 'cookies-next';
import { getCookie, hasCookie } from 'cookies-next'
const JoinForm = ({ sx = {} }) => {
const router = useRouter()
const { status, formProps, useField } = useForm('/api/join/', null, {
clearOnSubmit: 5000,
method: 'POST',
initData: hasCookie("continent")
initData: hasCookie('continent')
? {
continent: getCookie("continent"),
continent: getCookie('continent'),
reason: router.query.reason,
event: router.query.event
}

View file

@ -13,7 +13,7 @@ const Channel = ({ color, channel }) => (
)
const whitelistedChannels = new Set(
`epoch-tx epoch-ba epoch-vt epoch-satellites lounge counttoamillion code scrapbook hq epoch ship welcome confessions lobby question-of-the-day hack-night announcements assemble community leaders bank college-apps cdn present sprig hackathons 8-ball hackathon-organizers zrl-land design ishan-ded apple out-of-context amas batcave matthews-brain-dump memes epoch-bts poll-of-the-day pasture music too-much-information corgi-states-of-hugo gamedev denio-den india linux neighbourhood packages politics sarthaks-dreams fayd-lives-here bayarea reesericdotci celesticide minecraft cabin -코트니- neon replit-embassy the-democratic-peoples-republic-of-yishun scrapbook-dev speedy-diffusion 10-days-in-public orpheus-legion hq-surroundings annοuncements productivity hackathon-grants secret-santa ian-things-ᴛᴍ emojibot hardware-party koggy-woggy surroundings honest-impressions charlie confessions-meta carot-dev wordle pranavs-lair crypto adventofcode cake one-north mayhaps epoch-food-n-fun toby-shenanigans seattle math fishhead lgbtq chars-corner github-embassy project-ideas rant-about-high-school orpheus-show shoutout rust alumni slack-themes 3d-printing art hacktoberfest newsletter india swim`
`epoch-tx epoch-ba epoch-vt epoch-satellites lounge counttoamillion code scrapbook hq epoch ship welcome confessions lobby question-of-the-day hack-night announcements assemble community leaders bank hcb college-apps cdn present sprig hackathons 8-ball hackathon-organizers zrl-land design ishan-ded apple out-of-context amas batcave matthews-brain-dump memes epoch-bts poll-of-the-day pasture music too-much-information corgi-states-of-hugo gamedev denio-den india linux neighbourhood packages politics sarthaks-dreams fayd-lives-here bayarea reesericdotci celesticide minecraft cabin -코트니- neon replit-embassy the-democratic-peoples-republic-of-yishun scrapbook-dev speedy-diffusion 10-days-in-public orpheus-legion hq-surroundings annοuncements productivity hackathon-grants secret-santa ian-things-ᴛᴍ emojibot hardware-party koggy-woggy surroundings honest-impressions charlie confessions-meta carot-dev wordle pranavs-lair crypto adventofcode cake one-north mayhaps epoch-food-n-fun toby-shenanigans seattle math fishhead lgbtq chars-corner github-embassy project-ideas rant-about-high-school orpheus-show shoutout rust alumni slack-themes 3d-printing art hacktoberfest newsletter india swim`
.split(/\s+/gi)
.filter(i => i.length > 0)
)

View file

@ -88,7 +88,7 @@ export default function Signup() {
const handleSubmit = async e => {
e.preventDefault()
await fetch('/api/bank/demo', {
await fetch('/api/hcb/demo', {
method: 'POST',
body: JSON.stringify({
eventName,
@ -109,7 +109,7 @@ export default function Signup() {
<Base
id="form"
method="POST"
action="/api/bank/demo"
action="/api/hcb/demo"
onSubmit={handleSubmit}
>
<Field

View file

@ -142,7 +142,7 @@ export default function InfoGrid() {
}}
>
<Heading variant="headline">
Receive and spend the grant through Hack Club Bank.
Receive and spend the grant through HCB.
</Heading>
<BulletItem iconGlyph="bank-account" iconColor="#5BC0DE">
Full history and balance, viewed on a powerful web dashbaord

View file

@ -34,7 +34,7 @@ function Recap() {
<BreakdownBox
icon="payment-transfer"
text="$250"
description="grants instantly transferred through Hack Club Bank"
description="grants instantly transferred through HCB"
delay="200"
bg="blue"
/>
@ -62,8 +62,8 @@ function Recap() {
</Text>
<Text variant="caption">
While you wait for your hardware, explore and get familiar with
Hack Club Bank with limited access to features until you get
fully activated.
HCB with limited access to features until you get fully
activated.
</Text>
<Signup />
</Card>

View file

@ -8,6 +8,15 @@
"img": "https://cloud-7xyxcf3f6-hack-club-bot.vercel.app/0new_project__3_.png",
"link": "https://jams.hackclub.com"
},
{
"background": "#212529",
"titleColor": "white",
"descriptionColor": "white",
"title": "cpu.land",
"description": "Curious exactly what happens when you run a program on your computer? Read this.",
"img": "https://cloud-eg2ex8nol-hack-club-bot.vercel.app/0favicon-on-light-removebg-preview.png",
"link": "https://cpu.land"
},
{
"background": "#000",
"titleColor": "yellow",
@ -30,10 +39,10 @@
"background": "dark",
"titleColor": "red",
"textColor": "white",
"title": "Hack Club Bank",
"description": "No. 1 fiscal sponsor for teenagers (we crossed $8 million in transactions)",
"title": "HCB",
"description": "No. 1 fiscal sponsor for teenagers (we crossed $10 million in transactions)",
"img": "https://emoji.slack-edge.com/T0266FRGM/bank-hackclub-dark/8c6f85f387365072.png",
"link": "/bank"
"link": "/hcb"
},
{
"background": "snow",
@ -93,7 +102,7 @@
"background": "dark",
"titleColor": "blue",
"textColor": "white",
"title": "Haxidraw",
"title": "Haxidraw (coming soon!)",
"description": "An open source drawing machine and online editor for generative art",
"img": "https://emoji.slack-edge.com/T0266FRGM/tw_pencil2/c6afadc2280e571d.png",
"link": "https://haxidraw.hackclub.com"

View file

@ -19,7 +19,7 @@ async function generateSitemap() {
'!pages/api'
])
const rewrites = [
'/bank',
'/hcb',
'/team',
'/map',
'/vip-newsletters',

View file

@ -8,8 +8,8 @@ export function middleware(request) {
if (continent === 'Oceania') {
continent = 'Australia'
}
const response = NextResponse.next();
response.cookies.set("continent", continent || "");
return response;
const response = NextResponse.next()
response.cookies.set('continent', continent || '')
return response
}
}

View file

@ -28,6 +28,11 @@ const nextConfig = {
},
async redirects() {
return [
{
source: '/bank/:path*',
destination: '/hcb/:path*',
permanent: true
},
{ source: '/grant/', destination: '/hackathons/grant', permanent: false },
{
source: '/sprig/',

View file

@ -1,20 +1,23 @@
const isRelevantEventType = (type) => ['PushEvent', 'PullRequestEvent', 'WatchEvent'].includes(type);
const isRelevantEventType = type =>
['PushEvent', 'PullRequestEvent', 'WatchEvent'].includes(type)
const getMessage = (type, payload, repo) => {
switch (type) {
case 'PushEvent':
return payload.commits?.[0]?.message || 'No commit message';
return payload.commits?.[0]?.message || 'No commit message'
case 'PullRequestEvent':
return payload.pull_request.title;
return payload.pull_request.title
case 'WatchEvent':
return `starred ${repo.name}`;
return `starred ${repo.name}`
default:
return null;
return null
}
}
export async function fetchGitHub() {
const initialGitHubData = await fetch('https://api.github.com/orgs/hackclub/events').then(r => r.json());
const initialGitHubData = await fetch(
'https://api.github.com/orgs/hackclub/events'
).then(r => r.json())
const gitHubData = initialGitHubData
.filter(({ type }) => isRelevantEventType(type))
@ -24,12 +27,12 @@ export async function fetchGitHub() {
userImage: actor.avatar_url,
message: getMessage(type, payload, repo),
time: created_at
}));
}))
return gitHubData;
return gitHubData
}
export default async function github(req, res) {
const git = await fetchGitHub(req, res);
res.json(git);
const git = await fetchGitHub(req, res)
res.json(git)
}

View file

@ -10,7 +10,7 @@ export default async function handler(req, res) {
if (req.method === 'POST') {
const data = req.body
await fetch('https://bank.hackclub.com/api/v1/events/create_demo', {
await fetch('https://hcb.hackclub.com/api/v1/events/create_demo', {
body: JSON.stringify({
email: data.userEmail,
name: data.eventName
@ -41,24 +41,24 @@ export default async function handler(req, res) {
'Address Country Code': data.addressCountryCode,
'Event Location': data.eventLocation,
'Event Country Code': data.eventCountryCode,
'Have you used Hack Club Bank for any previous events?':
'Have you used HCB for any previous events?':
data.returningUser === 'true'
? 'Yes, I have used Hack Club Bank before'
? 'Yes, I have used HCB before'
: 'No, first time!',
'How did you hear about HCB?': data.referredBy,
Transparent:
data.transparent === 'true' ? 'Yes, please!' : 'No, thanks.',
'HCB account URL': `https://bank.hackclub.com/${r.slug}`,
'HCB account URL': `https://hcb.hackclub.com/${r.slug}`,
'Contact Option': data.contactOption,
'Slack Username': data.slackUsername,
'Accommodations': data.accommodations,
Accommodations: data.accommodations
})
res.writeHead(302, { Location: '/bank/apply/success' }).end()
res.writeHead(302, { Location: '/hcb/apply/success' }).end()
})
.catch(error => {
console.error(error)
res.writeHead(500, {
Location: `/bank/apply?step=3&airtable-error=${error}`
Location: `/hcb/apply?step=3&airtable-error=${error}`
})
})
} else {

View file

@ -1,4 +1,4 @@
// 1. create a demo account on Bank and invite them to it
// 1. create a demo account on HCB and invite them to it
// 2. add this demo account info to the Applications Table
import AirtablePlus from 'airtable-plus'
@ -13,7 +13,7 @@ export default async function handler(req, res) {
if (req.method === 'POST') {
const data = JSON.parse(req.body)
await fetch('https://bank.hackclub.com/api/v1/events/create_demo', {
await fetch('https://hcb.hackclub.com/api/v1/events/create_demo', {
body: JSON.stringify({
email: data.userEmail,
name: data.eventName,
@ -31,7 +31,7 @@ export default async function handler(req, res) {
'Email Address': data.userEmail,
'Event Name': `${data.eventName} (${data.teamType} ${data.teamNumber})`,
Status: 'Demo Account',
'HCB account URL': `https://bank.hackclub.com/${r.slug}`
'HCB account URL': `https://hcb.hackclub.com/${r.slug}`
})
res
.status(200)

View file

@ -10,16 +10,16 @@ export async function Slack() {
formData.append('date_range', '30d')
let slackData = await fetch(
"https://hackclub.slack.com/api/team.stats.timeSeries",
'https://hackclub.slack.com/api/team.stats.timeSeries',
{
method: "POST",
method: 'POST',
body: `--orpheus\r\nContent-Disposition: form-data; name="token"\r\n\r\n${process.env.SLACK_API_TOKEN}\r\n--orpheus\r\nContent-Disposition: form-data; name="date_range"\r\n\r\n30d\r\n--orpheus\r\nContent-Disposition: form-data;`,
headers: {
"content-type": "multipart/form-data; boundary=orpheus",
cookie: process.env.SLACK_API_COOKIE,
},
'content-type': 'multipart/form-data; boundary=orpheus',
cookie: process.env.SLACK_API_COOKIE
}
}
).then((r) => r.json());
).then(r => r.json())
if (!slackData || !slackData.stats) {
console.warn(`No slack data: ${JSON.stringify(slackData)}`)

View file

@ -34,7 +34,8 @@ export const Logo = ({ name }) => (
>
{startCase(name)
.replace('Flag Orpheus', 'Orpheus Flag ')
.replace('Bw', ' (B/W)')}
.replace('Bw', ' (B/W)')
.replace('Hcb', 'HCB')}
</Text>
<Grid
columns="repeat(3, 1fr)"
@ -168,20 +169,20 @@ const Page = ({ css }) => (
</Button>
<Heading id="bank" variant="headline">
Hack Club Bank Logos
HCB Logos
</Heading>
<Grid columns={[null, 2, 3]} gap={3}>
<Logo name="hack-club-bank-light" />
<Logo name="hack-club-bank-dark" />
<Logo name="hcb-light" />
<Logo name="hcb-dark" />
</Grid>
<Button
as="a"
href="https://bank.hackclub.com/branding"
href="https://hcb.hackclub.com/branding"
variant="outline"
mt={3}
mb={[4, 5]}
>
See all Bank logos
See all HCB logos
</Button>
<Heading id="banners" variant="headline">

View file

@ -516,12 +516,12 @@ const Page = () => (
<Feature
icon="bank-account"
color="black"
name="A nonprofit bank account"
name="A nonprofit fund"
desc={
<>
Use our 501(c)(3) status and a restricted fund with{' '}
<Link href="/bank">Hack Club Bank</Link> to fundraise, accept
donations, buy things!
<Link href="/hcb">HCB</Link> to fundraise, accept donations, and
buy things!
</>
}
/>

View file

@ -27,7 +27,7 @@ _(To summarize: were a donor-supported nonprofit so outside of planned grant
[Hack Club](https://hackclub.com/) is an independent nonprofit, supported by donors, with a responsibility to our supporters to spend our budget directly on our core programs. Therefore, as much as wed like to, **were not in a position to provide financial support to hackathons/other nonprofits**. We occasionally run grant programs, like the [$500 grant for IRL high school hackathons](https://hackclub.com/hackathons/grant). We wish you the best of luck in your sponsorship search—we recommend [Megan Cuis “Meginar”](https://youtu.be/tOmXzA4reTY) and [Lachlan Campbells Flagship talk](https://notebook.lachlanjc.com/2020-01-19_how_to_start_your_first_hackathon/) if youre looking for advice.
If youre looking for [fiscal sponsorship](https://en.wikipedia.org/wiki/Fiscal_sponsorship) (aka becoming a legal nonprofit), weve got your back—[Hack Club Bank](https://hackclub.com/bank/) will set you up with a nonprofit bank account, legal entity, debit cards for your team, automated taxes/accounting, G Suite, an online donation form, ACH/check sending/receiving, discounts on stickers & software for your team, and great support. There are no upfront fees. Sign up at <https://hackclub.com/bank/>.
If youre looking for [fiscal sponsorship](https://en.wikipedia.org/wiki/Fiscal_sponsorship) (aka becoming a legal nonprofit), weve got your back—[HCB](https://hackclub.com/hcb/) will set you up with a nonprofit fund, legal entity, debit cards for your team, automated taxes/accounting, G Suite, an online donation form, ACH/check sending/receiving, discounts on stickers & software for your team, and great support. There are no upfront fees. Sign up at <https://hackclub.com/hcb/>.
## If youre running a hackathon…

View file

@ -24,7 +24,7 @@ A totally transparent nonprofit not only shows others how to do it. It also incr
While a bunch of transactions in a bank account is great, I want to summarize Hack Club's spending in May 2020 publicly. This is something that I wish other nonprofits did when Hack Club was first getting started.
The below summary was calculated from HQ's export from [Hack Club Bank](https://hackclub.com/bank/). You can see our full current account at https://bank.hackclub.com/hq/ using Hack Club Bank's new [Transparency Mode](https://twitter.com/hackclub/status/1262471150963130374).
The below summary was calculated from HQ's export from [HCB](https://hackclub.com/hcb/). You can see our full current account at https://hcb.hackclub.com/hq/ using HCB's new [Transparency Mode](https://twitter.com/hackclub/status/1262471150963130374).
### Revenue (total $20,621.78)
@ -65,7 +65,7 @@ Please note that [Elon Musk also donated $500K this month](https://twitter.com/h
- $510 - Employer taxes
- $6,500 - Zach Latta - Executive Director
- No taxes pre-withdrawn due to 1099, net pay above
- $5,166.67 - Max Wofford - Clubs, working with Chris, recently owning Hack Club Bank too
- $5,166.67 - Max Wofford - Clubs, working with Chris, recently owning HCB too
- No taxes pre-withdrawn due to 1099, net pay above
- $4,761.90 - Lachlan Campbell - Design, https://hackclub.com
- No taxes pre-withdrawn due to 1099, net pay above
@ -75,7 +75,7 @@ Please note that [Elon Musk also donated $500K this month](https://twitter.com/h
- No taxes pre-withdrawn due to 1099, net pay above
- $3,500 - Theo Bleier - Donor side, working with Christina
- No taxes pre-withdrawn due to 1099, net pay above
- $3,100 - Michael Destefanis - Runs operations on Hack Club Bank
- $3,100 - Michael Destefanis - Runs operations on HCB
- $2,444.13 - Net pay
- $655.87 - Employee taxes
- $237.15 - Employer taxes
@ -104,7 +104,7 @@ Please note that [Elon Musk also donated $500K this month](https://twitter.com/h
- $9 - Unity
- $8.50 - DNSimple
- $1.20 - Mailgun
- **Hack Club Bank ($515.25)**
- **HCB ($515.25)**
- $207 - Expensify
- $181.60 - Earth Class Mail (mail processing service)
- $120 - DocuSign
@ -148,11 +148,11 @@ In some cases, there are expenses that we have committed to in May that have not
- $3,670 paid to Lewis Mudge for rent the 2nd 1/2 April and the first 1/2 of May (place Max and I stayed in). Similarly, I paid Lewis at the time from my personal account and have not yet been reimbursed.
- ~$100 gas for staff trip to Vermont
Please note: there may be errors in this post. While I have pulled the numbers directly from Hack Club Bank, I did mess around a bit in a spreadsheet and have not double checked my work. I believe that all numbers below are approximately correct.
Please note: there may be errors in this post. While I have pulled the numbers directly from HCB, I did mess around a bit in a spreadsheet and have not double checked my work. I believe that all numbers below are approximately correct.
If youre interested in seeing the Google Sheet I used to calculate the above numbers, you can see it at https://docs.google.com/spreadsheets/d/1UDw7YewsS5wJIVm0Uh5wOGlM2Ddv-kZVrD3QqIypvRQ/edit.
Please note that while the above encompasses all of HQ's spending in our Hack Club Bank account, it does not include GitHub grants to clubs, postage bought by Mail Team, or grants made from our internal "Discretionary Fund" to students in need that is funded by Ron Conway.
Please note that while the above encompasses all of HQ's spending in our HCB account, it does not include GitHub grants to clubs, postage bought by Mail Team, or grants made from our internal "Discretionary Fund" to students in need that is funded by Ron Conway.
_Thanks to Christina, Melody, and Lachlan for their help writing this post._

View file

@ -271,7 +271,7 @@ export default function Donate({ sprig }) {
my={3}
sx={{ width: ['100%', 'auto'] }}
as="a"
href="https://bank.hackclub.com/donations/start/hq"
href="https://hcb.hackclub.com/donations/start/hq"
>
Donate
<Text sx={{ display: ['none', 'inline-block'], ml: 2 }}>
@ -469,8 +469,8 @@ export default function Donate({ sprig }) {
</Box>
<Box mb={3} sx={{ fontSize: '27px' }}>
Please get in touch at{' '}
<A sx={{ color: 'blue' }} href="mailto:bank@hackclub.com">
bank@hackclub.com
<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.

View file

@ -1,4 +1,16 @@
import { Box, Button, Container, Heading, Card, Text, Grid, Flex, Image as Img, Link, Divider } from 'theme-ui'
import {
Box,
Button,
Container,
Heading,
Card,
Text,
Grid,
Flex,
Image as Img,
Link,
Divider
} from 'theme-ui'
import Head from 'next/head'
import Meta from '@hackclub/meta'
import ForceTheme from '../components/force-theme'
@ -10,7 +22,6 @@ import OuternetPic from '../public/outernet/hack.jpg'
import { compact } from 'lodash'
import theme from '@hackclub/theme'
const events = [
{
name: 'Outernet',
@ -20,7 +31,8 @@ const events = [
season: 'Summer',
year: '2023',
repo: 'outernet',
image: 'https://github.com/hackclub/outernet/assets/39828164/368eac86-3c39-4842-be2c-1436a6db6f07',
image:
'https://github.com/hackclub/outernet/assets/39828164/368eac86-3c39-4842-be2c-1436a6db6f07',
link: 'https://github.com/hackclub/outernet'
},
{
@ -32,46 +44,52 @@ const events = [
year: '2022/23',
video: 'https://www.youtube.com/embed/KLx4NZZPzMc',
repo: 'epoch'
},
},
{
name: 'Assemble',
logo: 'https://emoji.slack-edge.com/T0266FRGM/assemble/4f9465eb00175463.png',
description: 'The first high school hackathon since the pandemic! Hosted by a team of Hack Clubbers to kick off a hackathon renaissance.',
description:
'The first high school hackathon since the pandemic! Hosted by a team of Hack Clubbers to kick off a hackathon renaissance.',
location: 'San Francisco, California',
season: 'Summer',
year: '2022',
video: 'https://youtube.com/embed/PnK4gzO6S3Q',
repo: 'assemble'
},
},
{
name: 'The Hacker Zephyr',
logo: 'https://hackclub.com/stickers/zephyr.svg',
description: 'A cross-country hacker adventure on a train and the longest hackathon (by miles) on land.',
description:
'A cross-country hacker adventure on a train and the longest hackathon (by miles) on land.',
location: 'Burlington (VT) to Los Angeles (CA)',
season: 'Summer',
year: '2021',
video: 'https://youtube.com/embed/2BID8_pGuqA',
repo: 'the-hacker-zephyr'
},
},
{
name: 'Summer of Making',
logo: 'https://hackclub.com/stickers/summer_of_making.svg',
description: '$50k in hardware donations to teen hackers around the world and the creation of Scrapbook:',
description:
'$50k in hardware donations to teen hackers around the world and the creation of Scrapbook:',
location: 'Online (thanks COVID-19!)',
season: 'Summer',
year: '2020',
image: 'https://cdn.sanity.io/images/2ejqxsnu/production/ed144128afb78a7095d6c77945efdd2c38078ecf-1637x990.png?w=3840&q=75&fit=clip&auto=format',
image:
'https://cdn.sanity.io/images/2ejqxsnu/production/ed144128afb78a7095d6c77945efdd2c38078ecf-1637x990.png?w=3840&q=75&fit=clip&auto=format',
link: 'https://scrapbook.hackclub.com/r/summer-of-making',
ghTag: 'summer-of-making'
},
},
{
name: 'Flagship',
logo: 'https://hackclub.com/stickers/ship.png',
description: 'An IRL meetup of high school hackathon organizers and coding club leaders. Our first "flagship" event.',
description:
'An IRL meetup of high school hackathon organizers and coding club leaders. Our first "flagship" event.',
location: 'San Francisco, California',
season: 'Summer',
year: '2019',
image: 'https://github.com/hackclub/www-assemble/blob/main/public/hackers-assemble.jpg?raw=true',
image:
'https://github.com/hackclub/www-assemble/blob/main/public/hackers-assemble.jpg?raw=true',
link: 'https://hack.af/flagship-album'
}
]
@ -89,30 +107,63 @@ const Event = ({
image,
link
}) => (
<Card variant="sunken">
<Flex sx={{alignItems: 'center', mb: 2}}>
<Img src={logo} sx={{ height: '24px', mr: 2}} />
<Heading as="h2">{name}</Heading>
</Flex>
<Box>
{description}
</Box>
{video ?
<Box as="iframe" src={video} frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen width='100%' height="250px" border="none" sx={{borderRadius: '8px', mt: 2}} />
: <a href={link}><Img src={image} sx={{borderRadius: '8px', mt: 2, height: '250px', objectFit: 'cover', width: '100%', objectPosition: 'top'}} /></a>
}
<Box sx={{color: 'darkless'}}>
<b>{season}, {year} - {location}</b> </Box><Box> {repo && <Link href={`https://github.com/hackclub/${repo}`}>
<>github.com/hackclub/{repo}</>
</Link>}
{ghTag && <Link href={`https://github.com/topics/${ghTag}`}>
<Card variant="sunken">
<Flex sx={{ alignItems: 'center', mb: 2 }}>
<Img src={logo} sx={{ height: '24px', mr: 2 }} />
<Heading as="h2">{name}</Heading>
</Flex>
<Box>{description}</Box>
{video ? (
<Box
as="iframe"
src={video}
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
width="100%"
height="250px"
border="none"
sx={{ borderRadius: '8px', mt: 2 }}
/>
) : (
<a href={link}>
<Img
src={image}
sx={{
borderRadius: '8px',
mt: 2,
height: '250px',
objectFit: 'cover',
width: '100%',
objectPosition: 'top'
}}
/>
</a>
)}
<Box sx={{ color: 'darkless' }}>
<b>
{season}, {year} - {location}
</b>{' '}
</Box>
<Box>
{' '}
{repo && (
<Link href={`https://github.com/hackclub/${repo}`}>
<>github.com/hackclub/{repo}</>
</Link>
)}
{ghTag && (
<Link href={`https://github.com/topics/${ghTag}`}>
<>github.com/topics/{ghTag}</>
</Link>}
{link && !repo && !ghTag && <Link href={link}>
<>{link.replace("https://", "")}</>
</Link>}
</Box>
</Card>
</Link>
)}
{link && !repo && !ghTag && (
<Link href={link}>
<>{link.replace('https://', '')}</>
</Link>
)}
</Box>
</Card>
)
const Page = ({ jobs }) => (
@ -183,7 +234,8 @@ const Page = ({ jobs }) => (
textShadow: 'small'
}}
>
Every summer and now every winter, Hack Club does something special to bring the community together. Let's take a trip down memory lane.
Every summer and now every winter, Hack Club does something special
to bring the community together. Let's take a trip down memory lane.
</Heading>
<Button
as="a"
@ -206,17 +258,50 @@ const Page = ({ jobs }) => (
align="left"
columns={['1fr', '1fr 1fr']}
>
{
events.map((event, i) => (
<Event key={`event-${i}`} {...event}/>
))
}
{events.map((event, i) => (
<Event key={`event-${i}`} {...event} />
))}
</Grid>
<Card variant="sunken" sx={{textAlign: 'center', background: theme.util.gx('cyan', 'blue'), color: 'white', width: '100%', maxWidth: '64rem', mx: 'auto', mt: 3, fontSize: 2}}>
<Box sx={{maxWidth: '600px', mx: 'auto'}}>
Looking for more? Hack Clubbers often organise their own hackathons!
Check them out at <Link href="https://hackathons.hackclub.com" sx={{color: 'white'}} target="_blank">hackathons.hackclub.com</Link>. Hack Club is also behind a series of <Link href="https://daysofservice.hackclub.com/" sx={{color: 'white'}} target="_blank">Day of Service</Link> events and <Link href="https://events.hackclub.com/" sx={{color: 'white'}} target="_blank">frequent virtual events</Link>.
<Card
variant="sunken"
sx={{
textAlign: 'center',
background: theme.util.gx('cyan', 'blue'),
color: 'white',
width: '100%',
maxWidth: '64rem',
mx: 'auto',
mt: 3,
fontSize: 2
}}
>
<Box sx={{ maxWidth: '600px', mx: 'auto' }}>
Looking for more? Hack Clubbers often organise their own hackathons!
Check them out at{' '}
<Link
href="https://hackathons.hackclub.com"
sx={{ color: 'white' }}
target="_blank"
>
hackathons.hackclub.com
</Link>
. Hack Club is also behind a series of{' '}
<Link
href="https://daysofservice.hackclub.com/"
sx={{ color: 'white' }}
target="_blank"
>
Day of Service
</Link>{' '}
events and{' '}
<Link
href="https://events.hackclub.com/"
sx={{ color: 'white' }}
target="_blank"
>
frequent virtual events
</Link>
.
</Box>
</Card>
</Container>
@ -226,4 +311,4 @@ const Page = ({ jobs }) => (
</>
)
export default Page
export default Page

View file

@ -140,11 +140,12 @@ const HackathonGrant = () => {
}}
>
Hack Club is providing $500 grants (and waiving{' '}
<Link href="/bank" target="_blank">
Hack Club Bank
<Link href="/hcb" target="_blank">
HCB
</Link>{' '}
fees) to <a sx={{ whiteSpace: 'nowrap' }}>in-person</a>{' '}
<a sx={{ whiteSpace: 'nowrap' }}>high school</a> hackathons until December 31st, 2023.
<a sx={{ whiteSpace: 'nowrap' }}>high school</a> hackathons until
December 31st, 2023.
</Box>
<Button variant="ctaLg" as="a" href="#apply" sx={{ mt: 2 }}>
{open ? 'Apply Now' : 'Coming Soon'}
@ -305,7 +306,7 @@ const HackathonGrant = () => {
}}
>
You will need to share a link to your website. Don't have a
domain? Hack Club Bank provides a free domain. Check out this{' '}
domain? HCB provides a free domain. Check out this{' '}
<Link
href="https://notebook.lachlanjc.com/2019-09-06_making_a_hackathon_site"
target="_blank"
@ -334,17 +335,17 @@ const HackathonGrant = () => {
background="https://icons.hackclub.com/api/icons/0x212025/glyph:bank-account.svg"
size="28"
>
You'll receive your grant through Hack Club Bank, our financial
platform for hackathons, and spend it in the open with{' '}
You'll receive your grant through HCB, our financial platform for
hackathons, and spend it in the open with{' '}
<Link
href="https://changelog.bank.hackclub.com/transparent-finances-(optional-feature)-151427"
href="https://changelog.hcb.hackclub.com/transparent-finances-(optional-feature)-151427"
target="_blank"
>
Transparency Mode
</Link>
. Sign up for{' '}
<Link href="/bank" target="_blank">
Hack Club Bank
<Link href="/hcb" target="_blank">
HCB
</Link>{' '}
before applying.
<br />
@ -355,8 +356,8 @@ const HackathonGrant = () => {
color: 'muted'
}}
>
If you're unable to use Hack Club Bank, we're unfortunately
unable to support you through this grant program.
If you're unable to use HCB, we're unfortunately unable to
support you through this grant program.
</Text>
</Requirement>
</Grid>
@ -402,7 +403,7 @@ const HackathonGrant = () => {
<Card
as="a"
variant="interactive"
href="mailto:bank@hackclub.com"
href="mailto:hcb@hackclub.com"
sx={{
mx: 'auto',
maxWidth: '52rem',
@ -438,7 +439,7 @@ const HackathonGrant = () => {
>
<strong>Questions?</strong>
<Text as="span" variant="caption" color="secondary" sx={{ pl: 3 }}>
Reach out to <Link>bank@hackclub.com</Link>
Reach out to <Link>hcb@hackclub.com</Link>
</Text>
</Text>
</Card>

View file

@ -5,15 +5,15 @@ import ForceTheme from '../../components/force-theme'
import Head from 'next/head'
import Meta from '@hackclub/meta'
import FlexCol from '../../components/flex-col'
import Progress from '../../components/bank/apply/progress'
import NavButton from '../../components/bank/apply/nav-button'
import Watermark from '../../components/bank/apply/watermark'
import FormContainer from '../../components/bank/apply/form-container'
import BankInfo from '../../components/bank/apply/bank-info'
import OrganizationInfoForm from '../../components/bank/apply/org-form'
import PersonalInfoForm from '../../components/bank/apply/personal-form'
import AlertModal from '../../components/bank/apply/alert-modal'
import { geocode } from '../../lib/bank/apply/address-validation'
import Progress from '../../components/hcb/apply/progress'
import NavButton from '../../components/hcb/apply/nav-button'
import Watermark from '../../components/hcb/apply/watermark'
import FormContainer from '../../components/hcb/apply/form-container'
import HCBInfo from '../../components/hcb/apply/hcb-info'
import OrganizationInfoForm from '../../components/hcb/apply/org-form'
import PersonalInfoForm from '../../components/hcb/apply/personal-form'
import AlertModal from '../../components/hcb/apply/alert-modal'
import { geocode } from '../../lib/hcb/apply/address-validation'
const valiadateAddress = async step => {
// Validate the address
@ -80,7 +80,7 @@ export default function Apply() {
return (
<>
<Meta as={Head} title="Apply for Hack Club Bank" />
<Meta as={Head} title="Apply for HCB" />
<ForceTheme theme="dark" />
<Box
@ -102,14 +102,14 @@ export default function Apply() {
<Text variant="title">
Let's get you
<br />
set up on Bank.
set up on HCB.
</Text>
<Progress />
</FlexCol>
</Box>
<Box sx={{ gridArea: 'form', overflowY: 'auto' }}>
<FormContainer ref={formContainer}>
{step === 1 && <BankInfo />}
{step === 1 && <HCBInfo />}
{step === 2 && (
<OrganizationInfoForm requiredFields={requiredFields} />
)}

View file

@ -16,9 +16,7 @@ import Footer from '../../../components/footer'
import MSparkles from '../../../components/sparkles/money'
import { Text, Button, Card } from 'theme-ui'
import Icon from '@hackclub/icons'
import OrganizationCard, {
Badge
} from '../../../components/bank/directory/card'
import OrganizationCard, { Badge } from '../../../components/hcb/directory/card'
import Zoom from 'react-reveal/Zoom'
import fuzzysort from 'fuzzysort'
import ScrollHint from '../../../components/scroll-hint'
@ -27,7 +25,7 @@ import { useEffect, useState } from 'react'
import NextLink from 'next/link'
import { kebabCase, intersection } from 'lodash'
import theme from '@hackclub/theme'
import Tooltip from '../../../components/bank/tooltip'
import Tooltip from '../../../components/hcb/tooltip'
const styles = `
html {
@ -87,27 +85,26 @@ tags.__proto__.forOrg = function (org) {
return this.filter(tag => tag.match?.(org))
}
export const regions = [
{
label: 'North America',
color: 'secondary',
iconColor: 'red',
icon: 'photo',
image: 'https://cloud-cberabu5z-hack-club-bot.vercel.app/3north_america.png',
ogImage: 'https://cloud-p9tu92fwx-hack-club-bot.vercel.app/3northamerica.png'
image:
'https://cloud-cberabu5z-hack-club-bot.vercel.app/3north_america.png',
ogImage:
'https://cloud-p9tu92fwx-hack-club-bot.vercel.app/3northamerica.png'
},
{
label: 'South America',
color: 'secondary',
iconColor: 'orange',
icon: 'photo',
image: 'https://cloud-cberabu5z-hack-club-bot.vercel.app/4south_america.png',
ogImage: 'https://cloud-p9tu92fwx-hack-club-bot.vercel.app/4southamerica.png'
image:
'https://cloud-cberabu5z-hack-club-bot.vercel.app/4south_america.png',
ogImage:
'https://cloud-p9tu92fwx-hack-club-bot.vercel.app/4southamerica.png'
},
{
label: 'Africa',
@ -132,7 +129,8 @@ export const regions = [
icon: 'explore',
image:
'https://cloud-oax3m4v0t-hack-club-bot.vercel.app/0asia___oceania.png',
ogImage: 'https://cloud-p9tu92fwx-hack-club-bot.vercel.app/1asia_oceania.png'
ogImage:
'https://cloud-p9tu92fwx-hack-club-bot.vercel.app/1asia_oceania.png'
}
]
@ -352,7 +350,7 @@ const RegionPanel = ({ currentRegion, mobile }) => {
display: hiddenOnMobile ? 'none' : 'flex'
}}
>
<NextLink scroll={false} href={'/bank/climate'}>
<NextLink scroll={false} href={'/hcb/climate'}>
<Flex
sx={{
alignItems: 'center',
@ -405,7 +403,7 @@ const RegionPanel = ({ currentRegion, mobile }) => {
<NextLink
key={idx}
scroll={false}
href={`/bank/climate/organizations-in-${kebabCase(item.label)}`}
href={`/hcb/climate/organizations-in-${kebabCase(item.label)}`}
>
<Flex
sx={{
@ -487,7 +485,7 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
const region = pageRegion
// useEffect(() => {
// // history.pushState(null, null, `/bank/climate/organizations-in-${region.toLowerCase().split(' ').join('-')}`);
// // history.pushState(null, null, `/hcb/climate/organizations-in-${region.toLowerCase().split(' ').join('-')}`);
// }, [region]);
const [modalOrganization, setModalOrganization] = useState(null)
@ -496,7 +494,7 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
if (e.key === 'Escape') {
closeModal()
}
};
}
window.addEventListener('keydown', handle)
return () => window.removeEventListener('keydown', handle)
@ -529,14 +527,17 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
as={Head}
title={
'Climate-focused nonprofits' +
(region ? ` in ${region.label}` : ' on Hack Club Bank')
(region ? ` in ${region.label}` : ' on HCB')
}
description={
'Nonprofits are making real environmental impact' +
(region ? ` in ${region.label}` : '') +
" with Hack Club Bank's fiscal sponsorship and financial tools. Explore the climate efforts running on Hack Club Bank."
" with HCB's fiscal sponsorship and financial tools. Explore the climate efforts running on HCB."
}
image={
region?.ogImage ??
'https://cloud-gv8bzwz6z-hack-club-bot.vercel.app/0frame_14__1_.png'
}
image={region?.ogImage ?? "https://cloud-gv8bzwz6z-hack-club-bot.vercel.app/0frame_14__1_.png"}
/>
<style>{styles}</style>
{modalOrganization && (
@ -568,18 +569,20 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
e.stopPropagation()
}}
>
<Flex sx={{
position: 'absolute',
top: '10px',
right: '10px',
width: '40px',
height: '40px',
bg: 'smoke',
borderRadius: '50%',
justifyContent: 'center',
alignItems: 'center',
cursor: 'pointer'
}}>
<Flex
sx={{
position: 'absolute',
top: '10px',
right: '10px',
width: '40px',
height: '40px',
bg: 'smoke',
borderRadius: '50%',
justifyContent: 'center',
alignItems: 'center',
cursor: 'pointer'
}}
>
<Icon glyph="view-close" size={32} onClick={closeModal} />
</Flex>
<Flex sx={{ flexDirection: 'column', alignItems: 'start', gap: 3 }}>
@ -738,50 +741,54 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
gap: 1
}}
>
{modalOrganization.links.website && <Flex
as="a"
target="_blank"
href={modalOrganization.links.website}
sx={{
flexDirection: 'row',
justifyContent: 'start',
alignItems: 'center',
color: 'slate',
textDecoration: 'none'
}}
>
<Icon glyph="web" size={38} />
<Text style={{ fontSize: '20px', marginLeft: '6px' }}>
Website
</Text>
<Icon
glyph="external"
size={20}
style={{ marginLeft: '2px', marginBottom: '6px' }}
/>
</Flex>}
{modalOrganization.links.financials && <Flex
as="a"
target="_blank"
href={modalOrganization.links.financials}
sx={{
flexDirection: 'row',
justifyContent: 'start',
alignItems: 'center',
color: 'slate',
textDecoration: 'none'
}}
>
<Icon glyph="explore" size={38} />
<Text style={{ fontSize: '20px', marginLeft: '6px' }}>
Transparent Finances
</Text>
<Icon
glyph="external"
size={20}
style={{ marginLeft: '2px', marginBottom: '6px' }}
/>
</Flex>}
{modalOrganization.links.website && (
<Flex
as="a"
target="_blank"
href={modalOrganization.links.website}
sx={{
flexDirection: 'row',
justifyContent: 'start',
alignItems: 'center',
color: 'slate',
textDecoration: 'none'
}}
>
<Icon glyph="web" size={38} />
<Text style={{ fontSize: '20px', marginLeft: '6px' }}>
Website
</Text>
<Icon
glyph="external"
size={20}
style={{ marginLeft: '2px', marginBottom: '6px' }}
/>
</Flex>
)}
{modalOrganization.links.financials && (
<Flex
as="a"
target="_blank"
href={modalOrganization.links.financials}
sx={{
flexDirection: 'row',
justifyContent: 'start',
alignItems: 'center',
color: 'slate',
textDecoration: 'none'
}}
>
<Icon glyph="explore" size={38} />
<Text style={{ fontSize: '20px', marginLeft: '6px' }}>
Transparent Finances
</Text>
<Icon
glyph="external"
size={20}
style={{ marginLeft: '2px', marginBottom: '6px' }}
/>
</Flex>
)}
</Flex>
</Flex>
{/* desktop stats */}
@ -951,24 +958,47 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
viewBox="0 0 512 512"
>
<img
src="/bank/climate/earth-on-bank.svg"
src="/hcb/climate/earth-on-hcb.svg"
alt=""
height="82px"
/>
</MSparkles>
</Flex>
Climate-focused nonprofits on{' '}
<span sx={{ whiteSpace: 'nowrap' }}>Hack Club Bank</span>
{region ? <>
{' '}in
<span sx={{ display: ['none', 'inline'], whiteSpace: 'nowrap', bg: region.iconColor, pl: 3, pr: 18, mx: -1, borderRadius: 8, textShadow: 'none', ml: 2 }}>
<img src={region.image} alt="" sx={{ mr: 3, height: [30, 42, 42, 64] }} />
{region.label}
</span>
<span sx={{ display: ['inline', 'none'], whiteSpace: 'nowrap' }}>
{' ' + region.label}
</span>
</> : ''}
<span sx={{ whiteSpace: 'nowrap' }}>HCB</span>
{region ? (
<>
{' '}
in
<span
sx={{
display: ['none', 'inline'],
whiteSpace: 'nowrap',
bg: region.iconColor,
pl: 3,
pr: 18,
mx: -1,
borderRadius: 8,
textShadow: 'none',
ml: 2
}}
>
<img
src={region.image}
alt=""
sx={{ mr: 3, height: [30, 42, 42, 64] }}
/>
{region.label}
</span>
<span
sx={{ display: ['inline', 'none'], whiteSpace: 'nowrap' }}
>
{' ' + region.label}
</span>
</>
) : (
''
)}
</Heading>
<Box
sx={{
@ -979,9 +1009,9 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
mx: 'auto'
}}
>
Nonprofits are making real environmental impact with Hack Club
Bank's fiscal sponsorship and financial tools. Explore the climate
efforts running on Hack Club Bank.
Nonprofits are making real environmental impact with HCB's fiscal
sponsorship and financial tools. Explore the climate efforts
running on HCB.
</Box>
<Button
variant="ctaLg"
@ -1084,16 +1114,23 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
/>
</Box>
{organizations.length === 0 && (
<Box sx={{
textAlign: 'center',
p: 5
}}>
<Box
sx={{
textAlign: 'center',
p: 5
}}
>
<Box>
<Text variant="headline" sx={{
textTransform: 'unset',
display: 'block',
mb: 0
}}>No results</Text>
<Text
variant="headline"
sx={{
textTransform: 'unset',
display: 'block',
mb: 0
}}
>
No results
</Text>
</Box>
</Box>
)}
@ -1168,13 +1205,13 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
}}
>
Let your money work for change by donating to all climate-focused
nonprofits on Hack Club Bank. Donate to 128 Collectives curated
list of recommended organizations.
nonprofits on HCB. Donate to 128 Collectives curated list of
recommended organizations.
</Box>
<Button
variant="ctaLg"
as="a"
href="https://bank.hackclub.com/donations/start/128-collective-fund"
href="https://hcb.hackclub.com/donations/start/128-collective-fund"
target="_blank"
sx={{
ml: [0, 3],
@ -1182,11 +1219,7 @@ export default function ClimatePage({ rawOrganizations, pageRegion }) {
backgroundImage: t => t.util.gx('green', 'blue')
}}
>
<Text>
Donate to{' '}
the{' '}
climate&nbsp;fund
</Text>
<Text>Donate to the climate&nbsp;fund</Text>
</Button>
</Box>
</Box>
@ -1322,7 +1355,7 @@ export class Organization {
if (this.acceptsDonations) links.donations = this.raw.donation_link
if (this.isTransparent)
links.financials = `https://bank.hackclub.com/${this.slug}`
links.financials = `https://hcb.hackclub.com/${this.slug}`
return links
}
@ -1377,7 +1410,7 @@ export async function fetchRawClimateOrganizations() {
let page = 1
while (lastLength >= 100) {
const json = await fetch(
'https://bank.hackclub.com/api/v3/directory/organizations?per_page=100&page=' +
'https://hcb.hackclub.com/api/v3/directory/organizations?per_page=100&page=' +
page
).then(res => res.json())
lastLength = json.length

View file

@ -15,11 +15,11 @@ import ForceTheme from '../../components/force-theme'
import Nav from '../../components/nav'
import Footer from '../../components/footer'
import Icon from '../../components/icon'
import Features from '../../components/bank/first/features'
import Features from '../../components/hcb/first/features'
import Form from '../../components/bank/first/form'
import Testimonials from '../../components/bank/first/testimonials'
import Steps from '../../components/bank/first/steps'
import Form from '../../components/hcb/first/form'
import Testimonials from '../../components/hcb/first/testimonials'
import Steps from '../../components/hcb/first/steps'
import theme from '@hackclub/theme'
export default function First() {
@ -33,10 +33,10 @@ export default function First() {
<Meta
as={Head}
title="Finanical Toolkit for FIRST Teams"
description="Hack Club Bank is the ultimate financial tool for FRC, FTC, and FLL teams to receive grants, fundraise, make purchases, and so much more."
image="/bank/first/og-image.png"
description="HCB is the ultimate financial tool for FRC, FTC, and FLL teams to receive grants, fundraise, make purchases, and so much more."
image="/hcb/first/og-image.png"
>
<title>Financial Toolkit for FIRST Teams Hack Club Bank</title>
<title>Financial Toolkit for FIRST Teams | HCB</title>
</Meta>
<Box as="main" key="main" sx={{ mb: 6 }}>
@ -143,9 +143,9 @@ export default function First() {
}}
variant="copy"
>
Built by <i>FIRST</i> alumni for <i>FIRST</i> teams, Hack Club
Bank is a comprehensive financial platform used by hundreds of
clubs, teams and hackathons.
Built by <i>FIRST</i> alumni for <i>FIRST</i> teams, HCB is a
comprehensive financial platform used by hundreds of clubs, teams
and hackathons.
</Container>
<Box
@ -168,7 +168,7 @@ export default function First() {
}}
variant="ctaLg"
as="a"
href="/bank/first/Hack_Club_Bank_for_FIRST_Teams.pdf"
href="/hcb/first/Hack_Club_Bank_for_FIRST_Teams.pdf"
// @exu3: to edit this PDF, use this Figma file https://www.figma.com/file/LgadOH1lHUBOejA3vaNGgm/Hack-Club-Bank-for-FIRST-Teams-One-Pager?node-id=0%3A1&t=ZtkN2a3aw2IojFvi-1
// message me on Slack if you need edit access
target="_blank"

View file

@ -243,9 +243,9 @@ export default function FiscalSponsorship() {
as={Head}
title="Fiscal Sponsorship"
description="What is fiscal sponsorship?"
image="/bank/og-image.png"
image="/hcb/og-image.png"
>
<title>Fiscal Sponsorship Hack&nbsp;Club&nbsp;Bank</title>
<title>Fiscal Sponsorship | HCB</title>
</Meta>
<Container sx={{ textAlign: 'center', mt: 6 }}>
@ -283,7 +283,7 @@ export default function FiscalSponsorship() {
Requirements for fiscal sponsorship
</Link>
<Link sx={{ fontSize: 2 }} href="#partner">
Hack Club Bank, the #1 fiscal sponsor
HCB, the #1 fiscal sponsor
</Link>
</BulletBox>
</FlexCol>
@ -413,12 +413,10 @@ export default function FiscalSponsorship() {
</Section>
<Section id="partner">
<Text variant="title">
Hack&nbsp;Club&nbsp;Bank, the #1 fiscal sponsor
</Text>
<Text variant="title">HCB, the #1 fiscal sponsor</Text>
<Text variant="lead">
While many fiscal sponsors require that their partners relate to
their mission in similar ways, at Hack Club Bank, weve built our
their mission in similar ways, at HCB, weve built our
infrastructure to support hundreds of causes in all areas of
charitability.
</Text>
@ -437,8 +435,8 @@ export default function FiscalSponsorship() {
A customizable and embeddable donations URL
</Bullet>
<Bullet icon="card-add">
A bank account and routing number to connect to external
platforms, like Shopify and GoFundMe
A fun and routing number to connect to external platforms, like
Shopify and GoFundMe
</Bullet>
<Bullet icon="purse">
Perks like PVSA certification, newsletter software, and
@ -449,18 +447,17 @@ export default function FiscalSponsorship() {
Looking for nonprofit status and not a religious or political
organization? Wed love to meet you and chat about working
together. Feel free to apply
<Link href="https://hackclub.com/bank/#apply"> here </Link>or
<Link href="mailto:bank@hackclub.com"> email our team </Link>if
you have more questions about fiscal sponsorship!
<Link href="https://hackclub.com/hcb/#apply"> here </Link>or
<Link href="mailto:hcb@hackclub.com"> email our team </Link>if you
have more questions about fiscal sponsorship!
</Text>
</Section>
<Text variant="lead">
At its core, Hack Club is a nonprofit encouraging students to learn
how to code by building and making cool things.
Hack&nbsp;Club&nbsp;Bank was built out by teenagers at
Hack&nbsp;Club and continues to be a real-world space that high
schoolers can contribute to every day.
how to code by building and making cool things. HCB was built out by
teenagers at Hack&nbsp;Club and continues to be a real-world space
that high schoolers can contribute to every day.
</Text>
</FlexCol>
</Container>

View file

@ -4,12 +4,12 @@ import Head from 'next/head'
import ForceTheme from '../../components/force-theme'
import Nav from '../../components/nav'
import Footer from '../../components/footer'
import Landing from '../../components/bank/landing'
import Features from '../../components/bank/features'
import Testimonials from '../../components/bank/testimonials'
import Everything from '../../components/bank/everything'
import Start from '../../components/bank/start'
import Nonprofits from '../../components/bank/nonprofits'
import Landing from '../../components/hcb/landing'
import Features from '../../components/hcb/features'
import Testimonials from '../../components/hcb/testimonials'
import Everything from '../../components/hcb/everything'
import Start from '../../components/hcb/start'
import Nonprofits from '../../components/hcb/nonprofits'
const styles = `
html {
@ -34,10 +34,10 @@ export default function Bank({ stats }) {
<Meta
as={Head}
title="Fiscal Sponsorship"
description="Hack Club Bank is the largest fiscal sponsor of teen-led organizations in the US. Get a 501(c)(3) status-backed fund optimized for events, nonprofits, and more."
image="/bank/og-image.png"
description="HCB is the largest fiscal sponsor of teen-led organizations in the US. Get a 501(c)(3) status-backed fund optimized for events, nonprofits, and more."
image="/hcb/og-image.png"
>
<title>Fiscal Sponsorship Hack Club Bank</title>
<title>Fiscal Sponsorship HCB</title>
</Meta>
<style>{styles}</style>
<Box>
@ -59,7 +59,7 @@ export default function Bank({ stats }) {
}
export async function getStaticProps(context) {
const res = await fetch(`https://bank.hackclub.com/stats`)
const res = await fetch(`https://hcb.hackclub.com/stats`)
const stats = await res.json()
return {

View file

@ -77,14 +77,14 @@ export default function ApplicationSuccess() {
>
<FlexCol gap={4} alignItems="center">
<Image
src="/bank/apply/party-orpheus.svg"
src="/hcb/apply/party-orpheus.svg"
alt="Dinosaur partying"
sx={{ width: '40%' }}
/>
<FlexCol gap={2}>
<Text variant="title">Thanks for applying!</Text>
<Text variant="lead">
Head on over to Bank and explore the dashboard
Head on over to HCB and explore the dashboard
</Text>
</FlexCol>
</FlexCol>
@ -101,30 +101,26 @@ export default function ApplicationSuccess() {
gap: [3, null, 0]
}}
>
<Option icon="email" label="Mail" link="mailto:bank@hackclub.com">
bank@hackclub.com
<Option icon="email" label="Mail" link="mailto:hcb@hackclub.com">
hcb@hackclub.com
</Option>
<Option
icon="slack"
label="Slack"
link="https://hackclub.slack.com/channels/bank"
link="https://hackclub.slack.com/channels/hcb"
>
#bank
#hcb
</Option>
<Option
icon="help"
label="FAQ"
link="https://bank.hackclub.com/faq"
>
<Option icon="help" label="FAQ" link="https://hcb.hackclub.com/faq">
FAQ
</Option>
</Flex>
</FlexCol>
<Button as="a" href="https://bank.hackclub.com">
<Button as="a" href="https://hcb.hackclub.com">
<Flex sx={{ alignItems: 'center', px: [2, null, 3], py: 2 }}>
<Icon glyph="bank-account" size={36} />
<Text sx={{ fontSize: 3 }}>Head to Bank!</Text>
<Text sx={{ fontSize: 3 }}>Head to HCB!</Text>
</Flex>
</Button>
</FlexCol>

View file

@ -24,7 +24,7 @@ import Sinerider from '../components/index/cards/sinerider'
import SprigConsole from '../components/index/cards/sprig-console'
import Clubs from '../components/index/cards/clubs'
import Workshops from '../components/index/cards/workshops'
import Bank from '../components/index/cards/bank'
import HCB from '../components/index/cards/hcb'
import Hackathons from '../components/index/cards/hackathons'
import OuternetImgFile from '../public/home/outernet-110.jpg'
import Announcement from '../components/announcement'
@ -841,7 +841,7 @@ function Page({
stars={stars.hackathons.stargazerCount}
/>
{/* <Events events={events} /> */}
<Bank data={bankData} />
<HCB data={bankData} />
</Box>
</Box>
</Box>
@ -1103,7 +1103,7 @@ export async function getStaticProps() {
// HCB: get total raised
let bankData = []
let initialBankData = await fetch('https://bank.hackclub.com/stats').then(r =>
let initialBankData = await fetch('https://hcb.hackclub.com/stats').then(r =>
r.json()
)
let raised = initialBankData.raised / 100

View file

@ -2,16 +2,16 @@ import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/bank-ops-associate/jd.mdx'
import JobDescription from '../../components/jobs/hcb-ops-associate/jd.mdx'
import ForceTheme from '../../components/force-theme'
const Page = () => (
<>
<Meta
as={Head}
title="Bank Operations Associate"
description="Hack Club is a hiring a Bank Operations Associate as the 8th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Bank%20Ops%20Associate%20%40%20Hack%20Club.png?fontSize=175px&brand=HQ"
title="HCB Operations Associate"
description="Hack Club is a hiring a HCB Operations Associate as the 8th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/hcb%20Ops%20Associate%20%40%20Hack%20Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
@ -25,7 +25,7 @@ const Page = () => (
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Bank Operations Associate
HCB Operations Associate
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of May 21st, 2021.

View file

@ -2,16 +2,16 @@ import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/bank-ops-lead/jd.mdx'
import JobDescription from '../../components/jobs/hcb-ops-lead/jd.mdx'
import ForceTheme from '../../components/force-theme'
const Page = () => (
<>
<Meta
as={Head}
title="Bank Operations Lead"
description="Hack Club is a hiring a Bank Operations Lead as the 7th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Bank%20Ops%20Lead%20%40%20Hack%20Club.png?fontSize=175px&brand=HQ"
title="HCB Operations Lead"
description="Hack Club is a hiring a HCB Operations Lead as the 7th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/hcb%20Ops%20Lead%20%40%20Hack%20Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
@ -25,7 +25,7 @@ const Page = () => (
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Bank Operations Lead
HCB Operations Lead
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
Closed as of March 5th, 2021.

View file

@ -11,7 +11,7 @@ const Page = () => (
<Meta
as={Head}
title="Lead Hacker"
description="Hack Club is a hiring a Lead Hacker for Hack Club Bank as the 9th full-time member of our team in Burlington, Vermont."
description="Hack Club is a hiring a Lead Hacker for HCB as the 9th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Lead%20Hacker.png?theme=light&md=1&fontSize=250px&caption=Open%2520Role%2520%2540%2520Hack%2520Club%2520Bank&brand=HQ&md=true"
/>
<ForceTheme theme="light" />
@ -27,7 +27,7 @@ const Page = () => (
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Lead Hacker @&nbsp;Hack&nbsp;Club Bank
Lead Hacker @&nbsp;HCB
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
This position has been filled as of June 14th, 2022.
@ -46,20 +46,20 @@ const Page = () => (
variant="headline"
sx={{ fontWeight: 700, fontSize: [4, 5], mb: 4 }}
>
Hack Club is (no longer) hiring a Lead Hacker for Hack Club Bank.
Hack Club is (no longer) hiring a Lead Hacker for HCB.
</Heading>
<Text as="p" mb={4}>
Starting a nonprofit is hard, so we built{' '}
<Link href="/bank" target="_blank">
Hack Club Bank
<Link href="/hcb" target="_blank">
HCB
</Link>{' '}
for our community of {formatted}+ teenage programmers. Within 24 hours
of joining Bank, organizations get 501(c)(3) nonprofit status, access to
of joining HCB, organizations get 501(c)(3) nonprofit status, access to
a beautiful dashboard for managing their finances, and all financial and
legal matters - from tax filings to payroll - handled. 50% of high
school hackathons worldwide run on Hack Club Bank, and Elon Musk has
tweeted that we're a{' '}
school hackathons worldwide run on HCB, and Elon Musk has tweeted that
we're a{' '}
<Link
href="https://twitter.com/elonmusk/status/1263275969743216640"
target="_blank"
@ -71,9 +71,9 @@ const Page = () => (
</Text>
<Text as="p" mb={4}>
Now, Hack Club Bank is expanding beyond just Hack Clubbers.{' '}
Now, HCB is expanding beyond just Hack Clubbers.{' '}
<strong>
Over 500 organizations running on Bank have transacted upwards of
Over 500 organizations running on HCB have transacted upwards of
$5,000,000;
</strong>{' '}
from teenage-run hackathons to{' '}
@ -88,11 +88,11 @@ const Page = () => (
</Text>
<Text as="p">
With the right leadership, we hope to bring Hack Club Bank to thousands
of organizations across the United States and process tens of millions
of dollars in transactions. We think do-gooders need the same tools that
software engineers do. For them, Bank is like GitHub: transformative.
Right now, Bank is the{' '}
With the right leadership, we hope to bring HCB to thousands of
organizations across the United States and process tens of millions of
dollars in transactions. We think do-gooders need the same tools that
software engineers do. For them, HCB is like GitHub: transformative.
Right now, HCB is the{' '}
<strong>
only part of Hack Club that isn't{' '}
<Link
@ -185,41 +185,41 @@ const Page = () => (
variant="headline"
sx={{ fontWeight: 700, fontSize: [4, 5], mb: 4 }}
>
Make Bank even more awesome.
Make HCB even more awesome.
</Heading>
<Box sx={{ p: { my: [3, 4] } }}>
<Text as="p">
Bank has been maintained by a{' '}
HCB has been maintained by a{' '}
<Link href="/team/" target="_blank">
{' '}
small team
</Link>{' '}
of two full-time operations people, and on-and-off contributions by
engineers and various contractors. The majority of{' '}
<Link href="https://changelog.bank.hackclub.com/" target="_blank">
<Link href="https://changelog.hcb.hackclub.com/" target="_blank">
contributions
</Link>{' '}
are actually made by teenagers! In this role, you'll take point on
bringing Bank to its full potential.
bringing HCB to its full potential.
</Text>
<Text as="p">
Hack Club Bank already powers{' '}
<Link href="https://bank.hackclub.com/hq" target="_blank">
HCB already powers{' '}
<Link href="https://hcb.hackclub.com/hq" target="_blank">
our own transparent finances
</Link>{' '}
as well as those of{' '}
<Link
href="https://bank.hackclub.com/miami-hack-week/"
href="https://hcb.hackclub.com/miami-hack-week/"
target="_blank"
>
many
</Link>{' '}
<Link href="https://bank.hackclub.com/mesto/" target="_blank">
<Link href="https://hcb.hackclub.com/mesto/" target="_blank">
other
</Link>{' '}
<Link href="https://bank.hackclub.com/techshift/" target="_blank">
<Link href="https://hcb.hackclub.com/techshift/" target="_blank">
organizations
</Link>
. These are just some of the initiatives we support:
@ -283,11 +283,11 @@ const Page = () => (
</Grid>
<Text as="p">
Like a CTO, you'll work directly with real users to define Bank's
roadmap around <strong>making Bank better for Hack Clubbers.</strong>{' '}
Like a CTO, you'll work directly with real users to define HCB's
roadmap around <strong>making HCB better for Hack Clubbers.</strong>{' '}
You will build and lead a team of Hack Clubbers to create a shipping
culture around Bank, and lead and manage relationships with technical
partners who integrate Bank into their products.
culture around HCB, and lead and manage relationships with technical
partners who integrate HCB into their products.
</Text>
<Text as="p">
@ -306,9 +306,9 @@ const Page = () => (
>
jobs@hackclub.com
</Link>{' '}
with "Hack Club Bank" in the subject line, 3 bullet points
demonstrating why you would be exceptional for the role, and your
resume / GitHub / GitLab / sourcehut.
with "HCB" in the subject line, 3 bullet points demonstrating why you
would be exceptional for the role, and your resume / GitHub / GitLab /
sourcehut.
</Box>
</Box>

View file

@ -543,14 +543,49 @@ const ShipPage = () => {
</Flex>
</Box>
<Flex as="section" sx={{ px: 4, pt: 6, pb: 4, bg: dimBg, color: '#ffffff', justifyContent: 'center' }}>
<Flex sx={{ flexDirection: 'column', gap: 4, width: '100%', maxWidth: 'copyPlus' }}>
<Heading as="h2" sx={{ fontSize: 42, fontWeight: 500, borderTop: '4px solid', borderTopColor: 'red', pt: 4 }}>
<Balancer ratio={0.3}>Never made a circuit board before? No problem.</Balancer>
<Flex
as="section"
sx={{
px: 4,
pt: 6,
pb: 4,
bg: dimBg,
color: '#ffffff',
justifyContent: 'center'
}}
>
<Flex
sx={{
flexDirection: 'column',
gap: 4,
width: '100%',
maxWidth: 'copyPlus'
}}
>
<Heading
as="h2"
sx={{
fontSize: 42,
fontWeight: 500,
borderTop: '4px solid',
borderTopColor: 'red',
pt: 4
}}
>
<Balancer ratio={0.3}>
Never made a circuit board before? No problem.
</Balancer>
</Heading>
<Text sx={{ fontSize: 3 }}>
Learn how to design your own circuit boards from scratch with our <strong>official tutorials</strong> and jams, like Maggies <Link href="https://hack.af/pcb-jam" target="_blank">intro to PCB design jam</Link>. Ask in the{' '}
<Link href={slackLink} target="_blank">Hack Club Slack</Link>{' '}
Learn how to design your own circuit boards from scratch with our{' '}
<strong>official tutorials</strong> and jams, like Maggies{' '}
<Link href="https://hack.af/pcb-jam" target="_blank">
intro to PCB design jam
</Link>
. Ask in the{' '}
<Link href={slackLink} target="_blank">
Hack Club Slack
</Link>{' '}
if you have any questions!
</Text>
</Flex>
@ -654,7 +689,8 @@ const ShipPage = () => {
>
<Flex as="article">
<Text as="p" sx={{ pr: 100 }}>
A <strong>movement sensor</strong> add-on to an open source <strong>game console</strong>.
A <strong>movement sensor</strong> add-on to an open source{' '}
<strong>game console</strong>.
</Text>
<Text as="p" sx={{ pr: 140, color: 'gray' }}>
Read the source&nbsp;<span className="arrow">&rarr;</span>
@ -700,10 +736,14 @@ const ShipPage = () => {
</Flex>
</a>
<a href="https://github.com/hackclub/OnBoard/tree/main/projects/Karmanyaah_Longhorn_LEDs" target="_blank">
<a
href="https://github.com/hackclub/OnBoard/tree/main/projects/Karmanyaah_Longhorn_LEDs"
target="_blank"
>
<Flex as="article">
<Text as="p" sx={{ pr: 140 }}>
Karmanyaah's <strong>digital level</strong> in the shape of a longhorn.
Karmanyaah's <strong>digital level</strong> in the shape of a
longhorn.
</Text>
<Text as="p" sx={{ pr: 140, color: 'gray' }}>
See the designs&nbsp;<span className="arrow">&rarr;</span>
@ -904,7 +944,12 @@ const ShipPage = () => {
Collaborate, get help, and support others as you take the leap.
</Text>
<Box sx={{ mt: 1 }}>
<Button variant="outlineLg" as="a" href={slackLink} target="_blank">
<Button
variant="outlineLg"
as="a"
href={slackLink}
target="_blank"
>
Join Slack
</Button>
</Box>
@ -951,7 +996,7 @@ const ShipPage = () => {
<Grid
ref={lightsScrollTrigger}
gap={["2px", "3px", "4px"]}
gap={['2px', '3px', '4px']}
columns={recapWidth}
sx={{ width: '100%', maxWidth: 800 }}
>
@ -1003,11 +1048,17 @@ const ShipPage = () => {
</Button>
</Flex>
<Flex as="article" sx={{
transform: 'scale(1.1)'
}}>
<Flex
as="article"
sx={{
transform: 'scale(1.1)'
}}
>
<Text as="h3">Learn to PCB</Text>
<Text as="p">Read our Hacker Card tutorial to learn how to make a simple circuit board from start to end.</Text>
<Text as="p">
Read our Hacker Card tutorial to learn how to make a simple
circuit board from start to end.
</Text>
<Button as="a" href="https://hack.af/pcb-jam" target="_blank">
Start the Tutorial
</Button>
@ -1041,44 +1092,51 @@ const ShipPage = () => {
/>
<Flex
as="a"
href="https://airtable.com/shrOOU2ZZFYtffUVz"
target="_blank"
sx={{
bg: '#ff0000',
color: 'rgba(255, 255, 255, 0.7)',
textDecoration: 'none',
size: 160,
flexDirection: 'column',
textAlign: 'center',
justifyContent: 'center',
alignItems: 'center',
position: 'absolute',
top: -80,
right: '14vw',
fontSize: '24px',
lineHeight: 1.2,
fontWeight: 'bold',
fontFamily: `'${stickerButtonFont}', cursive`,
transform: 'rotate(-25deg)',
borderRadius: '50%',
as="a"
href="https://airtable.com/shrOOU2ZZFYtffUVz"
target="_blank"
sx={{
bg: '#ff0000',
color: 'rgba(255, 255, 255, 0.7)',
textDecoration: 'none',
size: 160,
flexDirection: 'column',
textAlign: 'center',
justifyContent: 'center',
alignItems: 'center',
position: 'absolute',
top: -80,
right: '14vw',
fontSize: '24px',
lineHeight: 1.2,
fontWeight: 'bold',
fontFamily: `'${stickerButtonFont}', cursive`,
transform: 'rotate(-25deg)',
borderRadius: '50%',
// Terrible buttons styles, doesn't even look good, but didn't want to waste more time:
backgroundImage: 'radial-gradient(75.96% 56.13% at 50.00% 50.00%, #FF6464 0%, #EF2222 32.29%, #B00 100%)',
boxShadow: '0px -14px 14px 0px #670000 inset, 14px 0px 14px 0px rgba(255, 255, 255, 0.25) inset, 0px 14px 14px 0px rgba(255, 255, 255, 0.25) inset, -14px 0px 14px 0px #670000 inset',
backgroundImage:
'radial-gradient(75.96% 56.13% at 50.00% 50.00%, #FF6464 0%, #EF2222 32.29%, #B00 100%)',
boxShadow:
'0px -14px 14px 0px #670000 inset, 14px 0px 14px 0px rgba(255, 255, 255, 0.25) inset, 0px 14px 14px 0px rgba(255, 255, 255, 0.25) inset, -14px 0px 14px 0px #670000 inset',
filter: 'drop-shadow(3px 3px 8px rgba(0, 0, 0, 0.50))',
textShadow: '0px 0px 2px rgba(255, 255, 255, 0.45)',
WebkitTapHighlightColor: 'transparent',
'transition': 'box-shadow 80ms linear, filter 80ms linear, font-size 80ms linear',
transition:
'box-shadow 80ms linear, filter 80ms linear, font-size 80ms linear',
':active': {
backgroundImage: 'radial-gradient(75.96% 56.13% at 50.00% 50.00%, #FF4747 0%, #E52121 32.29%, #B00 100%, #A30101 100%)',
boxShadow: '0px -14px 14px 0px #440303 inset, 14px 0px 14px 0px #860000 inset, 0px 14px 14px 0px #860000 inset, -14px 0px 14px 0px #440303 inset',
backgroundImage:
'radial-gradient(75.96% 56.13% at 50.00% 50.00%, #FF4747 0%, #E52121 32.29%, #B00 100%, #A30101 100%)',
boxShadow:
'0px -14px 14px 0px #440303 inset, 14px 0px 14px 0px #860000 inset, 0px 14px 14px 0px #860000 inset, -14px 0px 14px 0px #440303 inset',
filter: 'drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.50))',
fontSize: '22px'
}
}}
>
{stickerButtonText.split(' ').map((line, i) => <div key={i}>{line}</div>)}
</Flex>
}}
>
{stickerButtonText.split(' ').map((line, i) => (
<div key={i}>{line}</div>
))}
</Flex>
</Box>
<Footer dark />

View file

@ -106,14 +106,14 @@ const Page = ({ repos, transparentAccounts }) => (
Finances
</Heading>
<Text sx={{ fontSize: 2, color: 'placeholder' }}>
All open sourced through Hack Club Bank Transparency Mode.
All open sourced through HCB Transparency Mode.
</Text>
<Grid columns={2} gap={3} mt={2} mb={[4]}>
{transparentAccounts.map(account => (
<BankProject
key={account.id}
name={account.name}
url={`https://bank.hackclub.com/${account.slug}`}
url={`https://hcb.hackclub.com/${account.slug}`}
/>
))}
</Grid>
@ -152,10 +152,7 @@ const Page = ({ repos, transparentAccounts }) => (
Content
</Heading>
<Grid columns={3} gap={3} mt={2} mb={[4]}>
<BankProject
name="Jams"
url={`https://github.com/hackclub/jams`}
/>
<BankProject name="Jams" url={`https://github.com/hackclub/jams`} />
<BankProject
name="Workshops"
url={`https://github.com/hackclub/hackclub/tree/main/workshops`}
@ -250,7 +247,7 @@ export async function getStaticProps() {
})
const transparentAccounts = (
await fetch('https://bank.hackclub.com/api/v3/organizations').then(res =>
await fetch('https://hcb.hackclub.com/api/v3/organizations').then(res =>
res.json()
)
).filter(account => account.category?.replaceAll(' ', '_') === 'hack_club_hq')

View file

@ -351,7 +351,7 @@ const Philanthropy = ({ posts = [] }) => {
my={3}
sx={{ width: ['100%', 'auto'] }}
as="a"
href="https://bank.hackclub.com/donations/start/hq"
href="https://hcb.hackclub.com/donations/start/hq"
>
Donate
<Text sx={{ display: ['none', 'inline-block'], ml: 2 }}>
@ -416,7 +416,7 @@ const Philanthropy = ({ posts = [] }) => {
my={3}
sx={{ width: ['100%', 'auto'] }}
as="a"
href="https://bank.hackclub.com/donations/start/hq"
href="https://hcb.hackclub.com/donations/start/hq"
>
Donate
<Text sx={{ display: ['none', 'inline-block'], ml: 2 }}>
@ -604,7 +604,7 @@ const Philanthropy = ({ posts = [] }) => {
<Box mt={[2, 3]}>
<Text
as="a"
href="https://bank.hackclub.com/donations/start/hq"
href="https://hcb.hackclub.com/donations/start/hq"
target="_blank"
sx={{
color: '#ec3750',
@ -654,7 +654,7 @@ const Philanthropy = ({ posts = [] }) => {
<Text
as="a"
mt={2}
href="https://bank.hackclub.com/donations/start/hq"
href="https://hcb.hackclub.com/donations/start/hq"
target="_blank"
sx={{
color: '#ec3750',

View file

@ -183,7 +183,7 @@ export default function Donate({ sprig }) {
my={3}
sx={{ width: ['100%', 'auto'] }}
as="a"
href="https://bank.hackclub.com/donations/start/hq"
href="https://hcb.hackclub.com/donations/start/hq"
>
Donate
<Text sx={{ display: ['none', 'inline-block'], ml: 2 }}>

View file

@ -270,7 +270,7 @@ export default function Team() {
as="h3"
sx={{ textAlign: 'center', fontSize: 4 }}
>
Bank Team
HCB Team
</Text>
<Grid
columns={[1, null, 2]}
@ -294,7 +294,7 @@ export default function Team() {
<Bio
name="Caleb Denio"
teamRole="Engineering"
text="Caleb is a New Hampshire-born coder with a passion for music and homemade food. He enjoys building wacky, creative projects, configuring linters, and hanging out in the Hack Club community. At Hack Club Bank, he writes code that makes money go 'cha-ching!'"
text="Caleb is a New Hampshire-born coder with a passion for music and homemade food. He enjoys building wacky, creative projects, configuring linters, and hanging out in the Hack Club community. At HCB, he writes code that makes money go 'cha-ching!'"
img="/team/caleb.jpg"
pronouns="he/him"
/>
@ -308,7 +308,7 @@ export default function Team() {
<Bio
name="Gary Tou"
teamRole="Engineering"
text="Gary is a software engineer from Seattle and loves photography! After using Hack Club Bank to launch a nonprofit organization, Gary joined Hack Club to make the product that enabled him to do great things even greater for others."
text="Gary is a software engineer from Seattle and loves photography! After using HCB to launch a nonprofit organization, Gary joined Hack Club to make the product that enabled him to do great things even greater for others."
img="https://assets.garytou.com/profile/GaryTou.jpg"
pronouns="he/him"
/>
@ -321,18 +321,24 @@ export default function Team() {
<Bio
name="Bence Beres"
teamRole="Bookkeeper"
text="Bence is responsible for keeping accurate financial books for HQ and every org on Hack Club Bank (40,000+ transactions in the last year!)."
text="Bence is responsible for keeping accurate financial books for HQ and every org on HCB (40,000+ transactions in the last year!)."
img="/team/bence.png"
pronouns="he/him"
/>
<Bio
name="Arianna Martinelli"
teamRole="Operations"
text={`Arianna is a Hack Clubber from Kentucky excited about how technology and humans can work together to solve problems. She joined Hack Club in 2020 to start a club at her all-girls high school and to learn from a community of fellow coders, and she joined Hack Club Bank in 2021 to fiscally sponsor her non-profit Tandem. She loves swimming, trees, videography, film photography, reading Joan Didion, Formula 1, making memes, and crafting cards with puns.`}
text={`Arianna is a Hack Clubber from Kentucky excited about how technology and humans can work together to solve problems. She joined Hack Club in 2020 to start a club at her all-girls high school and to learn from a community of fellow coders, and she joined HCB in 2021 to fiscally sponsor her non-profit Tandem. She loves swimming, trees, videography, film photography, reading Joan Didion, Formula 1, making memes, and crafting cards with puns.`}
img="https://cloud-oubklmp6c-hack-club-bot.vercel.app/0arianna_profile_photo.png"
pronouns="she/her"
/>
<Bio
name="Ben Dixon"
teamRole="Engineering"
text={`Coming all the way from drizzly England, Ben reconnected with his adoration for teaching people about programming through the computer graphics demoscene during lockdown; firmly believing “HLSL is basically pseudocode”. At Hack Club, Ben designs and implements snazzy new features at HCB, along with raiding their granola bars.`}
img="https://ca.slack-edge.com/T0266FRGM-U03DFNYGPCN-d76abb1ba329-512"
pronouns="he/him"
/>
</Grid>
</Box>
@ -439,14 +445,14 @@ export default function Team() {
<Bio
name="Kunal Botla"
teamRole="Operations"
text={`Kunal loves to make for making! He started Project Boom to help provide computers, helped build and run Hack Club Bank, and organized MAHacks for a post-pandemic world. He takes photos to tell stories of an ever-changing world.`}
text={`Kunal loves to make for making! He started Project Boom to help provide computers, helped build and run HCB, and organized MAHacks for a post-pandemic world. He takes photos to tell stories of an ever-changing world.`}
img="https://github.com/kunalbotla.png"
pronouns="he/him"
/>
<Bio
name="Ella Xu"
teamRole="Clubs Engineering"
text="Ella joined the Hack Club community after learning about Hack Club Bank from a project running on Bank. Since then, she has contributed to Bank itself in addition to other Hack Club open source projects on GitHub."
text="Ella joined the Hack Club community after learning about HCB from a project running on it. Since then, she has contributed to HCB itself in addition to other Hack Club open source projects on GitHub."
img="https://scrapbook.hackclub.com/ella.png"
pronouns="she/her"
/>
@ -526,7 +532,7 @@ When not busy juggling different tasks he takes up, he enjoys tinkering & buildi
img="/team/matthew.jpg"
name="Matthew Stanciu"
teamRole="Clubs Lead"
text="After leading a successful Hack Club in West Lafayette, Indiana, & organizing multiple hackathons with Hack Club Bank, Matthew joined the team to lead the clubs program. He wrote curriculum, helped mentor club leaders around the world, & in spring 2020 drove across the U.S. to visit clubs."
text="After leading a successful Hack Club in West Lafayette, Indiana, & organizing multiple hackathons with HCB, Matthew joined the team to lead the clubs program. He wrote curriculum, helped mentor club leaders around the world, & in spring 2020 drove across the U.S. to visit clubs."
pronouns="he/him"
/>
<Bio
@ -539,7 +545,7 @@ When not busy juggling different tasks he takes up, he enjoys tinkering & buildi
<Bio
img="/team/scott.jpg"
name="Scott Motte"
teamRole="Bank Engineer"
teamRole="HCB Engineer"
text="After teaching himself to code in college, Scott went on to lead an exciting software life with multiple startups. Now a father, he joined Hack Club to help build the program he wants available to his children—when they reach high school age."
pronouns="he/him"
/>
@ -561,7 +567,7 @@ When not busy juggling different tasks he takes up, he enjoys tinkering & buildi
img="/team/theo.jpg"
name="Theo Bleier"
teamRole="Special Projects"
text="Theo, a high schooler, joined the Hack Club community in Summer 2018 after reading about Bank online. Since then, hes run multiple events on Bank & worked on coding it. In 2020, Theo worked on AMAs & distributing laptop grants to students."
text="Theo, a high schooler, joined the Hack Club community in Summer 2018 after reading about HCB online. Since then, hes run multiple events on HCB & worked on coding it. In 2020, Theo worked on AMAs & distributing laptop grants to students."
pronouns="he/him"
/>
<Bio
@ -574,8 +580,8 @@ When not busy juggling different tasks he takes up, he enjoys tinkering & buildi
<Bio
img="/team/linus.jpg"
name="Linus Lee"
teamRole="Bank Engineer"
text="Linus spends most of his free time working on side projects ranging from an audio travel diary to creative coding tools to his own programming language. He brought his experience in product & community from Cal Hacks & Dorm Room Fund to grow Hack Club Bank."
teamRole="HCB Engineer"
text="Linus spends most of his free time working on side projects ranging from an audio travel diary to creative coding tools to his own programming language. He brought his experience in product & community from Cal Hacks & Dorm Room Fund to grow HCB."
pronouns="he/him"
/>
<Bio
@ -588,8 +594,8 @@ When not busy juggling different tasks he takes up, he enjoys tinkering & buildi
<Bio
img="/team/michael.jpg"
name="Michael Destefanis"
teamRole="Bank Ops."
text="After graduating high school, Michael moved to California where he began working with Hack Club. He handled the day-to-day operations of Hack Club Bank from its start starting to its first million dollars in transactions."
teamRole="HCB Ops."
text="After graduating high school, Michael moved to California where he began working with Hack Club. He handled the day-to-day operations of HCB from its start starting to its first million dollars in transactions."
pronouns="he/him"
/>
<Bio

View file

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 273 B

View file

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View file

Before

Width:  |  Height:  |  Size: 5.4 MiB

After

Width:  |  Height:  |  Size: 5.4 MiB

View file

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View file

Before

Width:  |  Height:  |  Size: 404 KiB

After

Width:  |  Height:  |  Size: 404 KiB

View file

Before

Width:  |  Height:  |  Size: 577 KiB

After

Width:  |  Height:  |  Size: 577 KiB

View file

Before

Width:  |  Height:  |  Size: 456 KiB

After

Width:  |  Height:  |  Size: 456 KiB

View file

Before

Width:  |  Height:  |  Size: 366 KiB

After

Width:  |  Height:  |  Size: 366 KiB

View file

Before

Width:  |  Height:  |  Size: 689 KiB

After

Width:  |  Height:  |  Size: 689 KiB

View file

Before

Width:  |  Height:  |  Size: 366 KiB

After

Width:  |  Height:  |  Size: 366 KiB

View file

Before

Width:  |  Height:  |  Size: 602 KiB

After

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View file

Before

Width:  |  Height:  |  Size: 943 KiB

After

Width:  |  Height:  |  Size: 943 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Some files were not shown because too many files have changed in this diff Show more