Skip to content
Open
153 changes: 153 additions & 0 deletions src/_data/teamMembers.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
{
"teamMembers": [
{
"name": "Nabarun Pal",
"role": "Chair",
"imagelink": "https://nabarun.dev/images/logo.png",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anistark Can we not host the images? If the source is gone, it will be lost here as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏼 Yes, better to host images.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last IIRC we used github profile images, I suggest using some gravatar or third-party integration then pushing so many images in the repo. I was actually very skeptical about the images we have pushed in this PR as well. Having a 3rd party URL lets the users have control over what images they want us to display.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But that was also the reason the images disappeared after a while.
Better to have images as static asset than disappear later. Unless, its a solid link like an s3 or something.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anistark okay, but somehow I am not feeling comfortable hosting images like that. 😓

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then can make sure the source is solid. Like if it's someone's personal website, it's their responsibility. But we might lose on history. Say in 10 years, its all blank boxes XD

If it's gravatar, should be fine. Gravatar won't disappear anytime soon. Hopefully! 😅

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But then for gravatar you would need profile to be created, correct?

hosting is the best solution but then I think we can just use GH as well.

"socials": {
"linkedin": "https://linkedin.com/in/palnabarun",
"web": "https://nabarun.dev/",
"github": "https://github.com/palnabarun",
"twitter": "https://twitter.com/theonlynabarun"
}
},
{
"name": "Kumar Anirudh",
"role": "Chair Emiratus",
"imagelink": "https://anirudha.dev/images/half-clear.png",
"socials": {
"insta": "https://www.instagram.com/anistark/",
"linkedin": "https://www.linkedin.com/in/kranirudha/",
"web": "https://anirudha.dev/",
"github": "https://github.com/anistark",
"twitter": "https://x.com/kranirudha"
}
},
{
"name": "Bhavin Gandhi",
"role": "Co-Chair/ Program Committee",
"imagelink": "",
"socials": {
"linkedin": "https://www.linkedin.com/in/bhavin192",
"web": "https://geeksocket.in/",
"github": "https://github.com/bhavin192",
"twitter": "https://x.com/_bhavin192"
}
},
{
"name": "Pratik Anurag",
"role": "Logistics/ CoC/ Volunteer Management",
"imagelink": "https://avatars.githubusercontent.com/u/57359354?v=4",
"socials": {
"insta": "https://www.instagram.com/garunakitarp/",
"linkedin": "https://in.linkedin.com/in/pratik-anurag",
"twitter": "https://x.com/pratikanurag067/"
}
},
{
"name": "Ashish Kumar Mishra",
"role": "Volunteer Management",
"imagelink": "https://in.pycon.org/2024/image/team/ashish_mishra.jpeg",
"socials": {
"insta": "",
"linkedin": "https://www.linkedin.com/in/ashish10677/",
"web": "https://www.ashishkumarmishra.me/",
"github": "https://github.com/ashish10677",
"twitter": "https://twitter.com/ashish10677"
}
},
{
"name": "Farhaan Bukhsh",
"role": "Website & Technology WG Lead",
"imagelink": "https://avatars.githubusercontent.com/u/7670449?s=400&u=bf6eb65bdf25c98310e3711ca1d8b58a84ae47d6&v=4",
"socials": {
"linkedin": "https://www.linkedin.com/in/farhaanbukhsh/",
"web": "https://farhaan.me/",
"github": "http://github.com/farhaanbukhsh",
"twitter": "https://x.com/fhackdroid"
}
},
{
"name": "Arockiaraj Rayappan",
"role": "Program Committee",
"imagelink": "https://in.pycon.org/2024/image/team/arockiaraj.jpg",
"socials": {
"insta": "https://www.instagram.com/arockiaraj_rayappan/",
"linkedin": "https://www.linkedin.com/in/arockiaraj-rayappan/",
"github": "https://github.com/",
"twitter": "https://x.com/arockiaraj1994"
}
},
{
"name": "Rayan Das",
"role": "Ticketing & Registration",
"imagelink": "https://in.pycon.org/2024/image/team/rayan_das.png",
"socials": {
"insta": "https://instagram.com/raydeeam",
"linkedin": "https://www.linkedin.com/in/rayandas",
"twitter": "https://x.com/raydeeam"
}
},
{
"name": "Abishek Mishra",
"role": "Sponsorship",
"imagelink": "https://raw.githubusercontent.com/abhishekmishragithub/Jekyll-site/master/assets/img/abhishek_mishra_001_adv-fotor.png",
"socials": {
"insta": "https://instagram.com/stalwartcoder",
"linkedin": "https://linkedin.com/in/stalwartcoder",
"web": "https://abhishekmishra.dev/about",
"twitter": "https://x.com/stalwartcoder"
}
},
{
"name": "Dhanush Kandhan",
"role": "Website & Technology",
"imagelink": "https://dhanu.pages.dev/me.jpg",
"socials": {
"insta": "https://instagram.com/itsmedhanushk_",
"linkedin": "https://www.linkedin.com/in/dhanushkandhan/",
"web": "https://dhanu.pages.dev/",
"github": "https://github.com/dhanushk-offl",
"twitter": "https://x.com/akadhanu"
}
},
{
"name": "Shabnam",
"role": "Design/CoC",
"imagelink": "https://avatars.githubusercontent.com/u/9293037?v=4",
"socials": {
"linkedin": "https://www.linkedin.com/in/shabnam1/",
"twitter": "https://x.com/iishabbyii"
}
},
{
"name": "Arthi Murali ",
"role": "Content & Communication",
"imagelink": "https://in.pycon.org/2024/image/team/arthi.jpg",
"socials": {
"insta": "https://www.instagram.com/arthi_ishita",
"linkedin": "https://www.linkedin.com/in/meetarthi/",
"twitter": "https://x.com/meetarthi/"
}
},
{
"name": "Surbhi Kathuria",
"role": "Content & Communication",
"imagelink": "/img/team/Surbhi.jpg",
"socials": {
"insta": "https://www.instagram.com/surbhik09/?next=%2F&hl=en",
"linkedin": "https://www.linkedin.com/in/surbhikathuria09",
"github": "https://github.com/SurbhiK-09/"
}
},
{
"name": "Kiritheka Dhanabalan",
"role": "Program Committee",
"imagelink": "/img/team/Kiritheka-Dhanabalan1.jpg",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

absolute urls.

"socials": {
"linkedin": "https://www.linkedin.com/in/kiritheka-dhanabalan",
"github": "https://github.com/kirithekaDhanabalan"
}
}
]
}
14 changes: 11 additions & 3 deletions src/_includes/navbar.njk
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
</a>
<ul class="flex items-center justify-center w-full gap-8 relative mb-0">
{% set menuItems = [
{
"name": "About",
"hasSubmenu": true,
"submenu": [
{"name": "About Team", "link": "about"},
{"name": "FAQ", "link": "faq"}
]
},
{
"name": "CFP",
"link": "cfp",
Expand Down Expand Up @@ -86,7 +94,7 @@
{% endfor %}
</ul>
<div class="absolute right-0">
<a href="{{ env.baseUrl }}tickets" class="font-medium text-black bg-pycon-lime/90 hover:bg-pycon-lime text-sm py-2 px-4 rounded-full transition-all duration-200 no-underline nav-button">
<a href="{{ env.baseUrl }}tickets" class="font-medium text-black bg-pycon-lime/90 hover:bg-pycon-lime text-sm py-2 px-4 rounded-full transition-all duration-200 no-underline nav-button">
Get Tickets
</a>
</div>
Expand Down Expand Up @@ -175,8 +183,8 @@
{% endif %}
{% endfor %}

<div class="mt-6">
<a href="{{ env.baseUrl }}tickets" class="flex justify-center items-center bg-pycon-lime text-black font-medium rounded-lg p-4 text-center w-full no-underline text-base transition-all duration-200 hover:bg-pycon-lime/80">
<div class="mt-6 flex justify-center items-center">
<a href="{{ env.baseUrl }}tickets" class="font-medium text-black bg-pycon-lime/90 hover:bg-pycon-lime text-sm py-2 px-4 rounded-full transition-all duration-200 no-underline nav-button">
Get Tickets
</a>
</div>
Expand Down
130 changes: 130 additions & 0 deletions src/about.njk
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a about directory. Put this file inside it for structural consistency.

Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
---
title: About the Team - PyCon India 2025
description: PyCon India is a volunteer driven conference. Like every year, we need enthusiastic and driven volunteer drive to make PyCon India successful.
layout: base.njk
---
<header>
{% set activePage = 'about' %}
</header>

<div class="min-h-0 bg-pycon-blue">
<div class="container mx-auto px-8 py-16">
<div class="flex flex-col lg:flex-row items-center justify-between min-h-[70vh] gap-8">
<!-- Left Content Section -->
<div class="flex-1 max-w-2xl text-center lg:text-left">
<h1 class="text-4xl md:text-3xl lg:text-4xl font-bold text-white mb-6 lg:mb-8 leading-tight">
The Origin Story
</h1>

<h2 class="text-lg md:text-xl lg:text-2xl text-blue-100 mb-4 lg:mb-6 font-medium">
About PyCon India 2025
</h2>

<p class="text-base md:text-lg text-blue-50 leading-relaxed max-w-lg mx-auto lg:mx-0 mb-8">
PyCon India is a volunteer driven conference. Like every year, we need enthusiastic and driven volunteer drive to make PyCon India successful.
</p>

<!-- Image for mobile - shown below content -->
<div class="flex lg:hidden justify-center items-center mt-8">
<div class="max-w-sm w-full">
<img
src="/img/assets/about-team.svg"
alt="Team collaboration illustration"
class="w-full h-auto"
/>
</div>
</div>
</div>

<!-- Right Image Section - hidden on mobile -->
<div class="hidden lg:flex flex-2 justify-center items-center">
<div class="max-w-sm md:max-w-md w-full">
<img
src="/img/assets/about-team.svg"
alt="Team collaboration illustration Part"
class="w-full h-auto transition-all duration-300 animate-float"
/>
</div>
</div>
</div>
</div>
</div>

<!-- Team Section -->
<div class="min-h-screen bg-gray-50 py-16 mb-16">
<div class="container mx-auto px-8">
<div class="flex flex-col justify-start items-start gap-3.5 mb-16">
<h1 class="text-4xl md:text-3xl lg:text-4xl font-bold text-black leading-tight">The Team</h1>
</div>

<!-- Team Grid -->
<div class="grid grid-cols-2 lg:grid-cols-5 gap-4 lg:gap-8">
{% for member in teamMembers.teamMembers %}
<div class="team-card-3d w-full">
<div class="team-card-content w-full flex flex-col justify-start items-start">
<!-- Image Container -->
<div class="w-full h-32 sm:h-36 lg:h-[147px] bg-[#8385f2] overflow-hidden relative">
{% if member.imagelink %}
<img src="{{ member.imagelink }}"
alt="{{ member.name }}"
class="w-full h-full object-cover team-image"
loading="lazy"
onerror="this.style.display='none'">
{% endif %}
</div>

<div class="w-full flex flex-col justify-start items-start gap-2 lg:gap-3 pt-3">
<!-- Name -->
<div class="w-full text-black text-sm sm:text-base lg:text-2xl font-normal acid-grotesk leading-tight lg:leading-7">
{{ member.name }}
</div>

<!-- Role -->
<div class="w-full text-slate-400 text-xs sm:text-sm lg:text-base font-normal acid-grotesk leading-tight lg:leading-7">
{{ member.role }}
</div>

<!-- Social Icons -->
<div class="w-full flex justify-start items-center gap-2 lg:gap-4 flex-wrap">
{% if member.socials.insta %}
<a href="{{ member.socials.insta }}" target="_blank" rel="noopener noreferrer"
class="social-icon-3d p-1 rounded-full border border-slate-400 flex justify-center items-center flex-shrink-0">
<img class="w-3 h-3 lg:w-4 lg:h-4 text-slate-400" src="/img/assets/socials/insta.svg" alt="Instagram Icon" />
</a>
{% endif %}

{% if member.socials.linkedin %}
<a href="{{ member.socials.linkedin }}" target="_blank" rel="noopener noreferrer"
class="social-icon-3d p-1 rounded-full border border-slate-400 flex justify-center items-center flex-shrink-0">
<img class="w-3 h-3 lg:w-4 lg:h-4 text-slate-400" src="/img/assets/socials/linkedin.svg" alt="LinkedIn Icon" />
</a>
{% endif %}

{% if member.socials.web %}
<a href="{{ member.socials.web }}" target="_blank" rel="noopener noreferrer"
class="social-icon-3d p-1 rounded-full border border-slate-400 flex justify-center items-center flex-shrink-0">
<img class="w-3 h-3 lg:w-4 lg:h-4 text-slate-400" src="/img/assets/socials/web.svg" alt="Website Icon" />
</a>
{% endif %}

{% if member.socials.github %}
<a href="{{ member.socials.github }}" target="_blank" rel="noopener noreferrer"
class="social-icon-3d p-1 rounded-full border border-slate-400 flex justify-center items-center flex-shrink-0">
<img class="w-3 h-3 lg:w-4 lg:h-4 text-slate-400" src="/img/assets/socials/github.svg" alt="GitHub Icon" />
</a>
{% endif %}

{% if member.socials.twitter %}
<a href="{{ member.socials.twitter }}" target="_blank" rel="noopener noreferrer"
class="social-icon-3d p-1 rounded-full border border-slate-400 flex justify-center items-center flex-shrink-0">
<img class="w-3 h-3 lg:w-4 lg:h-4 text-slate-400" src="/img/assets/socials/twitter.svg" alt="Twitter Icon" />
</a>
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
Loading