An events platform for the Council of Europe Development Bank, shipped for the 70-year anniversary.
The Council of Europe Development Bank runs events year-round. The 70-year anniversary set the deadline and the bar: a platform built for one high-profile event that scales to the rest of the bank's calendar. We designed the admin around how editors actually run events, shipped a participant experience that does not assume web fluency, and built an email flow that lands cleanly in Outlook. The anniversary went out without production issues. CEB now runs every new event on the same platform.
We started by listening to how the CEB team actually runs events, then shaped the platform around that. The anniversary was a fixed deadline, so we kept the first scope tight and genuinely production-ready. The bank can now run every event on it.
- 1st
- Proprietary events platform for the team
- 100%
- Invited participant response rate
- 0
- Production issues during the event
- 2
- Registration models in one admin
- 2
- Languages live (EN / FR)
- 100s
- Invitations sent for the anniversary
Payload backend, Next.js 15 frontend, Turborepo monorepo with shared types end to end.
With an ambitious deadline, the stack choice mattered as much as the design. We picked tools that hand off the standard scaffolding off the shelf and let custom development move quickly where the project's value lived.
Payload CMS handles the backend. Payload is a widely-supported content platform whose extension model supports building a real product on top of it, beyond a content site. Database schema, auth, admin scaffolding, and media handling come from the framework. The budget went to the parts that matter to the bank: the Participants Manager, the registration flows, and the email pipeline.
The participant-facing site is a custom Next.js 15 frontend. React 19 and TypeScript, with Tailwind CSS 4 for layout. Custom because the participant experience is what makes an events platform worth keeping.
The project is a Turborepo monorepo with shared packages for UI components, API hooks, and Zod schemas. When a type changes in Payload, it flows automatically into the frontend. That keeps the system tight as it grows, and stops the two halves of the codebase from drifting.
Payload as the foundation; custom UI on top for the actual product.
Payload's extension model supports building a real product on top of it. The boring, reliable parts come with the framework: database schema, auth, admin scaffolding, media handling. Custom collections and custom admin components are first-class. Most of the project's value sat in domain-specific UI for organisers and a tailored participant flow; stock CMS surface area was a means to that end.
The modern stack also paid off on the timeline. Custom development handled the pieces that mattered to CEB: the Participants Manager, the registration flows, the email pipeline. Payload covered the scaffolding around them.
We're booking content platform
engagements for 2026.
Twenty-five minutes to walk through the work and decide if we're the right team for it. Scoping and a fixed price come after.