Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,20 +40,20 @@ const nextConfig: NextConfig = {
];
},

async redirects() {
return [
{
source: "/schedule",
destination: "https://pycon-kenya-2025.sessionize.com/schedule",
permanent: true, // Use true for 308 permanent redirect, false for 307 temporary
},
{
source: "/speakers",
destination: "https://pycon-kenya-2025.sessionize.com/speakers",
permanent: true, // Use true for 308 permanent redirect, false for 307 temporary
},
];
},
// async redirects() {
// return [
// {
// source: "/schedule",
// destination: "https://pycon-kenya-2025.sessionize.com/schedule",
// permanent: true, // Use true for 308 permanent redirect, false for 307 temporary
// },
// {
// source: "/speakers",
// destination: "https://pycon-kenya-2025.sessionize.com/speakers",
// permanent: true, // Use true for 308 permanent redirect, false for 307 temporary
// },
// ];
// },

// This is required to support PostHog trailing slash API requests
skipTrailingSlashRedirect: true,
Expand Down
Binary file added public/gallery/landing-page.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/sponsors/defna.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions src/app/(articles)/proposal.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
title: Proposal Guidelines
---

We are very excited to invite everyone back for PyCon KE 2025! PyCon KE is seeking speakers of all experience levels and backgrounds to contribute to our conference program! If you use Python professionally, as a hobbyist, or are just excited about Python or programming and open source communities, we’d love to hear from you.
We are very excited to invite everyone back for PyCon KE 2026! PyCon KE is seeking speakers of all experience levels and backgrounds to contribute to our conference program! If you use Python professionally, as a hobbyist, or are just excited about Python or programming and open source communities, we’d love to hear from you.

We are providing useful and important information below that will help you submit an informed and successful proposal, so please take the time to read everything thoroughly.

## Timeline

1. April 5, 2025 - Call For Proposals Opens
2. June 22, 2025, 11:59 PM EAT — Call For Proposals Closes
3. July 6, 2025 — Notifications are sent to speakers
4. July 27, 2025 — The schedule is posted here on the PyCon KE website
5. Septmeber 26-27, 2025 — PyCon KE 2025 in Nairobi, Kenya
1. Saturday 27th, 2025 - Call For Proposals Opens
2. January 31st, 2026, 11:59 PM EAT — Call For Proposals Closes
3. February 28th, 2026 — Notifications are sent to speakers
4. March 31st, 2026 — The schedule is posted here on the PyCon KE website
5. August 28th - 29th, 2026 — PyCon KE 2026 in Nairobi, Kenya

Part of PyCon KE purpose is to generate materials to help with Python education and advocacy all over the world, so we intend to record all PyCon KE Keynotes, Talks and Lightning Talks and release the recordings on our YouTube channel.

**Please note: all presentations at PyCon KE 2025 will be in person only with no live stream taking place.**
**Please note: all presentations at PyCon KE 2026 will be in person only with no live stream taking place.**

## Guidelines for Proposal Submission

Expand Down
2 changes: 1 addition & 1 deletion src/app/(articles)/support.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Support
---

This page lists the primary points of contact for PyCon KE 2025. This does not list all of the volunteers, without whom PyCon KE would not be possible.
This page lists the primary points of contact for PyCon KE 2026. This does not list all of the volunteers, without whom PyCon KE would not be possible.

- PyCon KE Organizer: Kelvin Onkundi
- PyCon KE Organizer: Monica Oyugi
Expand Down
2 changes: 1 addition & 1 deletion src/app/(articles)/what-is-pynbo.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PyCon KE is a community-driven conference that aims to provide a platform for th

### What happens at PyCon KE?

At PyCon KE 2025, you will find an amazing program filled with conference tutorials and sponsor presentations, 40+ of our community’s best talks, brilliant keynote speakers and posters on display.
At PyCon KE 2026, you will find an amazing program filled with conference tutorials and sponsor presentations, 40+ of our community’s best talks, brilliant keynote speakers and posters on display.

### Who attends PyCon KE?

