Skip to content

Commit a9972ec

Browse files
committed
Preapping for 2026 event
1 parent 0ae156d commit a9972ec

4 files changed

Lines changed: 133 additions & 122 deletions

File tree

src/Components/Agenda.tsx

Lines changed: 114 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import dino_mascot from '../assets/Animals SVG/Dino_mascot.svg';
88

99
import { AgendaItem } from '../types/agenda';
1010

11-
const IS_COMING_SOON = false;
11+
const IS_COMING_SOON = true;
1212
const PLACEHOLDER_NAME = 'someone to be announced';
1313
const AgendaAccordion = () => {
1414
const [width, setWidth] = useState<number>(window.innerWidth);
@@ -58,11 +58,11 @@ const AgendaAccordion = () => {
5858
animate={{ opacity: 1, y: 0 }}
5959
transition={{ duration: 0.6 }}
6060
>
61-
Agenda 2025
61+
Agenda 2026
6262
</motion.h1>
6363

6464
{/* Keynote Speakers Section */}
65-
<KeynoteSpeakers />
65+
{/* <KeynoteSpeakers /> */}
6666

6767
{IS_COMING_SOON && <ComingSoon />}
6868
{!IS_COMING_SOON && (
@@ -505,116 +505,116 @@ const TalkCard = ({
505505
);
506506
};
507507

508-
const KeynoteSpeakers = () => {
509-
return (
510-
<div className="px-4 py-8 lg:px-10 relative">
511-
<motion.div
512-
className="mb-8 text-center"
513-
initial={{ opacity: 0, y: -20 }}
514-
animate={{ opacity: 1, y: 0 }}
515-
transition={{ delay: 0.2 }}
516-
>
517-
<h2 className="mb-4 text-4xl font-bold bg-gradient-to-r from-purple-600 via-pink-500 to-blue-500 bg-clip-text text-transparent lg:text-5xl">
518-
🎤 Keynote Speakers
519-
</h2>
520-
<div className="w-24 h-1 bg-gradient-to-r from-purple-500 to-pink-500 mx-auto rounded-full"></div>
521-
</motion.div>
522-
523-
<div className="grid gap-8 md:grid-cols-2 lg:gap-12 max-w-4xl mx-auto">
524-
{/* Yan Cui */}
525-
<motion.div
526-
className="group relative overflow-hidden bg-white rounded-3xl shadow-xl hover:shadow-2xl transition-all duration-500 transform hover:-translate-y-2"
527-
initial={{ opacity: 0, x: -50 }}
528-
animate={{ opacity: 1, x: 0 }}
529-
transition={{ delay: 0.4 }}
530-
>
531-
<div className="absolute inset-0 bg-gradient-to-br from-purple-400 via-pink-400 to-purple-600 opacity-0 group-hover:opacity-10 transition-opacity duration-500"></div>
532-
<div className="relative p-8 text-center">
533-
<div className="mb-6 relative">
534-
<div className="absolute inset-0 bg-gradient-to-r from-purple-400 to-pink-400 rounded-full blur-lg opacity-30 scale-110"></div>
535-
<img
536-
src="/speakers/yan_cui.jpg"
537-
alt="Yan Cui"
538-
className="relative w-32 h-32 rounded-full object-cover border-4 border-white shadow-xl mx-auto"
539-
/>
540-
<div className="absolute -top-2 -right-2 bg-gradient-to-r from-purple-500 to-pink-500 text-white text-xs px-2 py-1 rounded-full font-bold">
541-
⭐ KEYNOTE
542-
</div>
543-
</div>
544-
<h3 className="mb-3 text-2xl font-bold bg-gradient-to-r from-purple-700 to-pink-600 bg-clip-text text-transparent">
545-
Yan Cui
546-
</h3>
547-
<p className="mb-2 text-lg font-semibold text-purple-600">Lumigo</p>
548-
<p className="mb-4 text-sm text-gray-600 leading-relaxed">
549-
AWS Serverless Hero & Author of "Production-Ready Serverless"
550-
</p>
551-
<div className="mb-6 p-4 bg-gradient-to-r from-purple-50 to-pink-50 rounded-xl">
552-
<h4 className="font-bold text-gray-800 text-lg">
553-
"Serverless, the hard parts"
554-
</h4>
555-
</div>
556-
<div className="flex flex-wrap justify-center gap-2 text-xs">
557-
<span className="bg-purple-100 text-purple-700 px-3 py-1 rounded-full font-medium">
558-
🌟 AWS Hero
559-
</span>
560-
<span className="bg-pink-100 text-pink-700 px-3 py-1 rounded-full font-medium">
561-
📚 Author
562-
</span>
563-
<span className="bg-blue-100 text-blue-700 px-3 py-1 rounded-full font-medium">
564-
🎯 Consultant
565-
</span>
566-
</div>
567-
</div>
568-
</motion.div>
569-
570-
{/* James Eastham */}
571-
<motion.div
572-
className="group relative overflow-hidden bg-white rounded-3xl shadow-xl hover:shadow-2xl transition-all duration-500 transform hover:-translate-y-2"
573-
initial={{ opacity: 0, x: 50 }}
574-
animate={{ opacity: 1, x: 0 }}
575-
transition={{ delay: 0.6 }}
576-
>
577-
<div className="absolute inset-0 bg-gradient-to-br from-blue-400 via-purple-400 to-blue-600 opacity-0 group-hover:opacity-10 transition-opacity duration-500"></div>
578-
<div className="relative p-8 text-center">
579-
<div className="mb-6 relative">
580-
<div className="absolute inset-0 bg-gradient-to-r from-blue-400 to-purple-400 rounded-full blur-lg opacity-30 scale-110"></div>
581-
<img
582-
src="/speakers/james_eastham.jpg"
583-
alt="James Eastham"
584-
className="relative w-32 h-32 rounded-full object-cover border-4 border-white shadow-xl mx-auto"
585-
/>
586-
<div className="absolute -top-2 -right-2 bg-gradient-to-r from-blue-500 to-purple-500 text-white text-xs px-2 py-1 rounded-full font-bold">
587-
⭐ KEYNOTE
588-
</div>
589-
</div>
590-
<h3 className="mb-3 text-2xl font-bold bg-gradient-to-r from-blue-700 to-purple-600 bg-clip-text text-transparent">
591-
James Eastham
592-
</h3>
593-
<p className="mb-2 text-lg font-semibold text-blue-600">Datadog</p>
594-
<p className="mb-4 text-sm text-gray-600 leading-relaxed">
595-
Serverless Developer Advocate & Microsoft MVP
596-
</p>
597-
<div className="mb-6 p-4 bg-gradient-to-r from-blue-50 to-purple-50 rounded-xl">
598-
<h4 className="font-bold text-gray-800 text-lg">
599-
"Why Should You Think Serverless First?"
600-
</h4>
601-
</div>
602-
<div className="flex flex-wrap justify-center gap-2 text-xs">
603-
<span className="bg-blue-100 text-blue-700 px-3 py-1 rounded-full font-medium">
604-
☁️ Advocate
605-
</span>
606-
<span className="bg-purple-100 text-purple-700 px-3 py-1 rounded-full font-medium">
607-
🚀 DevRel
608-
</span>
609-
<span className="bg-green-100 text-green-700 px-3 py-1 rounded-full font-medium">
610-
💻 MVP
611-
</span>
612-
</div>
613-
</div>
614-
</motion.div>
615-
</div>
616-
</div>
617-
);
618-
};
508+
// const KeynoteSpeakers = () => {
509+
// return (
510+
// <div className="px-4 py-8 lg:px-10 relative">
511+
// <motion.div
512+
// className="mb-8 text-center"
513+
// initial={{ opacity: 0, y: -20 }}
514+
// animate={{ opacity: 1, y: 0 }}
515+
// transition={{ delay: 0.2 }}
516+
// >
517+
// <h2 className="mb-4 text-4xl font-bold bg-gradient-to-r from-purple-600 via-pink-500 to-blue-500 bg-clip-text text-transparent lg:text-5xl">
518+
// 🎤 Keynote Speakers
519+
// </h2>
520+
// <div className="w-24 h-1 bg-gradient-to-r from-purple-500 to-pink-500 mx-auto rounded-full"></div>
521+
// </motion.div>
522+
523+
// <div className="grid gap-8 md:grid-cols-2 lg:gap-12 max-w-4xl mx-auto">
524+
// {/* Yan Cui */}
525+
// <motion.div
526+
// className="group relative overflow-hidden bg-white rounded-3xl shadow-xl hover:shadow-2xl transition-all duration-500 transform hover:-translate-y-2"
527+
// initial={{ opacity: 0, x: -50 }}
528+
// animate={{ opacity: 1, x: 0 }}
529+
// transition={{ delay: 0.4 }}
530+
// >
531+
// <div className="absolute inset-0 bg-gradient-to-br from-purple-400 via-pink-400 to-purple-600 opacity-0 group-hover:opacity-10 transition-opacity duration-500"></div>
532+
// <div className="relative p-8 text-center">
533+
// <div className="mb-6 relative">
534+
// <div className="absolute inset-0 bg-gradient-to-r from-purple-400 to-pink-400 rounded-full blur-lg opacity-30 scale-110"></div>
535+
// <img
536+
// src="/speakers/yan_cui.jpg"
537+
// alt="Yan Cui"
538+
// className="relative w-32 h-32 rounded-full object-cover border-4 border-white shadow-xl mx-auto"
539+
// />
540+
// <div className="absolute -top-2 -right-2 bg-gradient-to-r from-purple-500 to-pink-500 text-white text-xs px-2 py-1 rounded-full font-bold">
541+
// ⭐ KEYNOTE
542+
// </div>
543+
// </div>
544+
// <h3 className="mb-3 text-2xl font-bold bg-gradient-to-r from-purple-700 to-pink-600 bg-clip-text text-transparent">
545+
// Yan Cui
546+
// </h3>
547+
// <p className="mb-2 text-lg font-semibold text-purple-600">Lumigo</p>
548+
// <p className="mb-4 text-sm text-gray-600 leading-relaxed">
549+
// AWS Serverless Hero & Author of "Production-Ready Serverless"
550+
// </p>
551+
// <div className="mb-6 p-4 bg-gradient-to-r from-purple-50 to-pink-50 rounded-xl">
552+
// <h4 className="font-bold text-gray-800 text-lg">
553+
// "Serverless, the hard parts"
554+
// </h4>
555+
// </div>
556+
// <div className="flex flex-wrap justify-center gap-2 text-xs">
557+
// <span className="bg-purple-100 text-purple-700 px-3 py-1 rounded-full font-medium">
558+
// 🌟 AWS Hero
559+
// </span>
560+
// <span className="bg-pink-100 text-pink-700 px-3 py-1 rounded-full font-medium">
561+
// 📚 Author
562+
// </span>
563+
// <span className="bg-blue-100 text-blue-700 px-3 py-1 rounded-full font-medium">
564+
// 🎯 Consultant
565+
// </span>
566+
// </div>
567+
// </div>
568+
// </motion.div>
569+
570+
// {/* James Eastham */}
571+
// <motion.div
572+
// className="group relative overflow-hidden bg-white rounded-3xl shadow-xl hover:shadow-2xl transition-all duration-500 transform hover:-translate-y-2"
573+
// initial={{ opacity: 0, x: 50 }}
574+
// animate={{ opacity: 1, x: 0 }}
575+
// transition={{ delay: 0.6 }}
576+
// >
577+
// <div className="absolute inset-0 bg-gradient-to-br from-blue-400 via-purple-400 to-blue-600 opacity-0 group-hover:opacity-10 transition-opacity duration-500"></div>
578+
// <div className="relative p-8 text-center">
579+
// <div className="mb-6 relative">
580+
// <div className="absolute inset-0 bg-gradient-to-r from-blue-400 to-purple-400 rounded-full blur-lg opacity-30 scale-110"></div>
581+
// <img
582+
// src="/speakers/james_eastham.jpg"
583+
// alt="James Eastham"
584+
// className="relative w-32 h-32 rounded-full object-cover border-4 border-white shadow-xl mx-auto"
585+
// />
586+
// <div className="absolute -top-2 -right-2 bg-gradient-to-r from-blue-500 to-purple-500 text-white text-xs px-2 py-1 rounded-full font-bold">
587+
// ⭐ KEYNOTE
588+
// </div>
589+
// </div>
590+
// <h3 className="mb-3 text-2xl font-bold bg-gradient-to-r from-blue-700 to-purple-600 bg-clip-text text-transparent">
591+
// James Eastham
592+
// </h3>
593+
// <p className="mb-2 text-lg font-semibold text-blue-600">Datadog</p>
594+
// <p className="mb-4 text-sm text-gray-600 leading-relaxed">
595+
// Serverless Developer Advocate & Microsoft MVP
596+
// </p>
597+
// <div className="mb-6 p-4 bg-gradient-to-r from-blue-50 to-purple-50 rounded-xl">
598+
// <h4 className="font-bold text-gray-800 text-lg">
599+
// "Why Should You Think Serverless First?"
600+
// </h4>
601+
// </div>
602+
// <div className="flex flex-wrap justify-center gap-2 text-xs">
603+
// <span className="bg-blue-100 text-blue-700 px-3 py-1 rounded-full font-medium">
604+
// ☁️ Advocate
605+
// </span>
606+
// <span className="bg-purple-100 text-purple-700 px-3 py-1 rounded-full font-medium">
607+
// 🚀 DevRel
608+
// </span>
609+
// <span className="bg-green-100 text-green-700 px-3 py-1 rounded-full font-medium">
610+
// 💻 MVP
611+
// </span>
612+
// </div>
613+
// </div>
614+
// </motion.div>
615+
// </div>
616+
// </div>
617+
// );
618+
// };
619619

620620
// use the json schema from the file and create a type

src/Components/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ const Footer = () => {
110110

111111
<div className="flex items-center justify-center md:justify-start gap-2 text-sm text-purple-300">
112112
<span>📅</span>
113-
<span>October 21st, 2025</span>
113+
<span>TBD</span>
114114
<span></span>
115115
<span>📍</span>
116116
<span>Milano, Italy</span>

src/Components/Home.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ const Home = () => {
8585
href="Serverless_Day_2025.ics"
8686
className="hover:underline"
8787
>
88-
October 21st, 2025
88+
Stay tuned for the date!
8989
</a>
9090
</span>
9191
<span className="hidden sm:inline text-white/60"></span>
@@ -96,7 +96,7 @@ const Home = () => {
9696
target="_blank"
9797
className="hover:underline"
9898
>
99-
C30, Milano
99+
TBD
100100
</a>
101101
</span>
102102
</h3>
@@ -122,13 +122,13 @@ const Home = () => {
122122
</motion.div>
123123

124124
{/* CTA Buttons */}
125-
<motion.div
125+
{/* <motion.div
126126
initial={{ opacity: 0, y: 30 }}
127127
animate={{ opacity: 1, y: 0 }}
128128
transition={{ duration: 0.4, delay: 0.5 }}
129129
>
130130
{IS_COMING_SOON && <EnhancedCTAButtons />}
131-
</motion.div>
131+
</motion.div> */}
132132

133133
{/* Additional Info */}
134134
<motion.div

src/Components/Navbar.tsx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ const Navbar = () => {
1818
return () => window.removeEventListener('scroll', handleScroll);
1919
}, []);
2020

21+
const [salesOpened] = useState(true); // Example state
22+
2123
return (
2224
<nav className={`sticky top-0 z-50 transition-all duration-300 ${
2325
scrolled
@@ -60,15 +62,24 @@ const Navbar = () => {
6062

6163
<div className="relative">
6264
<a
63-
href="https://www.eventbrite.it/e/serverlessdays-milano-2025-tickets-1460042399119"
65+
href={salesOpened ? undefined : "eventbrite link goes here"}
6466
target="_blank"
67+
className={salesOpened ? "cursor-not-allowed" : ""}
68+
onClick={(e) => salesOpened && e.preventDefault()} // Extra safety: prevents click if true
6569
>
6670
<Button
6771
variant={'default'}
68-
className="relative overflow-hidden font-bold text-white bg-gradient-to-r from-purple-600 to-pink-600 border-0 rounded-2xl text-sm px-6 py-3 shadow-xl hover:shadow-purple-500/50 transition-all duration-300 ease-in-out hover:scale-105 group"
72+
disabled={salesOpened}
73+
className={`relative overflow-hidden font-bold text-white bg-gradient-to-r from-purple-600 to-pink-600 border-0 rounded-2xl text-sm px-6 py-3 shadow-xl transition-all duration-300 ease-in-out group
74+
${salesOpened
75+
? 'opacity-50 grayscale pointer-events-none' // Disables interaction & dims colors
76+
: 'hover:shadow-purple-500/50 hover:scale-105'
77+
}`}
6978
>
7079
<span className="absolute inset-0 bg-gradient-to-r from-pink-600 to-purple-600 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></span>
71-
<span className="relative">🎫 Buy Ticket</span>
80+
<span className="relative">
81+
{salesOpened ? '🚫 Sales Paused' : '🎫 Buy Ticket'}
82+
</span>
7283
</Button>
7384
</a>
7485
</div>

0 commit comments

Comments
 (0)