+
{[...featuredSpeakers, ...featuredSpeakers].map((speaker, _index) => (
diff --git a/src/components/sponsors/sponsor-tier.astro b/src/components/sponsors/sponsor-tier.astro
index 9f8b31fde..3a3c3d1f2 100644
--- a/src/components/sponsors/sponsor-tier.astro
+++ b/src/components/sponsors/sponsor-tier.astro
@@ -29,15 +29,16 @@ const { tier, top } = Astro.props;
diff --git a/src/components/sponsors/sponsors.astro b/src/components/sponsors/sponsors.astro
index 3c77ebdfe..10a72b0d1 100644
--- a/src/components/sponsors/sponsors.astro
+++ b/src/components/sponsors/sponsors.astro
@@ -78,6 +78,7 @@ const topTier = sponsorTiers.find((tier) => tier.name === "Keystone");
{sponsorTiers.length > 0 && }
+
-
+
@@ -80,4 +80,20 @@ const externalDomain = new URL(Astro.site || "").hostname;
footer {
@apply bg-primary py-10;
}
+
+ @media screen and (width>1200px){
+ main {
+ margin-bottom:800px;
+ }
+ footer {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: 40px 20px 40px 20px;
+ text-align: center;
+ z-index: -1;
+ /*height: 600px;*/
+ }
+}
diff --git a/src/pages/community-partners.astro b/src/pages/community-partners.astro
index 5e168b12b..cb19d7bbf 100644
--- a/src/pages/community-partners.astro
+++ b/src/pages/community-partners.astro
@@ -19,7 +19,7 @@ const sponsors = await getCollection("sponsors", ({ data }) => {
>
-
+
{
sponsors.map((sponsor) => {
if (!(sponsor.data.jobs && sponsor.data.jobs.length > 0)) return;
diff --git a/src/pages/sessions.astro b/src/pages/sessions.astro
index 382e8972d..e15b8f05c 100644
--- a/src/pages/sessions.astro
+++ b/src/pages/sessions.astro
@@ -2,6 +2,7 @@
import { getCollection } from "astro:content";
import Layout from "../layouts/Layout.astro";
import Prose from "../components/prose/prose.astro";
+import Headline from "@ui/Headline.astro"
import Filter from "../components/sessions/filter.astro";
import ListSessions from "../components/sessions/list-sessions.astro";
import Section from "@ui/Section.astro";
@@ -26,18 +27,16 @@ const description = "A list of all the sessions at the conference";
+
-
+
-
-
+
diff --git a/src/pages/speakers.astro b/src/pages/speakers.astro
index 3b448f512..1a6cd1c3a 100644
--- a/src/pages/speakers.astro
+++ b/src/pages/speakers.astro
@@ -1,7 +1,7 @@
---
import { getCollection, type CollectionEntry } from "astro:content";
import Layout from "@layouts/Layout.astro";
-import Prose from "@components/prose/prose.astro";
+import Headline from "@ui/Headline.astro"
import { Image } from "astro:assets";
import Section from "@ui/Section.astro";
@@ -65,9 +65,8 @@ const description = "Our conference speakers organized alphabetically";
-
-
+
+
{
groupKeys.map((key, _index) => (
diff --git a/src/styles/global.css b/src/styles/global.css
index 9ff40d31c..c2d5e81ac 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -270,3 +270,26 @@ main a[href^="#"]::before {
background-size: 65%;
background-color: white;
}
+
+.social-icon {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 36px;
+ height: 36px;
+ transition:
+ transform 0.3s ease,
+ color 0.3s ease;
+}
+
+.social-icon:hover {
+ transform: scale(1.2) rotate(6deg);
+}
+
+.social-icon-inner {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ height: 100%;
+}
{
sponsorTiers.map((tier, index) => (
@@ -86,4 +87,5 @@ const topTier = sponsorTiers.find((tier) => tier.name === "Keystone");
))
}
+
diff --git a/src/components/ui/Button.astro b/src/components/ui/Button.astro
index 44081f67c..270f1b99e 100644
--- a/src/components/ui/Button.astro
+++ b/src/components/ui/Button.astro
@@ -11,6 +11,7 @@ const {
outline = false,
disabled = false,
clear = false,
+ custom = false,
isExternal,
icon,
iconSvg = false,
@@ -40,7 +41,7 @@ const slotContent = await Astro.slots.render('default');
href={disabled ? undefined : url}
title={title}
aria-label={title ? title : slotContent}
- class={`${baseClasses}
+ class={custom ? `${className}`: `${baseClasses}
${clear ? clearClasses : outline ? outlineClasses : secondary ? secondaryClasses : primaryClasses}
${disabled ? disabledClasses : ""}
${className}`}
diff --git a/src/components/ui/Headline.astro b/src/components/ui/Headline.astro
index 4fa7131b6..5af5ee7cf 100644
--- a/src/components/ui/Headline.astro
+++ b/src/components/ui/Headline.astro
@@ -24,7 +24,7 @@ const isCenter = center ? "text-center" : "";
h4,
h5,
h6 {
- font-weight: bold;
+ font-weight: 500;
font-family: var(--font-display);
line-height: 1.25;
@@ -84,4 +84,8 @@ const isCenter = center ? "text-center" : "";
--min-fs: 1;
--max-fs: 1.5;
}
+
+ a:hover {
+ color:var(--color-primary-hover);
+ }
diff --git a/src/content/config.ts b/src/content/config.ts
index a43d00f8d..9e9b3dee4 100644
--- a/src/content/config.ts
+++ b/src/content/config.ts
@@ -203,11 +203,14 @@ const sponsors = defineCollection({
socials: z
.object({
linkedin: z.string().url().optional().nullable(),
- twitter: z.string().url().optional().nullable(),
github: z.string().url().optional().nullable(),
- discord: z.string().url().optional().nullable(),
mastodon: z.string().url().optional().nullable(),
bluesky: z.string().url().optional().nullable(),
+ twitter: z.string().url().optional().nullable(),
+ instagram: z.string().url().optional().nullable(),
+ discord: z.string().url().optional().nullable(),
+ facebook: z.string().url().optional().nullable(),
+ youtube: z.string().url().optional().nullable(),
})
.optional(),
logo_padding: z.string().optional(),
diff --git a/src/content/pages/childcare.mdx b/src/content/pages/childcare.mdx
index c5d9513b7..17bb527b4 100644
--- a/src/content/pages/childcare.mdx
+++ b/src/content/pages/childcare.mdx
@@ -8,7 +8,7 @@ import childcareArea from "./images/childcare-area.jpg";
import childcareBalls from "./images/childcare-balls.jpg";
-## Childcare at EuroPython 2025
+# Childcare at EuroPython 2025
We’re committed to making EuroPython as inclusive and accessible as possible — and that includes supporting parents attending the conference.
diff --git a/src/content/pages/venue.mdx b/src/content/pages/venue.mdx
index 0dd9a545a..f0d2e8efd 100644
--- a/src/content/pages/venue.mdx
+++ b/src/content/pages/venue.mdx
@@ -8,7 +8,7 @@ import { Image } from "astro:assets";
import venueImage from "./images/prague.jpg";
import pccEntrance from "images/entrance5-pcc5.jpg";
-## Conference Venue - Prague Congress Centre
+# Conference Venue - Prague Congress Centre
[The Prague Congress Centre](https://www.praguecc.cz/en/homepage) will host
EuroPython 2025 from **July 14th to July 20th**. It’s a renowned venue, having
diff --git a/src/content/sponsors/bloomberg/bloomberg.svg b/src/content/sponsors/bloomberg/bloomberg.svg
new file mode 100644
index 000000000..20dc85555
--- /dev/null
+++ b/src/content/sponsors/bloomberg/bloomberg.svg
@@ -0,0 +1,180 @@
+
+
+
diff --git a/src/content/sponsors/bloomberg/display.png b/src/content/sponsors/bloomberg/display.png
new file mode 100644
index 000000000..9760d7825
Binary files /dev/null and b/src/content/sponsors/bloomberg/display.png differ
diff --git a/src/content/sponsors/bloomberg/index.md b/src/content/sponsors/bloomberg/index.md
new file mode 100644
index 000000000..f5b024488
--- /dev/null
+++ b/src/content/sponsors/bloomberg/index.md
@@ -0,0 +1,70 @@
+---
+name: Bloomberg
+url: https://bloomberg.net
+description:
+ "Bloomberg is building the world's most trusted information network for
+ financial professionals. Our 9,000+ dedicated engineers are advancing and
+ building new systems for the Bloomberg Terminal to solve complex, real-world
+ problems. We trust our teams to choose the right technologies for the job; at
+ Bloomberg, the answer’s often Python. Our active community of 4,000+ Python
+ developers have their hands in everything from financial analytics and data
+ science to contributing to open source technologies like Project Jupyter.
+ Bloomberg is a Visionary Sponsor of the Python Software Foundation and hosts
+ many Python community events around the world."
+socials:
+ linkedin: https://www.linkedin.com/company/bloomberg/
+ twitter: https://x.com/bloomberg
+ facebook: https://www.facebook.com/bloombergbusiness/
+ instagram: https://www.instagram.com/bloomberg/
+ youtube: https://www.youtube.com/@markets
+tier: Platinum
+logo_padding: 0 10px
+draft: true
+---
+
+Our culture: \
+We don't just work. \
+We thrive. =================================================
+
+Here at Bloomberg, employees are the beating heart of our organization. Your
+passion drives our success, shapes our culture and makes us truly unique.
+
+Working here means you'll be surrounded by people who value nurturing potential,
+unleashing creativity, leading the way on world-changing solutions and seeing
+communities flourish.
+
+We don't just discuss culture.\
+We create it together.
+
+---
+
+
+
+### We're passionate.
+
+We celebrate you, recognizing your talents and fueling your ambitions. Because
+when you're at the top of your game, we're at the top of ours.
+
+
+
+### We're inspired.
+
+Helping you find your purpose is our purpose --- whether that means giving back
+to communities through volunteering, learning from the work of our charitable
+partners or enriching perspectives.
+
+
+
+### We're curious.
+
+Supporting you in your pursuit of healthier, happier lives through personalized
+benefits and enrichment programs is always front of mind, along with continuous
+learning and career development.
+
+
+
+### We're proud.
+
+Championing a culture where everyone belongs --- through ERGs (Employee Resource
+Groups), social activities and networking --- is something we never negotiate or
+stop striving towards.
diff --git a/src/content/sponsors/bloomberg/senior-ml-platform-engineer-artificial-intelligence.md b/src/content/sponsors/bloomberg/senior-ml-platform-engineer-artificial-intelligence.md
new file mode 100644
index 000000000..356af57dd
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-ml-platform-engineer-artificial-intelligence.md
@@ -0,0 +1,14 @@
+---
+title: Senior ML Platform Engineer - Artificial Intelligence
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-ML-Platform-Engineer-London-Artificial-Intelligence/11268
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineer-ib-integrations.md b/src/content/sponsors/bloomberg/senior-software-engineer-ib-integrations.md
new file mode 100644
index 000000000..97c0dc9d1
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineer-ib-integrations.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer - IB Integrations
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-IB-Integrations-EXT-LDN/10463
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineer-java-infrastructure.md b/src/content/sponsors/bloomberg/senior-software-engineer-java-infrastructure.md
new file mode 100644
index 000000000..4c137796e
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineer-java-infrastructure.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer - Java Infrastructure
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-Java-Infrastructure/10394
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineer-market-oversight.md b/src/content/sponsors/bloomberg/senior-software-engineer-market-oversight.md
new file mode 100644
index 000000000..ec4e7fc48
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineer-market-oversight.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer - Market Oversight
+location: Frankfurt, Germany
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-Market-Oversight/9230
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineer-network-production-engineer.md b/src/content/sponsors/bloomberg/senior-software-engineer-network-production-engineer.md
new file mode 100644
index 000000000..6d12b2e34
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineer-network-production-engineer.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer - Network Production Engineer
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-Network-Production-Engineer/11694
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineer-port-data-validation-services.md b/src/content/sponsors/bloomberg/senior-software-engineer-port-data-validation-services.md
new file mode 100644
index 000000000..60cdae2fb
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineer-port-data-validation-services.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer - PORT Data Validation Services
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-PORT-Data-Validation-Services/10371
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineersre-managed-systems-engineering.md b/src/content/sponsors/bloomberg/senior-software-engineersre-managed-systems-engineering.md
new file mode 100644
index 000000000..c7b9c5ad4
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineersre-managed-systems-engineering.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer/SRE - Managed Systems Engineering
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-SRE-Managed-Systems-Engineering/9681
+draft: true
+---
diff --git a/src/content/sponsors/bloomberg/senior-software-engineersre-trade-automation-and-execution.md b/src/content/sponsors/bloomberg/senior-software-engineersre-trade-automation-and-execution.md
new file mode 100644
index 000000000..46a4be9da
--- /dev/null
+++ b/src/content/sponsors/bloomberg/senior-software-engineersre-trade-automation-and-execution.md
@@ -0,0 +1,14 @@
+---
+title: Senior Software Engineer/SRE - Trade Automation and Execution
+location: London, United Kingdom
+type:
+level:
+salary:
+tags: []
+description:
+responsibilities:
+requirements:
+benefits:
+apply_link: https://bloomberg.avature.net/careers/JobDetail/Senior-Software-Engineer-SRE-Trade-Automation-Execution/9692
+draft: true
+---
diff --git a/src/data/links.json b/src/data/links.json
index b28b7d932..f1736d9c1 100644
--- a/src/data/links.json
+++ b/src/data/links.json
@@ -4,9 +4,17 @@
"name": "Programme",
"items": [
{
- "name": "Programme & Events Overview",
+ "name": "Overview",
"path": "/overview"
},
+ {
+ "name": "Talks Schedule",
+ "path": "/schedule/talks"
+ },
+ {
+ "name": "Tutorials Schedule",
+ "path": "/schedule/tutorials"
+ },
{
"name": "List of Sessions",
"path": "/sessions"
@@ -19,26 +27,31 @@
"name": "Tracks",
"path": "/tracks"
},
- {
- "name": "Selection Process",
- "path": "/selection"
- },
- {
- "name": "Community Voting",
- "path": "/voting"
- },
{
"name": "Speaker Mentorship",
"path": "/mentorship"
+ }
+ ]
+ },
+ {
+ "name": "Events",
+ "items": [
+ {
+ "name": "Speakers' Dinner",
+ "path": "/speakers-dinner"
},
{
- "name": "C API Summit",
- "path": "/c-api-summit"
+ "name": "Beginners' Day",
+ "path": "/beginners-day"
},
{
- "name": "WebAssembly Summit",
+ "name": "WASM Summit",
"path": "/wasm-summit"
},
+ {
+ "name": "C-API Summit",
+ "path": "/c-api-summit"
+ },
{
"name": "Rust Summit",
"path": "/rust-summit"
@@ -46,34 +59,73 @@
]
},
{
- "name": "Events",
+ "name": "Venue",
"items": [
{
- "name": "Speakers' Dinner",
- "path": "/speakers-dinner"
+ "name": "Prague",
+ "path": "/prague"
},
{
- "name": "Beginners' Day",
- "path": "/beginners-day"
+ "name": "Venue",
+ "path": "/venue"
}
]
},
{
- "name": "Schedule",
+ "name": "Sponsorship",
"items": [
{
- "name": "Tutorials",
- "path": "/schedule/tutorials"
+ "name": "Sponsor Packages",
+ "path": "/sponsorship/sponsor"
},
{
- "name": "Talks",
- "path": "/schedule/talks"
+ "name": "Sponsor Information",
+ "path": "/sponsorship/information"
}
]
},
{
- "name": "Prague & Venue",
+ "name": "Registration",
"items": [
+ {
+ "name": "Tickets",
+ "path": "/tickets"
+ },
+ {
+ "name": "Financial Aid",
+ "path": "/finaid"
+ },
+ {
+ "name": "Visa Support Letter",
+ "path": "/visa"
+ },
+ {
+ "name": "Childcare",
+ "path": "/childcare"
+ },
+ {
+ "name": "FAQ",
+ "path": "/faq"
+ }
+ ]
+ },
+ {
+ "name": "Community",
+ "path": "/community-partners"
+ },
+ {
+ "name": "Jobs",
+ "path": "/jobs"
+ }
+ ],
+ "footer": [
+ {
+ "name": "Quick links",
+ "items": [
+ {
+ "name": "FAQ",
+ "path": "/faq"
+ },
{
"name": "Prague",
"path": "/prague"
@@ -81,41 +133,94 @@
{
"name": "Venue",
"path": "/venue"
+ },
+ {
+ "name": "Jobs",
+ "path": "/jobs"
}
]
},
{
- "name": "Sponsorship",
+ "name": "Programme",
"items": [
{
- "name": "Sponsor Packages",
- "path": "/sponsorship/sponsor"
+ "name": "Overview",
+ "path": "/overview"
},
{
- "name": "Sponsor Information",
- "path": "/sponsorship/information"
+ "name": "Talks Schedule",
+ "path": "/schedule/talks"
+ },
+ {
+ "name": "Tutorials Schedule",
+ "path": "/schedule/tutorials"
+ },
+ {
+ "name": "List of Sessions",
+ "path": "/sessions"
+ },
+ {
+ "name": "List of Speakers",
+ "path": "/speakers"
+ },
+ {
+ "name": "Tracks",
+ "path": "/tracks"
+ },
+ {
+ "name": "Speaker Mentorship",
+ "path": "/mentorship"
}
]
},
{
- "name": "Registration",
+ "name": "Events",
"items": [
{
- "name": "Tickets information",
- "path": "/tickets"
+ "name": "Speakers' Dinner",
+ "path": "/speakers-dinner"
+ },
+ {
+ "name": "Beginners' Day",
+ "path": "/beginners-day"
+ },
+ {
+ "name": "WASM Summit",
+ "path": "/wasm-summit"
+ },
+ {
+ "name": "C-API Summit",
+ "path": "/c-api-summit"
+ },
+ {
+ "name": "Rust Summit",
+ "path": "/rust-summit"
+ },
+ {
+ "name": "Community",
+ "path": "/community-partners"
}
]
},
{
- "name": "Info & Support",
+ "name": "Sponsorship",
"items": [
{
- "name": "Code of Conduct",
- "path": "https://www.europython-society.org/coc/"
+ "name": "Sponsor Packages",
+ "path": "/sponsorship/sponsor"
},
{
- "name": "FAQ",
- "path": "/faq"
+ "name": "Sponsor Information",
+ "path": "/sponsorship/information"
+ }
+ ]
+ },
+ {
+ "name": "Registration",
+ "items": [
+ {
+ "name": "Tickets",
+ "path": "/tickets"
},
{
"name": "Financial Aid",
@@ -132,15 +237,20 @@
]
},
{
- "name": "Jobs",
- "path": "/jobs"
+ "name": "Sites",
+ "items": [
+ {
+ "name": "EuroPython Society",
+ "path": "https://europython-society.org"
+ },
+ {
+ "name": "EuroPython Blog",
+ "path": "https://blog.europython.eu"
+ }
+ ]
}
],
- "footer": [
- {
- "name": "2024 Photos",
- "path": "https://ep2024.europython.eu/photos"
- },
+ "terms": [
{
"name": "Contacts",
"path": "/contacts"
@@ -149,9 +259,22 @@
"name": "Terms",
"path": "/terms"
},
+ {
+ "name": "Code of Conduct",
+ "path": "https://www.europython-society.org/coc/"
+ },
{
"name": "Privacy Policy",
"path": "https://www.europython-society.org/privacy/"
}
- ]
+ ],
+ "socials": {
+ "mastodon": "https://fosstodon.org/@europython",
+ "linkedin": "https://linkedin.com/company/europython",
+ "github": "https://github.com/europython",
+ "bluesky": "https://bsky.app/profile/europython.eu",
+ "twitter": "https://x.com/europython",
+ "instagram": "https://instagram.com/europython/",
+ "youtube": "https://youtube.com/channel/UC98CzaYuFNAA_gOINFB0e4Q"
+ }
}
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index 8aa0dcb8d..56ac93229 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -35,7 +35,7 @@ const externalDomain = new URL(Astro.site || "").hostname;
EuroPython is a community-driven conference, we wouldn't be able to make as much impact without the support of our brilliant Community Partners. Get to know our partners better below (alphabetical order).
diff --git a/src/pages/jobs.astro b/src/pages/jobs.astro index 10f8d4933..d90b87872 100644 --- a/src/pages/jobs.astro +++ b/src/pages/jobs.astro @@ -2,7 +2,7 @@ import { type CollectionEntry, getEntry, getCollection } from "astro:content"; import Layout from "@layouts/SectionLayout.astro"; - +import Headline from "@ui/Headline.astro" import SponsorCard from "@components/SponsorCard.astro"; import JobCard from "@components/JobCard.astro"; import TwoCols from "@components/TwoCols.astro"; @@ -52,6 +52,8 @@ sponsors.forEach((sponsor) => { title="EuroPython 2025 | July 14th-20th 2025 | Prague, Czech Republic & Remote" description="EuroPython is the largest Python conference in Europe. We are looking forward to seeing you in Prague, Czech Republic & Remote from July 14th-20th 2025." > + +Sessions
Here you can find a list of all the sessions at the conference.
You can filter the sessions by track, type, and level.
-