diff --git a/public/people/alex-van-le.jpg b/public/people/alex-van-le.jpg new file mode 100644 index 0000000..c86c4e8 Binary files /dev/null and b/public/people/alex-van-le.jpg differ diff --git a/public/people/alex-zhang.jpg b/public/people/alex-zhang.jpg new file mode 100644 index 0000000..70dcb7c Binary files /dev/null and b/public/people/alex-zhang.jpg differ diff --git a/public/people/andrew-zacker.jpg b/public/people/andrew-zacker.jpg new file mode 100644 index 0000000..10800b8 Binary files /dev/null and b/public/people/andrew-zacker.jpg differ diff --git a/public/people/avery.jpg b/public/people/avery.jpg new file mode 100644 index 0000000..f648b41 Binary files /dev/null and b/public/people/avery.jpg differ diff --git a/public/people/ayush-soni.jpg b/public/people/ayush-soni.jpg new file mode 100644 index 0000000..f4ea8e9 Binary files /dev/null and b/public/people/ayush-soni.jpg differ diff --git a/public/people/bhanu.jpg b/public/people/bhanu.jpg new file mode 100644 index 0000000..f534528 Binary files /dev/null and b/public/people/bhanu.jpg differ diff --git a/public/people/chris-woggin.jpg b/public/people/chris-woggin.jpg new file mode 100644 index 0000000..aeebbed Binary files /dev/null and b/public/people/chris-woggin.jpg differ diff --git a/public/people/david-ishg.jpg b/public/people/david-ishg.jpg new file mode 100644 index 0000000..5caa390 Binary files /dev/null and b/public/people/david-ishg.jpg differ diff --git a/public/people/dzhng.jpg b/public/people/dzhng.jpg new file mode 100644 index 0000000..e40acec Binary files /dev/null and b/public/people/dzhng.jpg differ diff --git a/public/people/elitza.jpg b/public/people/elitza.jpg new file mode 100644 index 0000000..86069f5 Binary files /dev/null and b/public/people/elitza.jpg differ diff --git a/public/people/eugene.jpg b/public/people/eugene.jpg new file mode 100644 index 0000000..b7e44b8 Binary files /dev/null and b/public/people/eugene.jpg differ diff --git a/public/people/florin-pop.jpg b/public/people/florin-pop.jpg new file mode 100644 index 0000000..03cd3f6 Binary files /dev/null and b/public/people/florin-pop.jpg differ diff --git a/public/people/jonathan-parra.jpg b/public/people/jonathan-parra.jpg new file mode 100644 index 0000000..c5c6b42 Binary files /dev/null and b/public/people/jonathan-parra.jpg differ diff --git a/public/people/praneeth.jpg b/public/people/praneeth.jpg new file mode 100644 index 0000000..fb3e3ed Binary files /dev/null and b/public/people/praneeth.jpg differ diff --git a/public/people/sai.jpg b/public/people/sai.jpg new file mode 100644 index 0000000..df9297e Binary files /dev/null and b/public/people/sai.jpg differ diff --git a/public/people/steve-peak.jpg b/public/people/steve-peak.jpg new file mode 100644 index 0000000..ff59db9 Binary files /dev/null and b/public/people/steve-peak.jpg differ diff --git a/public/people/tibo-maker.jpg b/public/people/tibo-maker.jpg new file mode 100644 index 0000000..e205ea8 Binary files /dev/null and b/public/people/tibo-maker.jpg differ diff --git a/public/people/winston.jpg b/public/people/winston.jpg new file mode 100644 index 0000000..7a7a06d Binary files /dev/null and b/public/people/winston.jpg differ diff --git a/public/people/yeonji.jpg b/public/people/yeonji.jpg new file mode 100644 index 0000000..0979b04 Binary files /dev/null and b/public/people/yeonji.jpg differ diff --git a/src/app/batch-1/hosts.tsx b/src/app/batch-1/hosts.tsx new file mode 100644 index 0000000..598595b --- /dev/null +++ b/src/app/batch-1/hosts.tsx @@ -0,0 +1,87 @@ +import Link from 'next/link' + +import { type Person } from '@/components/people-grid' +import David from '@/public/people/david.jpg' +import Phuc from '@/public/people/phuc.jpg' +import Tony from '@/public/people/tony.jpg' +import Travis from '@/public/people/travis.jpg' + +export const hosts: Person[] = [ + { + name: 'Travis Fischer', + image: Travis, + url: 'https://x.com/transitive_bs', + twitter: 'https://x.com/transitive_bs', + github: 'https://github.com/transitive-bullshit', + linkedin: 'https://linkedin.com/in/fisch2', + description: ( + <> + Founder of{' '} + + Agentic + + . 2 exits. Prev{' '} + + HF0 + + , Microsoft, and Amazon. + + ) + }, + { + name: 'Tony Dinh', + image: Tony, + url: 'https://x.com/tdinh_me', + twitter: 'https://x.com/tdinh_me', + github: 'https://github.com/trungdq88', + linkedin: 'https://www.linkedin.com/in/tdinh-me/', + description: ( + <> + Making over $2M ARR solo while building{' '} + + typingmind.com + {' '} + and{' '} + + devutils.com + + . + + ) + }, + { + name: 'Minh-Phuc Tran', + image: Phuc, + url: 'https://x.com/phuctm97', + twitter: 'https://x.com/phuctm97', + github: 'https://github.com/phuctm97', + linkedin: 'https://www.linkedin.com/in/phuctm97/', + description: ( + <> + Built 8 startups in 12 months • Sold 3/8 startups • Building{' '} + + vibingbase.com + + . + + ) + }, + { + name: 'David Park', + image: David, + url: 'https://x.com/dayonefoundry', + twitter: 'https://x.com/dayonefoundry', + github: 'https://github.com/davidvypark', + linkedin: 'https://www.linkedin.com/in/david-park-69587844/', + description: ( + <> + Built Raya & Kippo and then 120 other apps you've never heard of + because they failed. + + ) + } +] diff --git a/src/app/batch-1/mentors.tsx b/src/app/batch-1/mentors.tsx new file mode 100644 index 0000000..1bd7a5c --- /dev/null +++ b/src/app/batch-1/mentors.tsx @@ -0,0 +1,81 @@ +import Link from 'next/link' + +import type { Person } from '@/components/people-grid' +import AyushSoni from '@/public/people/ayush-soni.jpg' +import DavidZhang from '@/public/people/dzhng.jpg' +import StevePeak from '@/public/people/steve-peak.jpg' +import TiboMaker from '@/public/people/tibo-maker.jpg' + +export const mentors: Person[] = [ + { + name: 'Tibo Maker', + image: TiboMaker, + url: 'https://x.com/tibo_maker', + twitter: 'https://x.com/tibo_maker', + github: 'https://github.com/tbll75', + linkedin: 'https://www.linkedin.com/in/tibo-the-maker/', + description: ( + <> + Prolific portfolio of bootstrapped products; over $8M ARR; >180k + followers on X. From France. + + ) + }, + { + name: 'David Zhang', + image: DavidZhang, + url: 'https://x.com/dzhng', + twitter: 'https://x.com/dzhng', + github: 'https://github.com/dzhng', + linkedin: 'https://www.linkedin.com/in/david-zhang-2902462a/', + description: ( + <> + Prev company,{' '} + + Amity + + , is worth >$500M. Raised $4M for{' '} + + Duet + + . World-class AI eng & serial founder. From SF. + + ) + }, + { + name: 'Steve Peak', + image: StevePeak, + url: 'https://x.com/iopeak', + twitter: 'https://x.com/iopeak', + github: 'https://github.com/stevepeak', + linkedin: 'https://www.linkedin.com/in/stevepeak23/', + description: ( + <> + Formerly built & sold{' '} + + codecov.io + {' '} + to Sentry as a solo founder for $10M. World-class AI eng & serial + founder. From Colorado. + + ) + }, + { + name: 'Ayush Soni', + image: AyushSoni, + url: 'https://x.com/ayysoni', + twitter: 'https://x.com/ayysoni', + github: 'http://github.com/ayushsoni1001', + linkedin: 'https://www.linkedin.com/in/ayushsoni1001/', + description: ( + <> + 21yo with 5 exits. $450K+ ARR across multiple SaaS; top 100 Shopify app + builder in the world. From India. + + ) + } +] diff --git a/src/app/batch-1/page.tsx b/src/app/batch-1/page.tsx index c142cfa..c5bc8bb 100644 --- a/src/app/batch-1/page.tsx +++ b/src/app/batch-1/page.tsx @@ -4,10 +4,15 @@ import Link from 'next/link' import { Card } from '@/components/card' import { HeroButton } from '@/components/hero-button' +import { PeopleGrid } from '@/components/people-grid' import { Sponsor } from '@/components/sponsor' import { AnimatedGradientBackground } from '@/components/ui/animated-gradient-background' import { WorldMap } from '@/components/ui/world-map' +import { hosts } from './hosts' +import { mentors } from './mentors' +import { residents } from './residents' + const dots: Array<{ start: { lat: number; lng: number; label?: string } end: { lat: number; lng: number; label?: string } @@ -91,42 +96,50 @@ export default function Batch0Page() { <> -
-

- HRG Batch 1 -

- -
-

- Da Nang, Vietnam -

- -

- May 1st – 31st, 2026 -

+
+
+

+ HRG Batch 1 +

+ +
+

+ Da Nang, Vietnam +

+ +

+ May 1st – 31st, 2026 +

+
+ + + + + + + stack.pop(); +
- - - + - - stack.pop(); - + - + - - stack.pop(); - + + + stack.pop(); + +
) } -function SponsorSection() { +function SponsorSection({ children }: { children?: React.ReactNode }) { return ( -
+

Sponsors

@@ -166,6 +179,8 @@ function SponsorSection() { alt='OpenAI' />
+ + {children}
) } diff --git a/src/app/batch-1/residents.tsx b/src/app/batch-1/residents.tsx new file mode 100644 index 0000000..4bf9726 --- /dev/null +++ b/src/app/batch-1/residents.tsx @@ -0,0 +1,323 @@ +import Link from 'next/link' + +import type { Person } from '@/components/people-grid' +import AlexVanLe from '@/public/people/alex-van-le.jpg' +import AlexZhang from '@/public/people/alex-zhang.jpg' +import AndrewZacker from '@/public/people/andrew-zacker.jpg' +import Avery from '@/public/people/avery.jpg' +import Bhanu from '@/public/people/bhanu.jpg' +import ChrisWoggon from '@/public/people/chris-woggin.jpg' +import DavidIshag from '@/public/people/david-ishg.jpg' +import Elitza from '@/public/people/elitza.jpg' +import Eugene from '@/public/people/eugene.jpg' +import FlorinPop from '@/public/people/florin-pop.jpg' +import JonathanParra from '@/public/people/jonathan-parra.jpg' +import Praneeth from '@/public/people/praneeth.jpg' +import Sai from '@/public/people/sai.jpg' +import Winston from '@/public/people/winston.jpg' +import Yeonji from '@/public/people/yeonji.jpg' + +export const residents: Person[] = [ + { + name: 'Florin Pop', + image: FlorinPop, + url: 'https://x.com/florinpop17', + twitter: 'https://x.com/florinpop17', + github: 'https://github.com/florinpop17', + linkedin: 'https://www.linkedin.com/in/florinpop17', + description: ( + <> + + 200k followers on X + + ;{' '} + + 170k followers on YT + + ; dev influencer & indie hacker shipping like crazy. From Romania. + + ) + }, + { + name: 'Andrew Zacker', + image: AndrewZacker, + url: 'https://x.com/andrewzacker', + twitter: 'https://x.com/andrewzacker', + github: 'https://github.com/zacker-tech', + linkedin: 'https://www.linkedin.com/in/andrewzacker/', + description: ( + <> + Indie hacker shipping like crazy alongside{' '} + + Florin Pop + + . From Poland. + + ) + }, + { + name: 'Eugene Zolotarenko', + image: Eugene, + url: 'https://x.com/eugZolotarenko', + twitter: 'https://x.com/eugZolotarenko', + github: 'https://github.com/eugeneZolotarenko', + linkedin: 'https://www.linkedin.com/in/eugenezolotarenko/', + description: ( + <> + Co-Founder of{' '} + + Outrank + + , over $3M ARR, growing organic traffic on auto-pilot. Working with{' '} + + Tibo Maker + + . From Poland. + + ) + }, + { + name: 'Avery', + image: Avery, + url: 'https://x.com/averycode', + twitter: 'https://x.com/averycode', + github: 'https://github.com/averygan', + linkedin: 'https://www.linkedin.com/in/averygan', + description: ( + <> + Psych major turned indie hacker; building{' '} + + Offscript + {' '} + dev agency and{' '} + + Rankd + + , ASO optimization. Ex Apple/HubSpot. From Singapore. + + ) + }, + { + name: 'Bhanu Teja P', + image: Bhanu, + url: 'https://x.com/pbteja1998', + twitter: 'https://x.com/pbteja1998', + github: 'https://github.com/pbteja1998', + linkedin: 'https://www.linkedin.com/in/pbteja1998/', + description: ( + <> + Co-Founder of{' '} + + MissionControlHQ + {' '} + (17k MRR) and{' '} + + SiteGPT + {' '} + (19k MRR). 54k followers on X, serial founder with multiple exits. From + India. + + ) + }, + { + name: 'Sai Dheeraj P', + image: Sai, + url: 'https://x.com/saidheeraj_96', + twitter: 'https://x.com/saidheeraj_96', + linkedin: 'https://www.linkedin.com/in/dheerajpachipulusu/', + description: ( + <> + Co-Founder of{' '} + + MissionControlHQ + {' '} + and{' '} + + SiteGPT + + . Serial founder with multiple exits. From India. + + ) + }, + { + name: 'Praneeth Pike', + image: Praneeth, + url: 'https://x.com/praneethpike', + twitter: 'https://x.com/praneethpike', + github: 'https://github.com/Praneeth-pike', + linkedin: 'https://www.linkedin.com/in/praneethykasula/', + description: ( + <> + Founder of{' '} + + RabbitHoles.ai + + , a canvas-based UX for genAI with over $100k in revenue. Also runs a + design agency. From India. + + ) + }, + { + name: 'Winston Iskandar', + image: Winston, + url: 'https://x.com/WinstonIsk', + twitter: 'https://x.com/WinstonIsk', + github: 'https://github.com/winstoniskandar', + linkedin: 'https://www.linkedin.com/in/winstoniskandar', + description: ( + <> + Stanford CS student & Co-Founder of{' '} + + Similate.ai + + , a simulation platform for human behavior. From SF. + + ) + }, + { + name: 'Alex Zhang', + image: AlexZhang, + url: 'https://x.com/alexzhang104', + twitter: 'https://x.com/alexzhang104', + linkedin: 'https://www.linkedin.com/in/zhangalexanderx', + description: ( + <> + Stanford CS student & Co-Founder of{' '} + + Similate.ai + + , a simulation platform for human behavior. From SF. + + ) + }, + { + name: 'Elitza Vasileva', + image: Elitza, + url: 'https://x.com/ElitzaVasileva', + twitter: 'https://x.com/ElitzaVasileva', + github: 'https://github.com/elitza-vasileva', + linkedin: 'https://www.linkedin.com/in/elitza-vasileva/', + description: ( + <> + Founder of{' '} + + own.page + + , a link-in-bio / personal website builder with over 3k users and + growing fast. From Vienna, Austria. + + ) + }, + { + name: 'Alexander Van Le', + image: AlexVanLe, + url: 'https://x.com/qwertyu_alex', + twitter: 'https://x.com/qwertyu_alex', + github: 'https://github.com/qwertyu-alex', + linkedin: 'https://www.linkedin.com/in/alexandervle/', + description: ( + <> + Co-Founder of{' '} + + Starpop + + , AI UGC videos, $15k MRR. From Denmark. + + ) + }, + { + name: 'David Ishag', + image: DavidIshag, + url: 'https://x.com/david_ishg', + twitter: 'https://x.com/david_ishg', + github: 'https://github.com/Davidshag', + linkedin: 'https://www.linkedin.com/in/david-ishag-a18782352/', + description: ( + <> + Co-Founder of{' '} + + Starpop + + , AI UGC videos, $15k MRR. From Switzerland. + + ) + }, + { + name: 'Christopher Woggon', + image: ChrisWoggon, + url: 'https://x.com/chrissyinspace', + twitter: 'https://x.com/chrissyinspace', + github: 'https://github.com/chrissy0', + linkedin: 'https://www.linkedin.com/in/christopher-woggon-3b2774271/', + description: ( + <> + Building{' '} + + TinyLaunch + + , a launch platform for indie products, $42k revenue so far. Also + building a portfolio of small bets. From Germany. + + ) + }, + { + name: 'Yeonji', + image: Yeonji, + url: 'https://x.com/yeonjidev', + twitter: 'https://x.com/yeonjidev', + github: 'https://github.com/oyaa52', + linkedin: + 'https://www.linkedin.com/in/%EC%97%B0%EC%A7%80-%EC%9E%84-396570223/', + description: ( + <> + Building a portfolio of small bets alongside{' '} + + Christopher Woggon + + . From South Korea. + + ) + }, + { + name: 'Jonathan Parra', + image: JonathanParra, + url: 'https://x.com/jondeparra', + twitter: 'https://x.com/jondeparra', + github: 'https://github.com/jondeparra', + linkedin: 'https://www.linkedin.com/in/jondeparra/', + description: ( + <> + The Paywall guy. Prev{' '} + + Superwall + + (YC S21). Agency building mobile apps including Prove It ($600k MRR), + and currently a Pokémon Go-like app for bird watchers. From Las Vegas. + + ) + } +] diff --git a/src/app/home/team-section.tsx b/src/app/home/team-section.tsx index c22d00b..e4515bb 100644 --- a/src/app/home/team-section.tsx +++ b/src/app/home/team-section.tsx @@ -1,16 +1,12 @@ -import Image from 'next/image' import Link from 'next/link' -import { Card } from '@/components/card' -import { GitHubIcon } from '@/icons/github' -import { LinkedInIcon } from '@/icons/linkedin' -import { TwitterIcon } from '@/icons/twitter' +import { PeopleGrid, type Person } from '@/components/people-grid' import David from '@/public/people/david.jpg' import Phuc from '@/public/people/phuc.jpg' import Tony from '@/public/people/tony.jpg' import Travis from '@/public/people/travis.jpg' -const people = [ +const people: Person[] = [ { name: 'Travis Fischer', image: Travis, @@ -45,7 +41,7 @@ const people = [ linkedin: 'https://www.linkedin.com/in/tdinh-me/', description: ( <> - Making over $1M ARR solo while building{' '} + Making over $2M ARR solo while building{' '} typingmind.com {' '} @@ -91,75 +87,5 @@ const people = [ ] export function TeamSection() { - return ( -
-

- Led by world-class hackers -

- -
- {people.map((person) => ( - -
- - {person.name} - - -

- {person.name} -

- -
- - - - - {person.github && ( - - - - )} - - {person.linkedin && ( - - - - )} -
- -

- {person.description} -

-
-
- ))} -
-
- ) + return } diff --git a/src/components/people-grid.tsx b/src/components/people-grid.tsx new file mode 100644 index 0000000..6b65afc --- /dev/null +++ b/src/components/people-grid.tsx @@ -0,0 +1,106 @@ +import Image, { type StaticImageData } from 'next/image' +import Link from 'next/link' + +import { Card } from '@/components/card' +import { GitHubIcon } from '@/icons/github' +import { LinkedInIcon } from '@/icons/linkedin' +import { TwitterIcon } from '@/icons/twitter' +import { cn } from '@/lib/utils' + +export interface Person { + name: string + image: StaticImageData + url: string + twitter: string + github?: string + linkedin?: string + description: React.ReactNode +} + +export function PeopleGrid({ + title, + people, + className, + children +}: { + title: string + people: Person[] + className?: string + children?: React.ReactNode +}) { + return ( +
+

+ {title} +

+ +
+ {people.map((person) => ( + +
+ + {person.name} + + +

+ {person.name} +

+ +
+ + + + + {person.github && ( + + + + )} + + {person.linkedin && ( + + + + )} +
+ +

+ {person.description} +

+
+
+ ))} +
+ + {children} +
+ ) +} diff --git a/src/components/sponsor.tsx b/src/components/sponsor.tsx index 8cd7157..1a0f00a 100644 --- a/src/components/sponsor.tsx +++ b/src/components/sponsor.tsx @@ -19,7 +19,7 @@ export function Sponsor({