Peter Kröner
Defeat that legacy monster! Guerilla refactoring with web standards
#1about 2 minutes
Understanding the nature of legacy project monsters
Legacy projects are often more than just broken software; they can be an enemy that grows stronger with every new feature added.
#2about 5 minutes
How good intentions lead to broken legacy projects
Projects become legacy messes over time because initial technology and pattern choices are made with incomplete information about the future.
#3about 2 minutes
Adopting a guerrilla warfare mindset for refactoring
Instead of negotiating with an unmaintainable system, declare a war of attrition to subvert it by exploiting its reliance on web standards.
#4about 4 minutes
Creating modern code islands with web components
Web components allow you to build encapsulated features with private state and DOM, creating a safe space away from the legacy project's influence.
#5about 5 minutes
Weaponizing old and obscure browser features
The browser's commitment to backward compatibility means even ancient features like the BGCOLOR attribute can be used as tools to fight legacy constraints.
#6about 3 minutes
Injecting components using the document.write hack
When a legacy framework blocks custom elements, you can use the ancient `document.write` method inside a script tag to inject them directly into the HTML parser.
#7about 3 minutes
A step-by-step battle plan to defeat legacy monsters
Combine modern web components with old browser hacks to incrementally add new functionality, connect it via message passing, and ultimately replace the old system.
Related jobs
Jobs that call for the skills explored in this talk.
Technoly GmbH
Berlin, Germany
Senior
JavaScript
Angular
+1
Hubert Burda Media
München, Germany
€80-95K
Intermediate
Senior
JavaScript
Node.js
+1
Matching moments
04:23 MIN
Applying the strangler fig pattern to legacy apps
Interface Contracts in Microfrontend Architectures
02:01 MIN
The difficulty of advocating for web standards in a framework world
WeAreDevelopers LIVE – Spicy Vanilla Web, CSS Magic & More
04:00 MIN
The web's foundational principle of backward compatibility
Future-Proof CSS
06:10 MIN
The ongoing debate for JavaScript-free web solutions
WeAreDevelopers LIVE – Keeping Up with Styles, Data & More
02:29 MIN
How to migrate legacy projects to a clean architecture
Building software that scales with Typescript
01:16 MIN
Using web components to migrate legacy applications
Frameworkless: How to use Web-Components in production?
03:06 MIN
Project status, roadmap, and future web standards
Web-Fragments: incremental micro-frontends migration approach for enterprise
07:21 MIN
Contrasting minimalist code with modernizing legacy applications
The weekly developer show: Boosting Python with CUDA, CSS Updates & Navigating New Tech Stacks
Featured Partners
Related Videos
The year 3000, a brief history of Web Development
Lorenzo Pieri
Frameworkless: How to use Web-Components in production?
Tobias Münch
Seven Myths, Three Reasons, One Goal
Stefan Priebsch
Interface Contracts in Microfrontend Architectures
Alexander Günsche
From boy scouting to redrawing the landscape
Tim te Beek
Advanced Micro Frontends: Multi-Version and Multi-Framework Scenarios
Manfred Steyer
Best of the Worst – the most awful anti-features in JavaScript, ranked!
Peter Kröner
Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths
Henning Schwentner
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

&why GmbH
Berlin, Germany
€50-70K
Junior
Intermediate
Senior
React
Next.js
TypeScript

Code Healers LLC
Hinesville, United States of America
Remote
€40-50K
Intermediate
Senior
PHP
.NET
React
+2

Confideck GmbH
Vienna, Austria
Remote
Intermediate
Senior
Node.js
MongoDB
TypeScript

PiNCAMP GmbH
Berlin, Germany
Senior
React
GraphQL
Next.js


Stiftung Preußischer Kulturbesitz
Berlin, Germany
PHP
GIT
Scrum
Typo3
Docker
+6

Reflow
Zürich, Switzerland
Remote
CHF80-160K
Senior
API
ETL
React
+5

Content Pass GmbH
Berlin, Germany
Senior
API
Node.js
JavaScript
TypeScript
Continuous Integration
