Development PracticesDevelopment Practices
Quickie15min
INTERMEDIATE

The 15-Minute Design System: Surviving Large Teams in React

This talk explores how a shared React and TypeScript UI library can improve consistency, scalability, and maintainability across large codebases. It covers component variants, theming, accessibility, and type-safe contracts, while also discussing when shared libraries are valuable versus premature abstraction.

talk.summaryAiDisclaimer

Asterios Kalogeras
Asterios KalogerasNetcompany

talkDetail.whenAndWhere

Friday, November 20, 13:15-13:30
Room 1 - Thessaloniki
talks.roomOccupancytalks.noOccupancyInfo
talks.description
React gives you countless ways to build a button – and in a large codebase, that flexibility can quickly become a problem. When teams build their own versions of the same components, inconsistency, duplicated logic, and maintenance overhead follow.

In this talk, we’ll explore how a shared UI library built with React and TypeScript can bring consistency and scalability to large, multi-team codebases. We’ll look at the foundations of a maintainable component library, including prop and component variants, shared visual standards, theming, accessibility, and type-safe component contracts.

Most importantly, we’ll ask: when is a shared library the right solution, and when is it simply premature abstraction?

You’ll leave with a practical understanding of the benefits, trade-offs, and key considerations behind introducing a shared UI library in a React codebase.
accessibility
theming
typescript
react
talks.speakers
Asterios Kalogeras

Asterios Kalogeras

Netcompany

Greece

Asterios Kalogeras is a front-end engineer with a focus on building scalable, maintainable, and developer-friendly React applications. With five years of experience crafting full-stack solutions – primarily in React, TypeScript, and Node.js – he currently works as a Tech Lead at Netcompany, where he helps define front-end standards across teams. His day-to-day involves taming messy codebases, extending shared libraries, and mentoring developers on writing code that doesn’t haunt them later. He enjoys translating complex patterns into actionable advice, and evolving requirements into deliverable solutions.