Ich habe Websites erstellt, die von Millionen von Menschen auf der ganzen Welt genutzt werden. Ich habe mehr Fehler gemacht, als ich zählen möchte, und musste mich jahrelang mit den Folgen dieser Fehler auseinandersetzen. All dies tat ich, während mein Team und ich versuchten, die beste Balance zwischen Benutzer- und Entwicklererfahrung zu finden. Wir haben benutzerdefinierte Lösungen entwickelt und Bibliotheken/Tools verwendet, um Probleme mit unserer Benutzererfahrung zu lösen und unsere eigene Produktivität zu steigern. Der Kampf ist real.
Dann kam Remix und hat diesen Kampf für mich erheblich reduziert. Ich habe meine Website mit Remix neu aufgebaut und war überwältigt. Ehrlich gesagt hatte ich das Gefühl, eine erstaunliche Benutzererfahrung schaffen zu können, ohne mich für den Code zu schämen, der mich dorthin gebracht hat. Ich liebe Remix so sehr, dass ich schließlich dem Team beigetreten bin (also: Haftungsausschluss). Falls Sie noch nie von Remix gehört haben, es ist ein Web-Framework zum Erstellen herausragender Benutzererfahrungen, das das Web, wie es seit den 90er Jahren funktioniert, mit der heutigen großartigen Technologie "remixed". Hier sind einige der Dinge, die ich am meisten daran liebe:
- Nahtloser Client-Server-Code: Ich meine, es gibt definitiv eine Trennung zwischen dem, was auf dem Client und was auf dem Server läuft, und das ist klar. Aber es ist so einfach, innerhalb derselben Datei zwischen beiden zu wechseln, dass ich das Gefühl habe, "Ja" zu mehr Produktfeature-Ideen sagen zu können.
- Progressive Enhancement: Remix ermöglicht mir, #useThePlatform besser als alles andere, was ich bisher verwendet habe. Ihre Nutzung von Web-APIs bedeutet, dass *je besser ich in Remix werde, desto besser werde ich im Web*. Und da Apps, die ich mit Remix baue, ohne JavaScript funktionieren, erhalte ich ein *echtes* Progressive Enhancement für schlechte Netzwerkbedingungen, bei denen das Laden von JavaScript lange dauert oder vollständig fehlschlägt.
- CSS – Die Kaskade zurückbringen: Da Remix es mir ermöglicht, einfach zu steuern, welche meiner CSS-Dateien zu einem bestimmten Zeitpunkt auf der Seite sind, habe ich nicht all die Probleme, die die JavaScript-Community dazu veranlassten, Workarounds wie CSS-in-JS zu erfinden.
- Verschachteltes Routing: Dies ermöglicht Remix, die Datenanfragen, die es beim Navigieren des Benutzers auf der Seite stellt, zu optimieren (was bedeutet, dass es für Benutzer mit begrenztem Internet schneller und günstiger ist). Es ermöglicht mir auch, Fehler im Kontext des Teils der App zu behandeln, der fehlschlägt, ohne die gesamte Seite dabei zum Absturz zu bringen.
- Einfache Mutationen: Anstelle einer komplizierten JavaScript-Bibliothek zur Verwaltung von Mutationen verwendet Remix einfach die Plattform
<form />. Und Remix verwaltet Ihren Client-Cache, sodass Sie sich überhaupt nicht um die Invalidierung Ihres Caches kümmern müssen. Tatsächlich denken Sie mit Remix gar nicht darüber nach. Es wird für Sie verwaltet und Sie erhalten einfach eine schöne deklarative API. - Normalisierte Plattformen: Wir haben viele Optionen für den Ort, an dem wir unsere Apps bereitstellen. Remix normalisiert diese (ähnlich wie jQuery für Plattformen). Egal, ob Sie auf Serverless, Cloudflare Workers oder eine normale Node-App bereitstellen möchten, es spielt keine Rolle. Schreiben Sie einfach denselben Code und stellen Sie ihn dort bereit, wo Sie möchten.
Es gibt viel, was man an Remix lieben kann, aber hier schließe ich ab.
Ich verstehe, dass nicht jeder seine Website auf Remix migrieren kann, und das ist in Ordnung. Der Slogan von Remix lautet: "Build better websites (sometimes with Remix)". Das Einzige, was ich Sie ermutigen möchte, um Ihre Website zu verbessern, ist, von Remix zu lernen und einige der Ideen auf Ihre Website anzuwenden. Und wenn Sie zu Remix migrieren *können*, umso besser. 😆
Denken Sie daran, wir alle versuchen nur, die Welt ein kleines bisschen besser zu machen, und meine Hoffnung beim Schreiben dieses Textes ist, dass ich Ihnen Ideen gegeben habe, wie Sie Ihre eigene Ecke der Welt verbessern können. Viel Glück!
Interessiert an Remix, aber noch keine Zeit, tiefer einzutauchen, bis/es sei denn, die breitere Community hat die Möglichkeit, es zu prüfen.
Was ich gerne sehen würde, ist ein Framework, das einige Grundlagen bietet, aber so wenige Annahmen wie möglich trifft. Next.js hat einige großartige Dinge, ist aber in einigen Bereichen wie Routing und Bereitstellung zu meinungsbildend. Remix scheint das lösen zu wollen, aber es fühlt sich immer noch so an, als würde es einen bestimmten Workflow fördern. Ich würde mir wünschen, eines Tages eine ausführliche Überprüfung von jemandem zu sehen, der nicht mit Remix verbunden ist (keine Beleidigung für Kevin, seine Meinung ist viel wert, aber es ist für niemanden möglich, nicht voreingenommen zu sein, wenn man Teil des Projekts ist!).
Es gab früher eine React-Server-Renderer-Vorlage namens React Universally. Benutzen Sie sie nicht (oder irgendeine Vorlage), da sie garantiert zu einem Wartungsproblem werden, sobald sie unweigerlich nicht mehr gewartet werden. Aber RU tat genau das, was gebraucht wurde (Build-Prozess, Server-Rendering, Developer Standard Routing(tm)) und alles weitere war ein Add-on oder von Ihnen konfigurierbar. Ich würde mir ein Framework mit diesem Maß an Flexibilität wünschen, vielleicht mit einer statischen Rendering-Option, aber npm-basiert und gut gewartet.
Ich würde mir wünschen, dass Remix in Zukunft eine integrierte Präprozessor-Unterstützung (z. B. SCSS) hätte.