diff --git a/public/images/social-event-archery.jpg b/public/images/social-event-archery.jpg new file mode 100644 index 000000000..1d37c3ce5 Binary files /dev/null and b/public/images/social-event-archery.jpg differ diff --git a/public/images/social-event-campfire.jpg b/public/images/social-event-campfire.jpg new file mode 100644 index 000000000..28b427314 Binary files /dev/null and b/public/images/social-event-campfire.jpg differ diff --git a/public/images/social-event-night.jpg b/public/images/social-event-night.jpg new file mode 100644 index 000000000..37788db20 Binary files /dev/null and b/public/images/social-event-night.jpg differ diff --git a/public/images/sprints.png b/public/images/sprints.png new file mode 100644 index 000000000..163d5dcea Binary files /dev/null and b/public/images/sprints.png differ diff --git a/src/components/sections/updates/week-card.astro b/src/components/sections/updates/week-card.astro new file mode 100644 index 000000000..5370c5706 --- /dev/null +++ b/src/components/sections/updates/week-card.astro @@ -0,0 +1,27 @@ +--- +import { getEntry } from "astro:content"; +import Card from "./card.astro"; + +export interface Props { + id: string; +} + +const { id } = Astro.props; + +const deadline = await getEntry("week", id); + +if (!deadline) { + throw new Error(`No deadline found with id ${id}`); +} + +const { Content } = await deadline.render(); +--- + + + + diff --git a/src/components/sections/updates/week.astro b/src/components/sections/updates/week.astro new file mode 100644 index 000000000..1a60e9fc6 --- /dev/null +++ b/src/components/sections/updates/week.astro @@ -0,0 +1,19 @@ +--- +import DeadlineCard from "./week-card.astro"; +import Headline from "@ui/Headline.astro"; +import { getCollection } from "astro:content"; +import Section from "@ui/Section.astro"; + +let deadlines = await getCollection("week"); +deadlines = deadlines + .sort((a, b) => a.slug.localeCompare(b.slug)) + .reverse() + .slice(0, 3); +--- + +
+ +
+ {deadlines.map((deadline) => )} +
+
diff --git a/src/content/config.ts b/src/content/config.ts index 059836be6..cb5537bb5 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -25,6 +25,17 @@ const deadlines = defineCollection({ }), }); +const week = defineCollection({ + type: "content", + schema: ({ image }) => + z.object({ + title: z.string(), + subtitle: z.string(), + url: z.string(), + image: image(), + }), +}); + const keynoters = defineCollection({ type: "content", schema: ({ image }) => @@ -244,6 +255,7 @@ export const collections = { days, pages, deadlines, + week, sessions, speakers, keynoters, diff --git a/src/content/pages/pyladies.md b/src/content/pages/pyladies.md new file mode 100644 index 000000000..4bb36a340 --- /dev/null +++ b/src/content/pages/pyladies.md @@ -0,0 +1,57 @@ +--- +title: PyLadies Events +subtitle: Lunch, Workshops & Networking +--- + +# PyLadies Events + +We’re excited to announce a range of events for underrepresented groups in +computing this year! 🎉 Whether you're new to PyLadies or a long-time supporter, +we warmly welcome you to join us and be part of our supportive community. + +These events are open only to those who have a conference ticket, giving our +attendees an exclusive opportunity to connect, share, and grow together. + +![PyLadies Lunch Photo](./images/pyladies-events.jpg) + +## PyLadies Lunch + +Join us for a special lunch event aimed at fostering community and empowerment +in tech. Enjoy meaningful conversations and networking opportunities. + +WHEN? Thursday, 17th July 2025, 12:30 to 14:00. + +WHERE? Prague Congress Centre (PCC), VIP lunch area. + +## More Events Coming Soon! + + diff --git a/src/content/pages/social-event.md b/src/content/pages/social-event.md index e8b26a8fe..e6f50a969 100644 --- a/src/content/pages/social-event.md +++ b/src/content/pages/social-event.md @@ -35,9 +35,20 @@ community. Let’s make some music together! ## Pack Your Picnic Blankets & Sportswear -Feel like moving around? There will be room to play volleyball, foot tennis, -pétanque, or croquet. Whether you’re joining in or just watching from your -blanket, come as you are and enjoy the summer vibe! +Feel like moving around? We’ve got a variety of outdoor sports confirmed for the +evening, including volleyball, croquet, pétanque, tennis, and table tennis! + + + +Whether you’re joining in or just watching from your blanket, come as you are +and enjoy the summer vibe! Don’t forget to bring your sporty clothes or +comfortable shoes if you’d like to take part in the games! + + + +![Night view of the social event venue](/images/social-event-night.jpg) + +![Campfire at the social event venue](/images/social-event-campfire.jpg) ## Tickets diff --git a/src/content/pages/sprints.md b/src/content/pages/sprints.md new file mode 100644 index 000000000..4c73fd8b9 --- /dev/null +++ b/src/content/pages/sprints.md @@ -0,0 +1,56 @@ +--- +title: EuroPython 2025 Sprints Weekend +subtitle: Organise or join a sprint at EuroPython 2025! +--- + +# EuroPython 2025 Sprints + +Join us for two days of open-source hacking, learning, and collaboration! As is +tradition, the sprints will happen the weekend after EuroPython—this year on +Saturday and Sunday, 19–20 July. + +The conference team provides the space, lunch, and coffee—you bring the energy, +ideas, and code. Whether you're maintaining a major library or trying your first +contribution, there's something for everyone. + +## What is a Sprint? + +Sprints are informal coding sessions (think: mini hackathons) where people +gather to work on open-source projects, share ideas, and solve problems +together. + +![Sprints photos collage](/images/sprints.png) + +## Who Can Attend: + +- EuroPython ticket holders (Conference, Tutorial, or Combined) can join the + sprints for free—just make sure to select sprint attendance when configuring + your ticket. +- No ticket? No problem. You’ll be able to register for the sprints for + free—details coming soon on our [tickets page](https://europython.eu/tickets). + +## Open-Source Projects + +More info soon! + + diff --git a/src/content/sponsors/gel/gel.svg b/src/content/sponsors/gel/gel.svg index e555a9ba2..331cdb06c 100644 --- a/src/content/sponsors/gel/gel.svg +++ b/src/content/sponsors/gel/gel.svg @@ -1,18 +1,10 @@ - - - - + + + + + + + + + diff --git a/src/content/sponsors/gel/index.md b/src/content/sponsors/gel/index.md index d7984d070..857e69898 100644 --- a/src/content/sponsors/gel/index.md +++ b/src/content/sponsors/gel/index.md @@ -14,7 +14,7 @@ socials: discord: "https://discord.gg/gel" youtube: "https://www.youtube.com/@EdgeDB" tier: Platinum -logo_padding: 10px +logo_padding: 5px draft: true --- diff --git a/src/content/sponsors/pydantic/display.png b/src/content/sponsors/pydantic/display.png new file mode 100644 index 000000000..563bd83cb Binary files /dev/null and b/src/content/sponsors/pydantic/display.png differ diff --git a/src/content/sponsors/pydantic/index.md b/src/content/sponsors/pydantic/index.md new file mode 100644 index 000000000..8e20eeb78 --- /dev/null +++ b/src/content/sponsors/pydantic/index.md @@ -0,0 +1,23 @@ +--- +name: Pydantic +url: https://pydantic.dev/ +description: + The Pydantic platform gives devs visibility to stay in flow, from local to + prod, from AI to API. Ship robust apps faster, in Python, TypeScript, Rust and + others. +socials: + linkedin: https://www.linkedin.com/company/pydantic + twitter: https://x.com/pydantic + bluesky: https://bsky.app/profile/pydantic.dev + mastodon: https://fosstodon.org/@pydantic + github: https://github.com/pydantic/pydantic + +tier: Gold +draft: true +--- + +## About Pydantic + +Pydantic is built on the pillars of open source: transparency, collaboration and +excellence. Our origins inform every product we craft. Whether it’s a community +project or enterprise solution, developer experience is our cornerstone. diff --git a/src/content/sponsors/pydantic/pydantic.svg b/src/content/sponsors/pydantic/pydantic.svg new file mode 100644 index 000000000..bbf28edcc --- /dev/null +++ b/src/content/sponsors/pydantic/pydantic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/content/week/.gitkeep b/src/content/week/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/src/content/week/01_sprints.md b/src/content/week/01_sprints.md new file mode 100644 index 000000000..7adabf390 --- /dev/null +++ b/src/content/week/01_sprints.md @@ -0,0 +1,10 @@ +--- +title: Sprints Weekend +subtitle: What are Sprints? +url: /sprints +image: "./sprints.jpg" +--- + +10+ open-source projects, beginners' workshops and unconference session. + +July 19-20
Saturday-Sunday diff --git a/src/content/week/02_talks.md b/src/content/week/02_talks.md new file mode 100644 index 000000000..c09497606 --- /dev/null +++ b/src/content/week/02_talks.md @@ -0,0 +1,11 @@ +--- +title: Main Conference +subtitle: See the Schedule +url: /schedule/talks/ +image: "talks.jpg" +--- + +120+ talks, six parallel tracks, open spaces, PyLadies day, social events, and +more! + +July 16-18
Wednesday-Friday diff --git a/src/content/week/03_tutorials.md b/src/content/week/03_tutorials.md new file mode 100644 index 000000000..44f60f96e --- /dev/null +++ b/src/content/week/03_tutorials.md @@ -0,0 +1,10 @@ +--- +title: Tutorials & Summits +subtitle: Learn More +url: /schedule/tutorials/ +image: "./tutorials.jpg" +--- + +Two days of tutorials, Rust summit, C-API summit, and WASM summit. + +July 14-15
Monday-Tuesday diff --git a/src/content/week/sprints.jpg b/src/content/week/sprints.jpg new file mode 100644 index 000000000..0e70e9bce Binary files /dev/null and b/src/content/week/sprints.jpg differ diff --git a/src/content/week/talks.jpg b/src/content/week/talks.jpg new file mode 100644 index 000000000..c770670be Binary files /dev/null and b/src/content/week/talks.jpg differ diff --git a/src/content/week/tutorials.jpg b/src/content/week/tutorials.jpg new file mode 100644 index 000000000..9a9d6dda5 Binary files /dev/null and b/src/content/week/tutorials.jpg differ diff --git a/src/data/links.json b/src/data/links.json index c23e117dd..f047e29b0 100644 --- a/src/data/links.json +++ b/src/data/links.json @@ -48,6 +48,10 @@ "name": "Thursday Social Event", "path": "/social-event" }, + { + "name": "PyLadies Events—Lunch, Workshops & Networking", + "path": "/pyladies" + }, { "name": "WASM Summit", "path": "/session/webassembly-summit" @@ -59,6 +63,10 @@ { "name": "Rust Summit", "path": "/session/rust-summit" + }, + { + "name": "Sprints Weekend", + "path": "/sprints" } ] }, @@ -217,6 +225,14 @@ "name": "Beginners' Day", "path": "/beginners-day" }, + { + "name": "Thursday Social Event", + "path": "/social-event" + }, + { + "name": "PyLadies Events—Lunch, Workshops & Networking", + "path": "/pyladies" + }, { "name": "WASM Summit", "path": "/session/webassembly-summit" @@ -230,8 +246,8 @@ "path": "/session/rust-summit" }, { - "name": "Community", - "path": "/community-partners" + "name": "Sprints Weekend", + "path": "/sprints" } ] }, diff --git a/src/pages/index.astro b/src/pages/index.astro index 307e60467..5c512cad4 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,7 +1,8 @@ --- import Layout from "@layouts/Layout.astro"; import Hero from "@sections/hero/hero.astro"; -import Updates from "@sections/updates/updates.astro"; +// import Updates from "@sections/updates/updates.astro"; +import Week from "@sections/updates/week.astro"; import Keynoters from "@sections/keynoters/keynoters.astro"; import Speakers from "@sections/speakers.astro"; import Prague from "@sections/prague.astro"; @@ -14,7 +15,7 @@ import Subscribe from "@sections/subscribe.astro"; 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." > - + diff --git a/src/pages/session/[slug].astro b/src/pages/session/[slug].astro index f38fe4b87..ffcf4ca4c 100644 --- a/src/pages/session/[slug].astro +++ b/src/pages/session/[slug].astro @@ -144,7 +144,7 @@ const nextSessionsOrdered = sameRoomNextSession entry.data.resources && ( <>
- +

Resources