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
+
+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!
+
+
+
+
+
+
## 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.
+
+
+
+## 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 @@
-
-