GSoC 2026 with Wagtail


My GSoC 2026 Journey with Wagtail - Bakerydemo

It’s been months of learning how developer experience meets real-world open source.

What is GSoC & Bakerydemo?

The Google Summer of Code program connects student developers with open-source organizations to build impactful features and grow within open communities.

I had the opportunity to spend my summer contributing to Wagtail, the leading Django-based open-source Content Management System (CMS). Specifically, my project focused on Bakerydemo, Wagtail’s official reference and demo application.

gsoc_selected

When I first started writing my proposal, the focus was primarily on a frontend redesign for the demo site. But as I got deeper into the project, the scope naturally expanded. I realized that a true site refresh wasn’t just about updating styles—it was deeply intertwined with frontend architecture, accessibility, multilingual routing, testing infrastructure, and developer experience (DX).

Design Goals & Discovery

A useful demo application serves two distinct audiences simultaneously:

  1. End Users / Stakeholders: People exploring Wagtail who want to see a polished, modern, accessible website.
  2. Developers: Engineers looking at the source code to learn best practices and implementation patterns.

The core principle became clear: make high-impact improvements without overcomplicating the codebase for learners.

Our main guiding goals were:

  • Prefer native browser APIs: Keep custom JavaScript minimal where modern CSS or browser features can handle the job natively.
  • Prioritize accessibility & testability: Ensure components are fully accessible and backed by real end-to-end browser tests.
  • Pave the way for Multilingual & RTL: Build foundational support for internationalization (i18n) and Right-to-Left layouts.
  • Safe, incremental PRs: Avoid massive, hard-to-review single pull requests in favor of smaller, focused groundwork PRs.

Implementation Highlights

Rather than building a single isolated feature, I worked across several interconnected frontend and architectural layers:

1. Modern Light/Dark Theme Support

Built a clean theme-switching system using modern CSS features like color-scheme and light-dark(). This allowed native styling integration while using minimal JavaScript strictly for persisting user preferences.

2. Multilingual & RTL Groundwork

  • Locale-Aware Routing & Metadata: Established language switcher foundations, complete with hreflang tags and proper document-level lang attributes.
  • Popover API Integration: Implemented the language selection menu using the browser-native Popover API for optimal accessibility and zero external JavaScript dependencies.
  • Logical CSS Properties: Replaced legacy physical directional properties (margin-left, left) with logical alternatives (margin-inline-start, inset-inline-start) to prepare the codebase for seamless RTL support.

3. Tooling & Browser-Level Testing

  • Playwright E2E Setup: Configured Playwright end-to-end testing so UI components and interactive flows can be verified automatically against real demo data.
  • Frontend Tooling Modernization: Updated Stylelint and Prettier configurations, incrementally aligning Bakerydemo with Wagtail’s central shared linting rules.

That feeling when your end-to-end tests pass smoothly on native browser popovers 🥳.


AI DX & Agentic Tooling

Beyond the user-facing site, I worked on developer-experience guidance specifically tailored for AI-assisted workflows. The goal was not to replace human code review, but to make LLM/agentic tooling safer and more effective within this specific codebase.

I documented:

  • Key architectural boundaries and repository layout maps.
  • Frontend workflow expectations and testing guidelines.
  • Common pitfalls for AI tools (such as globs accidentally traversing local environment or virtualenv folders).

UI Team & Collaboration

Much of this project required design intuition and product judgment rather than raw code.

Working directly with the Wagtail UI team was invaluable. We routinely discussed implementation options, evaluated visual behaviors, responded to community feedback, and ensured all UI additions aligned with Wagtail’s broader design system.

ui_discussion

Challenges & Lessons Learned

Infrastructure and refactoring work always bring subtle trade-offs to light:

  • Balancing Reference Simplicity vs. Real-World Features: Strict tooling and advanced CSS are great for production, but code in a demo app must remain approachable for newcomers learning Wagtail.
  • Sequencing Interdependent Changes: Because template changes, routing, and styling overlapped, I had to carefully split work into logical, bite-sized pull requests so the main branch remained stable.
  • Fixtures vs. Programmatic Demo Data: Bakerydemo currently relies on large database JSON fixtures. Moving toward dynamic, programmatic generation requires careful prototyping so as not to break existing setup workflows.

Community & Mentorship

The success of this mentorship comes down to the support of the Wagtail community.

I am deeply grateful to my mentor, Thibaud Colas, for his constant guidance, thorough code reviews, and thoughtful approach to project planning. He helped me break complex, interconnected challenges into clear, actionable milestones without ever losing sight of the bigger vision.

The open communication across Google meet, Wagtail’s Slack, design reviews, and GitHub discussions showed me what makes open source thrive: clear standards, shared vision, and welcoming collaborators.


What’s Next?

For the Project:

  • Programmatic Demo Content: Prototype a Python-based content generator to gradually replace large static JSON fixtures.
  • Expanded Test Coverage: Add comprehensive Playwright tests covering language switching edge cases and user flows.
  • RTL Refinement: Continue converting remaining legacy styling blocks to logical CSS properties.

For Me:

This mentorship significantly sharpened my skills in frontend architecture, web accessibility, multilingual UX design, and Wagtail core internals.

I look forward to remaining an active Wagtail contributor, refining developer tooling, and continuing to participate in the open-source community!

I’m extremely grateful for this experience, the mentorship, and the opportunity to contribute to a project used by thousands of developers worldwide.