Expand Down
12 changes: 6 additions & 6 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const robotoMono = Roboto_Mono({
const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "https://pycon.ke";

export const metadata: Metadata = {
title: "Welcome to PyCon Kenya 2025",
title: "Welcome to PyCon Kenya 2026",
description: "Africa's largest Python conference, held in Nairobi, Kenya.",
authors: [
{
Expand All @@ -32,16 +32,16 @@ export const metadata: Metadata = {
],
openGraph: {
type: "website",
title: "Welcome to PyCon Kenya 2025",
title: "Welcome to PyCon Kenya 2026",
description:
"Africa's largest Python conference, held in Nairobi, Kenya. Join us for a weekend of inspiring talks, informative workshops, and fun networking events.",
url: baseUrl,
siteName: "PyConKE 2025",
siteName: "PyConKE 2026",
images: [
{
url: `${baseUrl}/opengraph-image.png`,
secureUrl: `${baseUrl}/opengraph-image.png`,
alt: "PyConKE 2025",
alt: "PyConKE 2026",
type: "image/png",
width: 1200,
height: 630,
Expand All @@ -50,14 +50,14 @@ export const metadata: Metadata = {
},
twitter: {
card: "summary_large_image",
title: "Welcome to PyCon Kenya 2025",
title: "Welcome to PyCon Kenya 2026",
description:
"Africa's largest Python conference, held in Nairobi, Kenya. Join us for a weekend of inspiring talks, informative workshops, and fun networking events.",
images: [
{
url: `${baseUrl}/opengraph-image.png`,
secureUrl: `${baseUrl}/opengraph-image.png`,
alt: "PyConKE 2025",
alt: "PyConKE 2026",
type: "image/png",
width: 1200,
height: 630,
Expand Down
2 changes: 1 addition & 1 deletion src/components/footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default function Footer() {
alt="logo"
className="mb-4 h-10"
/>
<p className="font-bold">PyConKE 2025</p>
<p className="font-bold">PyConKE 2026</p>
</div>
{sections.map((section) => (
<div key={section.title}>
Expand Down
21 changes: 6 additions & 15 deletions src/components/hero-section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default function HeroSection() {
<div className="flex justify-center gap-4 mb-10">
<RainbowButton>
<a
href="https://paystack.com/buy/pyconke-early-bird"
href="https://paystack.com/buy/pyconke-2026-early-bird"
target="_blank"
rel="noreferrer"
>
Expand All @@ -24,24 +24,15 @@ export default function HeroSection() {
target="_blank"
rel="noreferrer"
>
Schedule
Call For Speakers
</a>
</RainbowGreyButton>
</div>
<h1 className="scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl">
Welcome to PyCon Kenya 2025
Welcome to PyCon Kenya 2026
</h1>
<h3 className="pt-6 text-2xl">26th - 27th September, 2025</h3>
<h4 className="pt-6 text-1xl">
<a
href="https://maps.app.goo.gl/pYMgyQAV5ibKuuW27"
target="_blank"
rel="noreferrer"
className="underline"
>
Ngong Hills Hotel, Nairobi, Kenya
</a>
</h4>
<h3 className="pt-6 text-2xl">28th - 29th August, 2026</h3>
<h4 className="pt-6 text-1xl">TBC</h4>
<h4 className="pt-6 text-1xl">
<a
href="https://discord.gg/SSXfTkJ3"
Expand All @@ -60,7 +51,7 @@ export default function HeroSection() {
</div>
<div className="mt-10 relative max-w-7xl mx-auto">
<img
src="/gallery/DSC_0004-4.jpg"
src="/gallery/landing-page.jpg"
className="rounded-xl"
alt="PyConKE 2022"
/>
Expand Down
2 changes: 1 addition & 1 deletion src/components/sponsors.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default function Sponsors() {
<div className="grid gap-12">
<div>
<h2 className="text-3xl font-bold lg:text-4xl text-center">
Sponsors
Previous Sponsors
</h2>
</div>
</div>
Expand Down
6 changes: 6 additions & 0 deletions src/lib/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ interface Sponsor {
}

export const sponsors: Sponsor[] = [
{
title: "Django Events Foundation North America",
image: "/sponsors/defna.png",
url: "https://www.defna.org/",
year: ["2025"],
},
{
title: "Cactus Group",
image: "/sponsors/cactus.png",
Expand Down