Neue Geschichte

Von Styled Components zu Tailwind CSS: A HackerNoon Migration Story

von beni mahat4m2025/04/15
Read on Terminal Reader

Zu lang; Lesen

HackerNoon wechselt von Styled Components zu Tailwind CSS, um seine Front-End zu modernisieren, Unordnung zu reduzieren und die Leistung zu verbessern. Tailwind ist jetzt live auf der Homepage, mit AI, die einem einzelnen Komponent gleichzeitig hilft. Die Bewegung hat den Aufbau wieder lustig gemacht. Dies war keine Entscheidung, die wir leicht getroffen haben. Styled Components hat uns lange Zeit gut gedient. Aber wie wir skaliert haben, begannen die Kompromisse klarer zu werden – vor allem rund um Leistung, Konsistenz und langfristige Wartung. Dieser Beitrag beschreibt, warum wir ursprünglich Styled Components gewählt haben, was den Wechsel zu Tailwind veranlasst hat, wie die Migration vor sich geht und was wir auf dem Weg gelernt haben. Wenn
featured image - Von Styled Components zu Tailwind CSS: A HackerNoon Migration Story
beni mahat HackerNoon profile picture
0-item
1-item


Immer so oft beginnt eine Technologie-Stack-Entscheidung, die sich einmal als richtig gefühlt hat, ihre Grenzen zu zeigen – wie das Erkennen, wie ineffizient ein Schraubendreher nach der Verwendung eines Power-Bohrgeräts ist. Das ist bei HackerNoon mit der Verwendung von Styled Components der Fall.Jahrelang hat es uns gut gedient – umfangreiche Stile, dynamische Themen und volle Kontrolle in unseren React-Komponenten zu bieten.Styled KomponentenTailwind CSS Änderung war überfällig.


Dieser Beitrag ist ein Abbruch unseres Wechseln von Styled Components zu Tailwind CSS, warum wir den Wechsel gemacht haben, wie ich den Wechsel näherte und wie der Prozess bisher aussah.

Warum HackerNoon ursprünglich Styled Components verwendet hat

Ich war nicht Teil des Teams, als Styled Components zum ersten Mal für unsere CSS gewählt wurde, aber zu der Zeit war Tailwind CSS noch nicht einmal veröffentlicht worden, und Styled Components machte viel Sinn für HackerNoon Front-End-Architektur.

Tailwind CSS war noch nicht einmal veröffentlicht worden


Es ermöglichte es den Entwicklern, CSS direkt innerhalb von JavaScript zu schreiben und Komponenten vollständig selbstständig zu machen. Dieser Ansatz fühlte sich von Natur aus sehr "React-nativ" an -encapsulated, wiederverwendbar und zu der Zeit dachte man, dass es einfacher wäre, über eine wachsende Codebase und Team zu pflegen.Die dynamischen Styling-Fähigkeiten, die eingebaute Theme-Unterstützung und die Fähigkeit, Props direkt in Stile zu übertragen, funktionierten besonders gut für die breite Palette von Seiten und Layouts, die wir bauten. eingekapselt, wiederverwendbar und zu der Zeit als einfacher zu pflegen gedachtStyled Components diente HackerNoon gut

Was hat uns dazu gebracht, die Umstellung auf Tailwind in Betracht zu ziehen?

Im Laufe der Zeit wuchs unsere Codebasis – und so auch die Komplexität der Verwaltungsstile.


Styled Components gaben uns Flexibilität, aber das kam zu einem Preis: größere Bündelgrößen, runtime-Performance-Hits und eine klutterte Komponentenstruktur gefüllt mit zunehmend langen gestylten Blöcken.größere BündelgrößenLaufzeit Performance HitsKlusterte Komponentenstruktur


Wir haben auch bemerkt, dass sich viele unserer Stile über Komponenten hinweg wiederholen. Das ist, wenn Tailwind CSS begann, viel Sinn zu machen.Tailwind CSS


Aber lasst uns real sein: Für ein kleines Dev-Team wie HackerNoon's fühlte sich die Idee, eine massive Codebasis -Linie nach Linie neu zu gestalten, wie ein riesiges Unterfangen.kleines Dev-Team wie HackerNoon'sLinie nach Linie

