Bis 2014 war das HTML von Hacker News zu einem fragilen Fundament für ein großes Ökosystem geworden: Viele Drittanbieter-Apps und -Projekte lasen die Geschichten und Kommentare der Seite durch Scraping ihres Markups aus, und das Markup war alles andere als mobilfreundlich. Y Combinator wollte das Frontend modernisieren und schneller daran iterieren, doch eine naive Änderung am HTML hätte sämtliche scraperabhängigen Werkzeuge auf einmal lahmgelegt.

Der Schritt von YC bestand darin, die Daten als eigenes Produkt zu veröffentlichen, bevor die Darstellung angefasst wurde. Am 7. Oktober 2014 kündigte das Unternehmen eine offizielle Hacker-News-API an, die in Partnerschaft mit Firebase (YC S11) entwickelt wurde und die Inhalte der Seite nahezu in Echtzeit unter hacker-news.firebaseio.com bereitstellte, mit Dokumentation und Beispielen, die über ein Hacker-News-GitHub-Konto veröffentlicht wurden. Die sofort einsatzbereiten iOS-, Android- und Web-SDKs von Firebase sowie eine REST-API ermöglichten es Entwicklern, ohne Neuaufbau ihres Technologie-Stacks zu wechseln.

Die Reihenfolge war der eigentliche Punkt: Die Ankündigung gab dem Ökosystem drei Wochen Vorlauf vor dem von YC gesetzten Zieltermin 28. Oktober für eine neue Rendering-Engine, die weiterhin auf Arc basierte und deren saubereres Markup schnellere Iterationen am Frontend ermöglichen und Hacker News endlich mobil optimiert machen sollte. Da die API für die meisten Anwendungsfälle strikt besser war als Scraping – nahezu Echtzeit-Aktualisierungen, gepflegte SDKs, kein fragiles HTML-Parsing –, war die Umstellung ein Upgrade und keine lästige Pflicht, und die Seite konnte ihre Darstellung ändern, ohne ihre Nutzer als Geiseln zu nehmen.

Der Schritt wirkte wie eine Pflege des Ökosystems: Der Hacker-News-Thread erreichte am selben Tag 1.714 Punkte und 298 Kommentare. Die API startete schreibgeschützt, wobei OAuth-Zugriff auf private nutzerspezifische Daten später geplant war, und YC schrieb den Aufbau seinem Softwareteam – kogir, dang und sctb – zu.

Zuerst den Datenvertrag veröffentlichen: eine offizielle Nahezu-Echtzeit-API, die strikt einfacher ist als Scraping, mit Vorankündigung vor der grundlegenden Änderung

Die Entkopplung von Daten und Darstellung bedeutet, dass sich das Frontend ändern kann, ohne jemanden zu brechen, der die Inhalte konsumiert.

Die nahezu Echtzeit-Synchronisierung über Firebase mit gepflegten SDKs machte die API strikt einfacher als Scraping, sodass die Einführung eine freiwillige Migration statt einer erzwungenen Umstellung war.

Die Ankündigung eines festen drei Wochen langen Vorlaufs vor der Markup-Änderung gab jeder App eine Frist und einen Grund, früh zu wechseln.

Die Beibehaltung derselben Arc-Engine bei gleichzeitiger Änderung nur des Ausgabe-Markups verringerte das Risiko, dass API und Website auseinanderdriften würden.

Um eine Plattform zu ändern, auf der andere aufbauen, sollte man zuerst den Datenvertrag herauslösen, ihn strikt besser machen als den Hack, den er ersetzt, und das Datum der grundlegenden Änderung veröffentlichen, damit Nutzer von selbst migrieren.

Die API ging am selben Tag unter hacker-news.firebaseio.com live, schreibgeschützt, mit offiziellen iOS-, Android- und Web-SDKs sowie einer REST-API, und YC erklärte, OAuth-Zugriff auf private nutzerspezifische Daten könne folgen. Die Hacker-News-Ankündigung erreichte am 7. Oktober 2014 1.714 Punkte und 298 Kommentare. Der Beitrag setzte den 28. Oktober als Ziel für den Wechsel zur neuen Rendering-Engine, damit das Markup modernisiert und mobil optimiert werden konnte, sobald das Ökosystem Zeit zur Umstellung gehabt hätte – die API wurde als Ermöglicherin dieser Änderung dargestellt und nicht als Selbstzweck.

DEN BELEGEN FOLGEN

Die Quellen

  1. Hacker News API Y Combinator Blog · blog.ycombinator.com ·
  2. Hacker News discussion: Hacker News API Hacker News · news.ycombinator.com ·