Feat: events october (#29748)

* add event files

* add end date

* 2 days of hacking

* hackathon info

* full stop

* add judges

* yc hackathon

* update event content

* fix event image import
This commit is contained in:
Francesco Sansalvadore authored and GitHub committed 2024-10-08 17:20:10 +02:00
1 parent 09a1420af1
commit a3bb129279
4 files changed
+73 -7

No files matched your search

@@ -12,8 +12,8 @@ company:
{
name: 'Humata',
website_url: 'https://www.humata.ai/',
logo: 'webinars/scale-to-millions-generative-ai-humata/humata-dark.svg',
logo_light: 'webinars/scale-to-millions-generative-ai-humata/humata-light.svg',
logo: '/images/events/webinars/scale-to-millions-generative-ai-humata/humata-dark.svg',
logo_light: '/images/events/webinars/scale-to-millions-generative-ai-humata/humata-light.svg',
}
categories:
- webinar
@@ -0,0 +1,13 @@
---
title: 'Supabase at Next.js Conf'
subtitle: 'where miami builds cool shit.'
type: 'talk'
onDemand: false
disable_page_build: true
link: { href: https://nextjs.org/conf, target: '_blank' }
date: '2024-10-24T10:00:00.000-07:00'
timezone: 'America/Los_Angeles'
duration: '5 hours'
categories:
- talk
---
@@ -0,0 +1,42 @@
---
title: 'Supabase AI Hackathon at Y Combinator'
meta_title: 'Supabase AI Hackathon at Y Combinator'
subtitle: 'Join us at Y Combinator for two days of hacking with Supabase.'
meta_description: 'Join us at Y Combinator for two days of hacking with Supabase.'
type: 'hackathon'
onDemand: false
main_cta:
{
url: 'https://forms.supabase.com/yai-hackathon',
target: '_blank',
label: 'Apply now',
disabled_label: 'Registrations closed',
}
date: '2024-11-22T10:00:00.000-07:00'
end_date: '2024-11-23T18:00:00.000-07:00'
timezone: 'America/Los_Angeles'
duration: '2 days'
categories:
- hackathon
speakers: 'ant_wilson,paul_copplestone'
speakers_label: 'Judges'
---
On November 22 and 23 we're hosting an AI-focused hackathon at Y Combinator in San Francisco.
We've already seen [several 1M+ user AI applications](https://x.com/kiwicopple/status/1754777201092784209) built on Supabase and are hosting this event to support the next wave. YC has generously offered to host the event and will be there to judge projects alongside Supabase founders Copple and Ant.
Because we have limited capacity, we've created [a very short application](https://forms.supabase.com/yai-hackathon). We’ll keep the form open for a few weeks and let you know if you’re in by early November.
### Jury
- YC partners
- Ant Wilson - CTO and Co-Founder at Supabse
- Paul Copplestone - CEO and Co-Founder at Supabase
### Prizes
- Supabase credits and swag
- Dinner with Supabase founders
We encourage everyone to apply and hope to see you there!
+16 -5
View File
@@ -71,7 +71,9 @@ interface EventData {
timezone?: string
tags?: string[]
date: string
end_date?: string
speakers: string
speakers_label?: string
image?: string
thumb?: string
thumb_light?: string
@@ -147,15 +149,22 @@ const EventPage = ({ event }: InferGetStaticPropsType<typeof getStaticProps>) =>
return authors.find((author) => author.author_id === speakerId)
})
.filter(isNotNullOrUndefined)
const hadEndDate = event.end_date?.length
const IS_REGISTRATION_OPEN = event.onDemand || Date.parse(event.date) > Date.now()
const IS_REGISTRATION_OPEN =
event.onDemand ||
(hadEndDate ? Date.parse(event.end_date!) > Date.now() : Date.parse(event.date) > Date.now())
const ogImageUrl = encodeURI(
`${process.env.NODE_ENV === 'development' ? 'http://127.0.0.1:54321' : 'https://obuldanrptloktxcffvn.supabase.co'}/functions/v1/og-images?site=events&eventType=${event.type}&title=${event.meta_title ?? event.title}&description=${event.meta_description ?? event.description}&date=${dayjs(event.date).tz(event.timezone).format(`DD MMM YYYY`)}&duration=${event.duration}`
)
const meta = {
title: `${event.meta_title ?? event.title} | ${dayjs(event.date).tz(event.timezone).format(`DD MMM YYYY`)} | ${capitalize(event.type)}`,
title: `${event.meta_title ?? event.title} | ${dayjs(event.date)
.tz(event.timezone)
.format(
hadEndDate ? `DD` : `DD MMM YYYY`
)}${hadEndDate ? dayjs(event.end_date).tz(event.timezone).format(` - DD MMM`) : ''} | ${capitalize(event.type)}`,
description: event.meta_description ?? event.description,
url: `https://supabase.com/events/${event.slug}`,
image: ogImageUrl,
@@ -353,7 +362,7 @@ const EventPage = ({ event }: InferGetStaticPropsType<typeof getStaticProps>) =>
className="h-5 aspect-[9/1] transition-opacity opacity-100 hover:opacity-90"
>
<NextImage
src={`/images/events/` + event.company?.logo ?? ''}
src={event.company?.logo}
alt={`${event.company?.name} Logo`}
fill
sizes="100%"
@@ -361,7 +370,7 @@ const EventPage = ({ event }: InferGetStaticPropsType<typeof getStaticProps>) =>
priority
/>
<NextImage
src={`/images/events/` + event.company?.logo_light ?? ''}
src={event.company?.logo_light}
alt={`${event.company?.name} Logo`}
fill
sizes="100%"
@@ -405,7 +414,9 @@ const EventPage = ({ event }: InferGetStaticPropsType<typeof getStaticProps>) =>
<aside className="order-first lg:order-last">
{speakers && (
<div className="flex flex-col gap-4">
<h2 className="text-foreground-light text-sm font-mono uppercase">Speakers</h2>
<h2 className="text-foreground-light text-sm font-mono uppercase">
{event.speakers_label ?? 'Speakers'}
</h2>
<ul className="list-none flex flex-col md:flex-row flex-wrap lg:flex-col gap-4 md:gap-8 lg:gap-4">
{speakers?.map((speaker) => (
<li key={speaker?.author_id}>