Wie ich den Switch gemacht habe

Der schwierigste Teil dieses Switches? Setup.

Bereitstellung


Die Installation von Tailwind war einfach, aber sobald es aktiv war, begannen die globalen Stile von Tailwind – dank Preflight – mit unseren bestehenden Komponenten zu kollidieren.


Ein Lifesaver hier setzte preflight: false in der tailwind.config.js Datei. Diese Bewegung deaktivierte die meisten Basis-Resets von Tailwind, was wieder einige Ordnung brachte.preflight: falsetailwind.config.jsdeaktiviert die meisten Basiseinstellungen von Tailwind


Von dort aus musste ich neue Konventionen etablieren - wie wir globale Stile handhaben, Klassen wiederverwenden und themenbewusste Komponenten mit Tailwind bauen. neue Konventionen einrichten


Und hier ist der Teil, von dem ich immer noch erstaunt bin: KI machte diesen Prozess tatsächlich angenehm.

KI machte diesen Prozess wirklich angenehm.


Tausende von Zeilen von Code-Solo zu reflektieren, wäre Wahnsinn gewesen. Aber ich nutzte ChatGPT, um unsere gestylten Komponenten zu einem Mal in Tailwind umzuwandeln. Für einfache Komponenten – Layouts, Spaziergänge, Struktur – war es ein Wind.


Lassen Sie mich jetzt ehrlich sein: KI hat nicht alles richtig bekommen.Komplexe, thematische Komponenten benötigten immer noch manuelle Codierung und viele Stunden.Aber eine solide Grundlage, um von hier aus zu beginnen, machte es so viel einfacher.Nun, lass mich ehrlich sein: manuelle Codierung und viele StundenNützlichkeitsklasse Mindset

Wie die Migration so weit aussieht

Ich freue mich zu sagen Tailwind ist jetzt live auf HackerNoon! 🎉

Tailwind ist jetzt live auf HackerNoon!


As of now, the HackerNoon Homepage is fully converted to Tailwind CSS, with Styled Components completely removed. Most of the other pages still rely on Styled Components, and they’ll be converted gradually—one component, one page at a time.

HackerNoon Homepage is fully convertedHackerNoon Homepage is fully convertedeine Komponente, eine Seite auf einmal


Dieser langsamere Ansatz war tatsächlich ein Segen.Die Refactoring jeder Komponente gab mir die Möglichkeit, zu überprüfen und das Design und die Struktur unserer Seiten zu verbessern Neben der Tailwind-Konvertierung haben wir eine modernere Benutzeroberfläche eingeführt, eine bessere Layout-Nutzung, neue Komponenten und sogar einen benutzerdefinierten Theme-Picker eingeführt, der unser altes Themensystem beschämt.

überprüfen und verbessernmehr moderne UICustom-built Theme Picker


Nachdem ich über 4 Jahre bei HackerNoon gearbeitet habe, fühle ich mich reignited wieder in unsere Codebase eintauchen. Tailwind hat den Aufbau wieder Spaß gemacht. Es ist sauber, konsistent und leistungsstark – und ich bin begeistert, die Konvertierung weiter voranzubringen. Wer weiß? Vielleicht werden wir bald styled-components aus unserem package.json für immer löschen. 😉

wieder angezündetstyled-componentspackage.json


Finale Tailwinding Gedanken

Der Übergang zu Tailwind CSS ging nicht nur darum, eine Styling-Bibliothek auszutauschen – es ging darum, unseren Frontend-Workflow zu modernisieren, Konsistenz zu akzeptieren und die Entwicklung zu vereinfachen.Während Styled Components bei der Gestaltung der HackerNoon-Schnittstelle während einer kritischen Wachstumsphase geholfen hat, gibt Tailwind uns die Flexibilität, Geschwindigkeit und Wartungsfähigkeit, die wir benötigen, während wir weiter wachsen.

Flexibilität, Geschwindigkeit und Wartungsfähigkeit


Es ist immer noch eine Arbeit im Gange – unsere App hat immer noch viele Styled Components – aber Tailwind live auf unserer Homepage und in neu überarbeiteten Komponenten zu sehen, war unglaublich lohnend.


HackerNoon entwickelt sich, und unsere Stile entwickeln sich damit.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks