Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/api/luma/past-events/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ export async function GET() {

const data = await response.json()

// Filter to only include past events (before now)
// Filter to only include past, non-private events
const pastEvents = (data.entries || []).filter((entry: any) => {
const eventDate = new Date(entry.event.start_at)
return eventDate < now
return eventDate < now && entry.event.visibility !== 'private'
})

console.log('Luma API response received')
Expand Down
4 changes: 2 additions & 2 deletions app/api/luma/upcoming-events/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ export async function GET() {

const data = await response.json()

// Filter to only include future events (after now)
// Filter to only include future, non-private events
const upcomingEvents = (data.entries || []).filter((entry: any) => {
const eventDate = new Date(entry.event.start_at)
return eventDate >= now
return eventDate >= now && entry.event.visibility !== 'private'
})

console.log('Luma API response received')
Expand Down
14 changes: 7 additions & 7 deletions app/events/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ export default function EventsPage() {

{/* Featured Event Spotlight */}
<div className="mb-24">
<div className="relative overflow-hidden rounded-[1.75rem] border border-[#9c27b0]/30 shadow-2xl shadow-[#9c27b0]/10">
<div className="relative overflow-hidden rounded-[1.75rem] border border-[#e35733]/30 shadow-2xl shadow-[#e35733]/10">
{/* Background image */}
<div className="absolute inset-0">
<img
Expand All @@ -312,12 +312,12 @@ export default function EventsPage() {
</div>

{/* Content */}
<div className="relative p-8 md:p-14 flex flex-col lg:flex-row items-start lg:items-center gap-8">
<div className="relative p-8 md:p-12 flex flex-col lg:flex-row items-start lg:items-center gap-8">
<div className="flex-1">
{/* Badges */}
<div className="flex flex-wrap items-center gap-3 mb-5">
<span className="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[#9c27b0]/25 border border-[#9c27b0]/50 text-[#ce93d8] text-xs font-bold uppercase tracking-widest">
<span className="w-1.5 h-1.5 rounded-full bg-[#ce93d8] animate-pulse"></span>
<span className="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[#e35733]/25 border border-[#e35733]/50 text-[#f0896a] text-xs font-bold uppercase tracking-widest">
<span className="w-1.5 h-1.5 rounded-full bg-[#f0896a] animate-pulse"></span>
Upcoming Event
</span>
<span className="px-3 py-1.5 rounded-full bg-white/10 border border-white/10 text-white/60 text-xs font-bold uppercase tracking-widest">
Expand All @@ -327,7 +327,7 @@ export default function EventsPage() {

<h2 className="text-3xl md:text-5xl font-black text-white mb-4 leading-tight">
Munich<br />
<span className="text-[#ce93d8]">Hacking Legal</span>
<span className="text-[#f0896a]">Hacking Legal</span>
</h2>

<p className="text-gray-300 text-base md:text-lg leading-relaxed max-w-xl mb-6">
Expand All @@ -339,7 +339,7 @@ export default function EventsPage() {
href="https://www.hacking-legal.org/"
target="_blank"
rel="noopener noreferrer"
className="group inline-flex items-center gap-2.5 px-7 py-3.5 bg-[#9c27b0] hover:bg-[#ab47bc] text-white font-bold rounded-xl transition-all duration-300 hover:scale-105 hover:shadow-xl hover:shadow-[#9c27b0]/40"
className="group inline-flex items-center gap-2.5 px-7 py-3.5 bg-[#e35733] hover:bg-[#c24520] text-white font-bold rounded-xl transition-all duration-300 hover:scale-105 hover:shadow-xl hover:shadow-[#e35733]/40"
>
<span>Learn More</span>
<svg className="w-4 h-4 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
Expand Down Expand Up @@ -732,7 +732,7 @@ export default function EventsPage() {
onClick={
event.id === 'legal-hack' ? () => window.open('https://www.hacking-legal.org/', '_blank')
: event.id === 'rtsh' ? () => window.open('https://hack.startmunich.de/events/rtsh', '_blank')
: event.id === 'rtss' ? () => window.open('https://www.startmunich.de/events/rtss', '_blank')
: event.id === 'rtss' ? () => window.open('https://summit.startmunich.de/events/rtss', '_blank')
: event.id === 'start-labs' ? () => window.open('https://www.startmunich.de', '_blank')
: undefined
}
Expand Down
10 changes: 5 additions & 5 deletions app/home/HomeClient.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ export default function HomeClient({ initialPartners, initialStartups }: HomeCli
<img
src={partner.logoUrl}
alt={partner.name}
className="h-[48px] w-auto max-w-[200px] object-contain"
className="h-[48px] w-auto max-w-[200px] object-contain grayscale"
onError={(e) => {
const target = e.target as HTMLImageElement
target.style.display = 'none'
Expand Down Expand Up @@ -222,7 +222,7 @@ export default function HomeClient({ initialPartners, initialStartups }: HomeCli
What is <span className="outline-text">START Munich</span>?
</h2>
<p className="text-gray-300 text-lg leading-relaxed mb-4">
With over 70 active members and 500+ alumni, START Munich is one of Germany’s leading student-run entrepreneurship initiatives. Founded in 2003, our mission is to build
With over 70 active members and 600+ alumni, START Munich is one of Germany’s leading student-run entrepreneurship initiatives. Founded in 2003, our mission is to build
<span className="text-brand-pink font-semibold"> a community of students who dare to build, innovate, and lead.</span>
</p>
<p className="text-gray-300 text-lg leading-relaxed mb-6">
Expand Down Expand Up @@ -261,7 +261,7 @@ export default function HomeClient({ initialPartners, initialStartups }: HomeCli
<div className="text-gray-400 text-sm uppercase tracking-wider">Founding Year</div>
</div>
<div className="bg-white/5 border border-white/10 rounded-2xl p-6 hover:border-brand-pink/30 transition-all">
<div className="text-4xl sm:text-5xl font-black text-white mb-2">500<span className="text-brand-pink">+</span></div>
<div className="text-4xl sm:text-5xl font-black text-white mb-2">600<span className="text-brand-pink">+</span></div>
<div className="text-gray-400 text-sm uppercase tracking-wider">Alumni</div>
</div>
<div className="bg-white/5 border border-white/10 rounded-2xl p-6 hover:border-brand-pink/30 transition-all">
Expand Down Expand Up @@ -479,7 +479,7 @@ export default function HomeClient({ initialPartners, initialStartups }: HomeCli
const renderCard = (card: typeof allCards[0]) => (
<Link key={card.href} href={card.href} target="_blank" className="group relative">
<div className="relative rounded-2xl overflow-hidden aspect-[4/5]">
<img src={card.img} alt={card.alt} loading="lazy" className="absolute inset-0 w-full h-full object-cover group-hover:scale-105 transition-transform duration-500" />
<img src={card.img} alt={card.alt} loading="lazy" referrerPolicy="no-referrer" className="absolute inset-0 w-full h-full object-cover group-hover:scale-105 transition-transform duration-500" />
<div className="absolute inset-0 bg-gradient-to-t from-black/70 via-transparent to-transparent" />
<div className="absolute bottom-6 left-6 right-6">
{card.label && <div className="text-white/60 text-xs uppercase tracking-wider mb-2">{card.label}</div>}
Expand Down Expand Up @@ -561,7 +561,7 @@ export default function HomeClient({ initialPartners, initialStartups }: HomeCli
<div className="text-gray-400 text-sm">Countries</div>
</div>
<div>
<div className="text-5xl sm:text-6xl font-black text-white">+500</div>
<div className="text-5xl sm:text-6xl font-black text-white">+1800</div>
<div className="text-gray-400 text-sm">Members</div>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/home/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ async function fetchFeaturedPartners(): Promise<Partner[]> {
(featured === true || featured === 1 || String(featured).toLowerCase() === 'true')
})
.map((r: any) => {
const logos: any[] = r.Logo || []
const logos: any[] = r.LogoNoBackground || []
// Some partners have two images uploaded; always use the last one so that
// a newer/preferred logo can be added as a second upload without removing the original.
const logo = logos.length > 0 ? logos[logos.length - 1] : null
Expand Down
8 changes: 4 additions & 4 deletions app/members/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export default function MembersPage() {
const batchesView = useInView(0.1)

const animatedActiveMembers = useAnimatedNumber(70, false, 1000)
const animatedAlumniCount = useAnimatedNumber(500, false, 1000)
const animatedAlumniCount = useAnimatedNumber(600, false, 1000)

const getInitials = (name: string) => {
const words = name.trim().split(/\s+/)
Expand Down Expand Up @@ -540,7 +540,7 @@ export default function MembersPage() {
<a key={i} href={member.linkedinUrl || '#'} target={member.linkedinUrl ? '_blank' : undefined} rel={member.linkedinUrl ? 'noopener noreferrer' : undefined} className={`relative${member.linkedinUrl ? ' cursor-pointer' : ' cursor-default'}`}>
<div className="relative aspect-[3/4] rounded-2xl overflow-hidden bg-white/5 border border-white/10">
{member.profileImage ? (
<Image src={member.profileImage} alt={member.name} fill sizes="(max-width: 640px) 50vw, (max-width: 1024px) 25vw, 15vw" className="object-cover object-top" />
<Image src={member.profileImage} alt={member.name} fill sizes="(max-width: 640px) 50vw, (max-width: 1024px) 25vw, 15vw" className="object-cover object-top" referrerPolicy="no-referrer" />
) : (
<div className="w-full h-full flex items-center justify-center text-white/20 text-3xl font-black">
{member.name === 'N/A' ? 'N/A' : getInitials(member.name)}
Expand Down Expand Up @@ -568,7 +568,7 @@ export default function MembersPage() {
<a key={i} href={member.linkedinUrl || '#'} target={member.linkedinUrl ? '_blank' : undefined} rel={member.linkedinUrl ? 'noopener noreferrer' : undefined} className={`relative${member.linkedinUrl ? ' cursor-pointer' : ' cursor-default'}`}>
<div className="relative aspect-[3/4] rounded-2xl overflow-hidden bg-white/5 border border-white/10">
{member.profileImage ? (
<Image src={member.profileImage} alt={member.name} fill sizes="(max-width: 640px) 50vw, (max-width: 1024px) 25vw, 15vw" className="object-cover object-top" />
<Image src={member.profileImage} alt={member.name} fill sizes="(max-width: 640px) 50vw, (max-width: 1024px) 25vw, 15vw" className="object-cover object-top" referrerPolicy="no-referrer" />
) : (
<div className="w-full h-full flex items-center justify-center text-white/20 text-3xl font-black">
{member.name === 'N/A' ? 'N/A' : getInitials(member.name)}
Expand Down Expand Up @@ -677,7 +677,7 @@ export default function MembersPage() {
>
<div className="relative w-full h-full">
{member.profileImage ? (
<Image src={member.profileImage} alt={member.name} fill sizes="(max-width: 640px) 33vw, 10vw" className="object-cover" />
<Image src={member.profileImage} alt={member.name} fill sizes="(max-width: 640px) 33vw, 10vw" className="object-cover" referrerPolicy="no-referrer" />
) : (
<div className="w-full h-full flex items-center justify-center bg-white/5">
<span className="text-white/50 text-2xl font-black tracking-wider">
Expand Down