00:00:00Hallo und herzlich willkommen zum dieswöchigen Purcell Community Livestream.
00:00:22Ich bin Amy Egan.
00:00:23Ich bin Teil des Community-Teams hier bei Purcell.
00:00:27Zur Erinnerung: Dieser Stream läuft auf X und YouTube.
00:00:29Wenn ihr aber am Chat teilnehmen möchtet,
00:00:31meldet euch bitte in der Community an und klickt beim Event auf "Teilnehmen"..
00:00:35Der Chat erscheint dann an der Seite und ich sorge dafür,
00:00:39dass wir eure Kommentare und Fragen mitbekommen.
00:00:42Stellt gerne während der gesamten Session Fragen,
00:00:45wir werden sie alle am Ende beantworten.
00:00:47Und noch eine Erinnerung: Wenn ihr im Chat seid,
00:00:50seid bitte respektvoll und haltet euch an unseren Verhaltenskodex.
00:00:54Damit hätten wir das geklärt und ich möchte unsere Gäste auf der Bühne begrüßen.
00:00:58Letzten Monat hat mein Teamkollege Jacob das HubSpot-Team besucht,
00:01:01um darüber zu sprechen,
00:01:02wie man sein eigenes Backend in das HubSpot-Entwicklerprogramm integriert.
00:01:05Und diesen Monat ist das HubSpot-Team bei uns,
00:01:07um darüber zu sprechen,
00:01:08wie sie Purcell nutzen.
00:01:09Willkommen, Brooke.
00:01:12Vielen Dank, Amy.
00:01:13Hallo zusammen.
00:01:14Mein Name ist Brooke Bond und ich freue mich sehr,
00:01:18hier in der Purcell Community zu sein.
00:01:20Ich habe ein paar Fragen,
00:01:22die ihr schon mal im Chat beantworten könnt.
00:01:24Wir würden gerne wissen: Habt ihr HubSpot schon einmal benutzt??
00:01:28Wisst ihr, wer wir sind?
00:01:30Habt ihr schon etwas mit uns entwickelt?
00:01:31Und wenn ja, was habt ihr gebaut?
00:01:34Ich würde mich freuen, all eure Kommentare im Chat zu lesen.
00:01:38Das wäre wirklich toll, aber wir haben nur 30 Minuten.
00:01:42Deshalb möchte ich sicherstellen,
00:01:43dass wir all unsere großartigen Inhalte behandeln.
00:01:45Heute werden wir kurz darauf eingehen: Was ist HubSpot?
00:01:49Wer sind wir als HubSpot DevRel-Team?
00:01:51Wie können wir HubSpot und Purcell zusammen nutzen?
00:01:54Und dann haben wir ein paar Beispiele,
00:01:56wie unser HubSpot DevRel-Team Purcell in unseren verschiedenen Projekten bei HubSpot eingesetzt hat.
00:02:02Und zum Schluss bleibt noch etwas Zeit für Fragen und Antworten.
00:02:04Wie Amy schon sagte,
00:02:06wenn ihr Fragen habt,
00:02:07stellt sie bitte im Chat und wir beantworten sie gerne am Ende.
00:02:12Heute werde ich von zwei meiner Kollegen begleitet: Dennis Edson und Chris Riley.
00:02:18Und wir freuen uns sehr, hier zu sein.
00:02:19Zuerst wollen wir die Grundregeln festlegen – nein,
00:02:22nicht die Grundregeln,
00:02:23sondern erklären,
00:02:24was HubSpot ist.
00:02:25HubSpot ist ein intelligentes CRM für Unternehmen.
00:02:29Wir bieten eine Suite aus Marketing-,
00:02:32Vertriebs- und Service-Software sowie eine einheitliche Entwicklerplattform zum Erstellen von Integrationen.
00:02:39Und genau darauf konzentriert sich unser DevRel-Team: unseren Entwicklern zu helfen,
00:02:44die Entwicklerplattform zu verstehen und zu nutzen.
00:02:47Das Bild,
00:02:48das ihr hier auf dem Bildschirm seht,
00:02:51ist eine CRM-Kontaktseite.
00:02:53Mit der HubSpot-Entwicklerplattform ist die gesamte Arbeit,
00:02:57die ihr erstellt,
00:02:58in einem HubSpot-Projekt untergebracht.
00:03:00Auf der HubSpot-Entwicklerplattform könnt ihr sowohl interne statische Anwendungen als auch externe OAuth-Anwendungen erstellen.
00:03:09Und wenn ihr eine externe Anwendung erstellt,
00:03:12könnt ihr diese auf unserem HubSpot Marketplace anbieten.
00:03:15Dann kann jeder mit einem HubSpot-Konto zum Marketplace gehen und eure App herunterladen..
00:03:21Nehmen wir an,
00:03:22ihr seid Vercel und wollt eine Integration erstellen,
00:03:25mit der Nutzer ihre Vercel-Metriken in ihrem HubSpot-Konto sehen können.
00:03:29Ihr könntet das bauen,
00:03:30den OAuth-Flow erstellen,
00:03:32die Leute es in ihr Konto herunterladen lassen,
00:03:35und dann könnten sie ihre Vercel-Sachen direkt in HubSpot sehen und umgekehrt.
00:03:40Der Screenshot,
00:03:41den ich hier gerade zeige,
00:03:43ist die Entwicklungsübersichtsseite.
00:03:46Wir haben also eine spezielle Entwicklungsübersichtsseite für Entwickler in ihrem Konto,
00:03:51damit sie alle ihre Projekte sehen können.
00:03:54Wir haben auch Überwachungstools,
00:03:56damit die Leute sehen können,
00:03:58wie die API-Nutzung ist und all das Gute.
00:04:01Also alles an einem Ort,
00:04:02sehr einfach für euch,
00:04:04einfach reinzugehen.
00:04:05Ihr müsst euch nicht um den ganzen Lärm all der anderen Dinge kümmern,
00:04:08die nicht Teil eurer HubSpot-Projekte sind.
00:04:11Jetzt möchte ich uns als Team kurz vorstellen.
00:04:15Wir sind eine interdisziplinäre Gruppe von Entwicklern und Managern,
00:04:19die unseren Entwicklern hilft,
00:04:21im HubSpot-Ökosystem erfolgreich zu sein.
00:04:23Wir unterstützen die Entwickler-Community,
00:04:25indem wir Lösungen entwickeln,
00:04:27ihnen Best Practices vermitteln und Integrationen erstellen,
00:04:31die sie nutzen können..
00:04:32Wir veranstalten Live-Events wie dieses und auf unseren eigenen Kanälen,
00:04:36nehmen an Konferenzen teil und sprechen dort.
00:04:38Außerdem stellen wir sicher,
00:04:39dass externes Entwickler-Feedback bei der Entwicklung und Einführung neuer Funktionen berücksichtigt wird..
00:04:45Wir arbeiten also sehr eng mit unseren Entwicklerkollegen zusammen und geben ihnen das Feedback aus unserer Community,
00:04:51um unsere Produkte zu verbessern.
00:04:53Das ist nur eine kleine Grafik,
00:04:55die ich erstellt habe,
00:04:56um euch etwas mehr zu zeigen.
00:04:57Wir haben Lernmaterialien und Ressourcen,
00:04:59darunter unsere Entwicklerdokumentation,
00:05:01unseren Blog,
00:05:02unseren YouTube-Kanal und verschiedene Tutorials,
00:05:04die wir sowohl auf YouTube als auch auf GitHub und an anderen Stellen anbieten.
00:05:08Unsere Community und Verbindung: Wir haben einen Entwickler-Slack,
00:05:12für den sich jeder anmelden kann.
00:05:13Wir haben auch ein Forum,
00:05:15in dem Leute Fragen in den Community-Foren stellen können.
00:05:18Und wir veranstalten das ganze Jahr über persönliche Events.
00:05:22Wir haben auch einige Build- und Entwicklungstools.
00:05:25Wir haben also unsere App-Qualitätsbewertung,
00:05:27das ist unser Ecosystem Quality Team.
00:05:29Sie prüfen alle Anwendungen,
00:05:31die auf unseren Marketplace kommen,
00:05:33und stellen sicher,
00:05:34dass sie unseren Standards entsprechen.
00:05:37Und dann haben wir auch Beispiel-Apps.
00:05:39Und schließlich, das ist neu, haben wir unser Dev MCP.
00:05:42Und wir haben sehr eng mit den Ingenieuren zusammengearbeitet,
00:05:45die das gebaut haben,
00:05:46damit sie verstehen konnten,
00:05:47wie wir ein wirklich großartiges MCP-Produkt für unsere Entwickler schaffen können.
00:05:51Und schließlich: Präsentation und Wachstum.
00:05:53Wir haben einen Bereich für Fallstudien,
00:05:56in dem wir großartige Entwicklerprogramme vorstellen und zeigen,
00:06:00wie sie HubSpot nutzen.
00:06:02Wir bieten auch Marketplace-Zertifizierungen an.
00:06:04Wenn ihr eure App auf unserem Marketplace veröffentlicht,
00:06:07könnt ihr Marketplace-zertifiziert werden,
00:06:09was bedeutet,
00:06:10dass ihr ein kleines blaues Häkchen oder ein Symbol erhaltet,
00:06:13um den Leuten zu zeigen,
00:06:14dass eure Qualität gesichert ist.
00:06:16Und schließlich helfen wir bei der GTM-Koordination (Go-to-Market).
00:06:19Wenn wir also im Laufe des Jahres große Launches haben,
00:06:22helfen wir bei den Marketingmaterialien dafür und stellen sicher,
00:06:26dass wir unser Entwicklerpublikum so ansprechen,
00:06:28wie es für sie am besten ist.
00:06:30Nachdem wir nun darüber gesprochen haben,
00:06:32wer wir sind und was wir tun,
00:06:34wollen wir darüber sprechen,
00:06:35wie wir HubSpot und Vercel zusammen nutzen.
00:06:37Wie Amy sagte,
00:06:38haben wir letzten Monat ein Webinar über die Integration des eigenen Backends veranstaltet.
00:06:43Dies ist also einer der Hauptanwendungsfälle,
00:06:45über den ich hier sprechen werde: die Nutzung von Vercel als Backend-Dienst.
00:06:50In diesem Fall habt ihr eure HubSpot-App,
00:06:52die unser Frontend ist,
00:06:53und diese enthält UI-Komponenten,
00:06:55die mit React erstellt wurden und die ihr auf eure Seite legt,
00:06:59damit ihr sie für das Frontend innerhalb eines HubSpot-Kontos rendern könnt.
00:07:03Und dann habt ihr euer Vercel-Backend,
00:07:05das euren Code enthält.
00:07:06Ihr werdet also in eurem Code `hubspot.fetch` verwenden,
00:07:10um euer Backend über die von euch erstellte API aufzurufen.
00:07:14Und das wird dann die Daten zurückgeben und manipulieren und anschließend eine Antwort an das Frontend rendern.
00:07:20Um zu zeigen,
00:07:21wie das aussieht,
00:07:22werde ich schnell ein Beispiel durchgehen,
00:07:25das ich gebaut habe,
00:07:27und das ist ein LLMS.txt-Dateigenerator.
00:07:30Versucht das mal dreimal schnell zu sagen.
00:07:32Der LLMS.txt-Dateigenerator ist eine HubSpot-App,
00:07:36die eine Webseite oder eine Sitemap-URL nimmt,
00:07:40die Daten auf der Seite parst,
00:07:43um diese Datei zu erstellen.
00:07:45Und eine LLMS.txt-Datei ist eine Datei für KI-Such-Crawler,
00:07:51damit sie nicht all das zusätzliche HTML haben.
00:07:55Sie rendert eure Informationen in einem Markdown-Dateiformat,
00:07:59damit sie sehr schnell gelesen werden können.
00:08:02Und dies verwendet HubSpot Fetch,
00:08:04um den Vercel API-Endpunkt und die HubSpot Files API aufzurufen,
00:08:08um diese Datei in euer HubSpot-Konto hochzuladen.
00:08:11Der Screenshot,
00:08:12den ich hier zeige,
00:08:13ist mein Code,
00:08:14und hier rufe ich tatsächlich die Vercel API auf.
00:08:18Und hier habe ich das einfach in einen Try-Catch-Block gepackt und dann den Endpunkt mitgeschickt.
00:08:25Nachdem ich das nun erklärt habe,
00:08:27schauen wir uns an,
00:08:27wie es funktioniert.
00:08:28Ich gehe jetzt ins Frontend, damit ihr es sehen könnt.
00:08:31Das ist also in unserem HubSpot-Konto,
00:08:34und hier haben wir den DevRel Labs Generator.
00:08:38Das ist eine sogenannte App-Einstellungsseite,
00:08:40und der Grund,
00:08:41warum ich mich entschieden habe,
00:08:43dies auf einer App-Einstellungsseite zu rendern,
00:08:45ist,
00:08:46dass dies eine sehr administrative Art von Arbeit ist,
00:08:49die Leute für ihre Website erledigen würden.
00:08:51Ich wollte es also nicht für jede Person in eurem HubSpot-Konto zugänglich machen.
00:08:55Ich wollte sicherstellen,
00:08:56dass nur die richtigen Leute Zugriff darauf haben,
00:08:59damit nicht irgendwelche Leute diese generieren und Probleme mit den KI-Such-Crawlern verursachen.
00:09:04Hier könnt ihr also euren Typ wählen,
00:09:06ihr könnt eine ganze Sitemap eingeben oder eine einzelne URL.
00:09:10Offensichtlich wird eine Sitemap,
00:09:12wenn eure Website sehr groß ist,
00:09:14eine Weile dauern.
00:09:15Eine einzelne URL ist also viel schneller.
00:09:17Dann könnt ihr einfach eure URL eingeben.
00:09:20Ich nehme jetzt developers.hubspot.com,
00:09:23und dann wird es generieren...
00:09:25Oh, ich habe einen Fehler bekommen..
00:09:28Okay.
00:09:29Nun, das ist ja lustig.
00:09:30Das ist live.
00:09:31Also, mal sehen.
00:09:32Gehen wir mal in meine Vercel-Einstellungen und schauen,
00:09:35ob wir eine Fehlermeldung bekommen in...
00:09:37Nun, nicht in den Build-Logs..
00:09:39Hier in meinem Backend können wir die Dinge sehen.
00:09:43Schauen wir uns die Laufzeitprotokolle an und sehen,
00:09:45ob wir den Fehler finden können.
00:09:46Nun,
00:09:47die Dinge funktionieren nicht,
00:09:50aber in einer perfekten Situation würde die llms.txt-Datei generiert und mit der von mir erstellten Vercel Serverless Function in euer HubSpot-Konto hochgeladen werden.
00:10:04Ich übergebe jetzt an den Rest meines Teams,
00:10:07um darüber zu sprechen,
00:10:08wie wir HubSpot auch auf andere Weisen nutzen,
00:10:11nicht nur Vercel als Backend für HubSpot,
00:10:14sondern auch für verschiedene andere Dinge,
00:10:17die wir tun.
00:10:18Ich übergebe also an Chris.
00:10:20Danke.
00:10:22Was ich an Demos liebe,
00:10:24die nicht zu 100% perfekt funktionieren,
00:10:27ist,
00:10:28dass es uns definitiv ermöglicht,
00:10:30Empathie für alle zuschauenden Entwickler und unsere Community zu empfinden.
00:10:37Wenn wir kurz zu den Folien auf Brookes Rechner zurückkehren könnten.
00:10:43Perfekt.
00:10:44Danke.
00:10:45Wir würden uns natürlich freuen,
00:10:48wenn ihr all eure Kreativität und Ideen über eine Integration mit unseren APIs zu HubSpot-Kunden bringt.
00:10:57Aber wie nutzen wir Vercel auch innerhalb von DevRel,
00:11:01um zu experimentieren,
00:11:02sehr schnelle Tests durchzuführen und sehr schnelle Prototypen zu bauen,
00:11:08damit wir Ideen,
00:11:09die wir als Team haben,
00:11:11testen und dem Rest der Organisation präsentieren können?
00:11:15Wir haben also etwas namens DevRel Labs,
00:11:18und DevRel Labs ist eine Reihe von Regeln,
00:11:20eine Reihe von Prozessen,
00:11:22die sich über die gesamte Entwicklerbeziehungen erstrecken,
00:11:26und es gibt uns die Möglichkeit,
00:11:28eine standardisierte Methode zu haben,
00:11:30um zu experimentieren,
00:11:32diese Experimente zu validieren oder zu invalidieren,
00:11:35wie es manchmal vorkommt,
00:11:37und sie dann zu graduieren.
00:11:39Vielleicht wird es dann ein Produkt oder eine ausgereiftere Lösung.
00:11:46Und worüber wir jetzt sprechen werden,
00:11:49sind zwei Experimente,
00:11:50die ich geleitet habe,
00:11:52und dann werden wir zu Dennis übergehen,
00:11:54um über das zu sprechen,
00:11:56an dem er gearbeitet hat.
00:11:58Aber all diese Experimente haben einen klaren Prozess und ein klares Ziel.
00:12:03Und eines davon ist,
00:12:04dass wir,
00:12:05wie viele Organisationen,
00:12:07eine Slack-Community für externe Entwickler haben.
00:12:10Dies ist ein Ort,
00:12:12an dem Leute,
00:12:13die Lösungen auf HubSpot aufbauen,
00:12:15zusammenkommen,
00:12:16sich engagieren,
00:12:17lernen und sich gegenseitig helfen können.
00:12:21Denn wirklich,
00:12:22die beste Community ist eine Community,
00:12:25die Peer-to-Peer-Engagement hat.
00:12:27Und so dachten wir,
00:12:29was können wir tun,
00:12:31um diesen Community-Mitgliedern schneller Lösungen und Ressourcen zur Verfügung zu stellen?
00:12:38Und eine der offensichtlichen Lösungen,
00:12:40ich bin sicher,
00:12:41ihr habt schon mit mehreren Slack-Bots interagiert,
00:12:44war der Bau eines Slack-Bots.
00:12:45Aber als wir über einen Slack-Bot nachdachten,
00:12:47war es nichts,
00:12:48das wir die Konversation dominieren lassen wollten.
00:12:51Wir wollten ihn zur Interaktion nutzen.
00:12:53Er sollte also nicht zu aufdringlich sein.
00:12:57Und wir wollten ihn nutzen,
00:12:59um unserer externen Community schnell und in Echtzeit Ressourcen zur Verfügung zu stellen.
00:13:05Und so haben wir das auf Vercel gebaut.
00:13:08Denn das ermöglicht es uns,
00:13:10sehr schnell einen Prototyp zu erstellen,
00:13:13dann dessen Qualität zu bewerten und dann von dort aus zu entscheiden: Was machen wir als Nächstes damit?
00:13:21Und im Moment befinden wir uns in der Experimentier- und Validierungsphase.
00:13:25In Zusammenarbeit mit dem Rest unseres Community-Teams in DevRel werden wir also entscheiden,
00:13:30wie es weitergeht.
00:13:31Ich wollte also schnell auf meinem Bildschirm die Bots zeigen,
00:13:34und was ihr hier seht,
00:13:36das wir haben,
00:13:37ich mag diesen Startbildschirm wirklich sehr,
00:13:39weil er Spaß macht,
00:13:40wisst ihr,
00:13:41Grafiken und Diagramme und Zahlen sind immer wirklich lustig.
00:13:45Aber wir haben einen einfachen Bildschirm,
00:13:48der uns einige Daten zur Akzeptanz des Bots liefert.
00:13:51Aber es gibt zwei Möglichkeiten,
00:13:52mit dem Bot zu interagieren.
00:13:53Ich kann es per Direktnachricht tun,
00:13:55oder wir haben einige Kanäle,
00:13:57in denen der Bot automatisch auf supportbezogene Fragen antwortet.
00:14:01Ich werde jetzt einfach eine Frage stellen: Wie fange ich mit dem HubSpot Dev MCP an?
00:14:08Und was ich zeigen wollte,
00:14:10da ich etwas eingeschränkt bin,
00:14:12was ich tatsächlich von unserem Backend zeigen kann,
00:14:15ist die Echtzeit-Protokollierung,
00:14:17die wir davon in Vercel erhalten.
00:14:19Das erlaubt mir also,
00:14:22ich werde sagen,
00:14:23dass dieser hier wahrscheinlich der Echtzeit-Chat ist,
00:14:29den ich gerade gesendet habe.
00:14:33Und es geschah schnell, was eine gute Nachricht ist.
00:14:35Es wechselt schnell zu einer Denk-Nachricht.
00:14:39Es geht zu OpenAI, um eine Antwort zu erhalten.
00:14:43Es kommt über ein Tool zurück,
00:14:44um zu sehen,
00:14:45ob es zusätzliche Ressourcen gibt,
00:14:47die vom DevRel-Team kuratiert wurden,
00:14:49die ich diesem Benutzer geben könnte,
00:14:51die ihm helfen könnten,
00:14:52weiterzukommen.
00:14:53Das könnte YouTube sein,
00:14:54es könnte Dokumentation sein,
00:14:56es könnten alle möglichen Ressourcen sein.
00:14:58Und dann wird es eine Antwort geben.
00:15:00Und ich vermute, das ist die Antwort, ja.
00:15:06Wenn ich jetzt hier zurückgehe und wir sehen,
00:15:09dass alles 200 ist.
00:15:10Das ist also das Best-Case-Szenario, richtig?
00:15:13Und das hat es getan.
00:15:14Es gab mir also nicht nur eine Antwort,
00:15:18sondern auch Artikel zum Nachschlagen.
00:15:21Es sagte mir,
00:15:22ich solle dem Dev Slack beitreten,
00:15:23ich bin schon hier.
00:15:24Aber es gab mir auch Tutorials und andere Informationen,
00:15:28die empfohlen wurden und die mit der Frage zusammenhängen würden,
00:15:32die ich hier gestellt habe.
00:15:35Und es gab mir die richtige Antwort,
00:15:37nämlich: Richte deine Entwicklungsumgebung ein,
00:15:39installiere die CLI,
00:15:40installiere den MCP-Server,
00:15:42und du bist startklar.
00:15:43Und es gab sogar einige Ideen, wie man anfangen kann.
00:15:47Und wie ihr seht,
00:15:48war das eine sehr einfache Möglichkeit für uns,
00:15:52Tests zu erstellen,
00:15:53und die Logs sind hier so wichtig.
00:15:56Eine Lösung mit einem selbstgebauten Slack-Bot testen,
00:15:59wobei unsere Hauptaufgabe in DevRel nicht darin besteht,
00:16:03Lösungen zu bauen – wir sind zwar alle Entwickler,
00:16:07aber wir bauen nicht täglich.
00:16:09Was auch immer wir bauen,
00:16:11muss uns also nicht im Weg stehen und sehr nahtlos sein.
00:16:15Das hat uns nun auf etwas vorbereitet,
00:16:17das mich etwas überrascht hat.
00:16:18Wenn wir zu den Folien zurückgehen,
00:16:21erzähle ich euch,
00:16:23wie dies zu einem weiteren Experiment führte.
00:16:27Entschuldigung,
00:16:29davor,
00:16:29Brooke,
00:16:30kannst du zurück zur Folie mit dem...
00:16:35Zuerst wollte ich sagen,
00:16:36was sind die Dinge in Vercel,
00:16:37die mich wirklich begeistert haben?
00:16:39Erstens,
00:16:40leicht lesbare Logs,
00:16:40wie ich gezeigt habe,
00:16:41und ich hatte es auf live gestellt.
00:16:43Ihr habt also das Log-Streaming in Echtzeit gesehen.
00:16:46Die Starts,
00:16:46wir haben es mit einer serverlosen Umgebung zu tun.
00:16:49Die Starts waren überraschend schnell.
00:16:52Das ist wichtig für Slack.
00:16:53Wenn ihr jemals eine Slack-Integration oder ein anderes Drittanbieter-Tool,
00:16:57das ihr integriert,
00:16:58gebaut habt,
00:16:59das ebenfalls serverlos ist,
00:17:00wollt ihr schnelle Starts.
00:17:02Und auf jeder Stufe innerhalb von Vercel gibt es schnelle Starts.
00:17:06Ich liebe die CLI,
00:17:07um vor einem Commit oder einem Pull Request deployen zu können,
00:17:11um sicherzustellen,
00:17:12dass ich,
00:17:13wenn ich irgendeinen fehlerhaften Code einfüge,
00:17:15Probleme schneller erkenne,
00:17:17bevor ich deploye,
00:17:18und natürlich das Deployen in verschiedene Umgebungen.
00:17:22Und dann auch,
00:17:22ähnlich wie wir einen Marktplatz haben,
00:17:25haben sie Verbindungen zu Diensten wie Neon und Upstash für Redis und Postgres,
00:17:30was es sehr,
00:17:30sehr schnell macht,
00:17:32eine Backend-Datenbank zum Laufen zu bringen.
00:17:35Und das war wichtig.
00:17:37Apropos Backend-Datenbank,
00:17:38das führte zu dem,
00:17:39was als Nächstes kam.
00:17:41Wir haben also all diese Interaktionen jetzt in unserem Dev Slack.
00:17:48Und es stellt sich heraus,
00:17:50dass es eine wirklich reiche Informationsquelle ist.
00:17:52Das konnten wir natürlich intuitiv erfassen.
00:17:54Aber eine der Dinge,
00:17:55die mich überrascht haben,
00:17:56war die Erkenntnis,
00:17:57dass ich wahrscheinlich eine weitere Frontend-Schnittstelle zu diesen Daten erstellen könnte,
00:18:03so dass wir sie nutzen könnten,
00:18:04um auf das zurückzukommen,
00:18:06was Brooke zuvor gesagt hat,
00:18:07um unseren Feedback-Prozess zu schulen und zu informieren,
00:18:11wie wir Informationen erhalten,
00:18:13wie wir diese Informationen zurück ins Produkt bringen,
00:18:16um die Entwicklererfahrung zu verbessern.
00:18:18Und so sind wir vom Bau eines Slackbots dazu übergegangen,
00:18:23plötzlich in einem neuen Projekt zu V0 zu wechseln,
00:18:27diese Daten zu nehmen,
00:18:28ein sehr einfaches passwortgeschütztes Frontend zu erstellen,
00:18:33um offenzulegen,
00:18:34welche Dinge die Leute fragen?
00:18:37Welche Arten von Ressourcen stellen wir zur Verfügung?
00:18:40Wir haben also viele Gespräche über Webhooks,
00:18:43wir haben viele Gespräche über Authentifizierung.
00:18:46Es ermöglichte uns,
00:18:47die Auswirkungen der Experimente zu zeigen,
00:18:50die wir durchgeführt haben,
00:18:52was wirklich,
00:18:52wirklich cool ist,
00:18:53denn wir müssen diesen Slackbot ja irgendwohin bringen.
00:18:57Wir wollten es nicht einfach bauen und dann loslassen.
00:18:59Wir müssen den nächsten Schritt gehen.
00:19:01Und der beste Weg,
00:19:02das zu tun,
00:19:03wenn ihr in Besprechungen mit Führungskräften wart,
00:19:06ist,
00:19:07eine Grafik zu zeigen oder eine Art Präsentation dort hochzuladen.
00:19:10Und das wird uns helfen,
00:19:12mit dem Community-Team innerhalb von DevRel Entscheidungen zu treffen und zu sagen: Was werden wir tun?
00:19:18Werden wir es behalten?
00:19:19Werden wir es weiterentwickeln?
00:19:21Wenn wir es weiterentwickeln,
00:19:24dann wird sich die Infrastruktur im Backend des Bots ändern.
00:19:28Aber es gab keinen besseren Weg für uns,
00:19:31anzufangen,
00:19:32als es auf einer sehr einfach zu bedienenden Plattform wie Vercel zu bauen,
00:19:36einige Visualisierungen zu haben,
00:19:39und jetzt können wir entscheiden,
00:19:41was als Nächstes zu tun ist.
00:19:43Jetzt schauen wir uns an,
00:19:44was Dennis gebaut hat,
00:19:46was noch fortschrittlicher ist als das,
00:19:48was ich gebaut habe,
00:19:49und ich wage zu behaupten,
00:19:51besser,
00:19:51aber auch ein weiteres Experiment innerhalb der DevRel Labs.
00:19:55Und so, Dennis, du bist dran.
00:19:57Danke, Chris.
00:19:59Und danke, dass du sagst, es ist besser.
00:20:01Mein Gott, hoffentlich hören alle zu.
00:20:04Bevor ich bei HubSpot gearbeitet habe,
00:20:06war ich in einer Agentur tätig.
00:20:08Und als Chris mir von diesen DevRel Labs erzählte,
00:20:11hatten wir ein sehr spezifisches Problem,
00:20:14das mir in der Agentur begegnete,
00:20:16und das war,
00:20:17dass ich etwas bauen würde,
00:20:19eines dieser drei Dinge.
00:20:21Ich würde entweder etwas bauen,
00:20:22damit fertig sein,
00:20:22und es wäre dann quasi im Wartungsmodus.
00:20:24Ich beobachte es nur gelegentlich.
00:20:25Es würde später kaputtgehen,
00:20:27weil ich etwas verpasst habe,
00:20:29das im HubSpot-Ökosystem passiert ist.
00:20:31Oder ich habe eine ganze Reihe von Projekten geerbt und hatte keine Ahnung,
00:20:36was sie taten.
00:20:37Und so würde schließlich eines davon auf eine Art Breaking Change stoßen und sich selbst zerstören,
00:20:42und ich müsste herausfinden,
00:20:43wo,
00:20:43warum und wie.
00:20:44Und das Letzte,
00:20:44und das ist wahrscheinlich mein größtes Problem,
00:20:47ist,
00:20:47dass es so viele verdammte Dinge gibt,
00:20:49auf die man achten muss,
00:20:50dass ich oft einfach den Überblick verliere,
00:20:52was ich tue.
00:20:52Ich achte nicht auf die Changelogs, und etwas geht kaputt.
00:20:56Und wisst ihr was?
00:20:57Ihr habt dann Kunden, die euch anschreien.
00:20:59Also habe ich beschlossen,
00:21:01die nächste Folie zu bauen: das HubSpot Entwickler-Changelog-Überwachungstool,
00:21:07auch bekannt als Codename Sprocky Change Dust.
00:21:10Dieses Tool überwacht aktiv das HubSpot-Changelog,
00:21:13das KI nutzt,
00:21:14um diese Changelog-Einträge zu analysieren und zu entscheiden,
00:21:17um welche Art von Änderung es sich handelt.
00:21:19Ist es eine Breaking Change?
00:21:21Ist es eine Verbesserung?
00:21:22Betrifft es das CMS?
00:21:23Betrifft es das CRM?
00:21:24Betrifft es beides?
00:21:26Und dann ermöglicht es euch,
00:21:28auf GitHub gehostete Repos zu verwenden,
00:21:31um diese Changelogs mit eurem Repo abzugleichen,
00:21:34wodurch ihr im Grunde einen Assistenten habt,
00:21:37der das Changelog für euch prüft.
00:21:39Wie haben wir das gemacht?
00:21:40Das hier verwendete Toolkit wird ein React-Framework sein,
00:21:44das mit Vercel gebaut wurde,
00:21:45offensichtlich Next.js,
00:21:46weil,
00:21:47ihr wisst ja,
00:21:48Erdnussbutter und Gelee,
00:21:49Superbase für unsere Datenbank,
00:21:51und dann mussten wir eine GitHub-App bauen,
00:21:53die es uns ermöglicht,
00:21:54uns mit diesen Repos dort zu verbinden.
00:21:56Und dann konnte ich über einige serverlose Funktionen auf Vercel und OpenAI wirklich hochwertige Daten für den Benutzer zurückbringen,
00:22:04auf die er reagieren kann.
00:22:06Warum habe ich Vercel gewählt?
00:22:07Ehrlich gesagt, es ist einfach super einfach einzurichten.
00:22:11Ich musste mich nicht sehr um das Frontend kümmern.
00:22:13Ich hatte eine App in weniger als einer halben Stunde problemlos am Laufen.
00:22:18Mit den serverlosen Funktionen konnte ich die Kosten für den Betrieb dieses Servers wirklich reduzieren.
00:22:23Es ist nur aktiv, wenn ich es brauche.
00:22:25Ich sende diese Batch-Warteschlangen an OpenAI,
00:22:28und es bringt es schnell zurück.
00:22:31Dadurch habe ich Tonnen von Geld gespart.
00:22:32Und dann auch die Tatsache,
00:22:34dass ich alleine testen und dann einfach auf Tausende von Menschen wachsen kann,
00:22:38die diese App nutzen,
00:22:39Vercel ist einfach da,
00:22:40skaliert mit mir.
00:22:42Der ganze Prozess war großartig.
00:22:44Also,
00:22:45weiter zur nächsten Folie,
00:22:46ihr seht,
00:22:46das ist im Grunde das Frontend,
00:22:48das ich mit Next.js gebaut habe.
00:22:50Ihr werdet sehen,
00:22:51wir importieren alle unsere Changelog-Einträge.
00:22:53Genau hier seht ihr eine Beschreibung dessen,
00:22:55was dieses Changelog ist.
00:22:57Wenn ihr es jetzt hier wisst,
00:22:58könnt ihr bereits ein Issue zu einem bestimmten GitHub-Repo erstellen,
00:23:02das ihr angehängt habt,
00:23:03was uns zur nächsten Folie bringt,
00:23:05wir müssen es mit GitHub verbinden.
00:23:07Dies ermöglicht es euch,
00:23:09so viele Repos zu verbinden,
00:23:10wie ihr wollt.
00:23:11Beim ersten Scan wird es einen programmatischen Scan durchführen,
00:23:15um zu sehen,
00:23:15ob es denkt,
00:23:16dass es für HubSpot relevant ist.
00:23:18Denkt daran,
00:23:18ihr habt vielleicht Repositories geerbt,
00:23:21wie 50 Repositories.
00:23:22Ihr habt keine Ahnung, was sie tun.
00:23:23Ihr werft sie hier rein.
00:23:24Es wird einen ersten Scan durchführen.
00:23:26Es wird alles finden,
00:23:27Dateimuster,
00:23:28die es finden kann,
00:23:29um zu sagen,
00:23:29oh ja,
00:23:30das könnte HubSpot-bezogen sein,
00:23:32an diesem Punkt könnt ihr zur nächsten Folie gehen und ihr werdet sehen,
00:23:36dass ihr den HubSpot-Button dort klicken könnt,
00:23:38was bedeutet,
00:23:39dass es es in einem Batch an OpenAI senden wird.
00:23:42Es wird überwachen,
00:23:43es verwendet ein RAG-System,
00:23:44um nur die wichtigen Details zu senden,
00:23:46die es für euer Repo und HubSpot relevant hält.
00:23:49Es wird ein wenig Zeit in Anspruch nehmen,
00:23:51und sobald es fertig ist,
00:23:53wird es zurückkommen und euch alle möglichen Treffer anzeigen.
00:23:56Ihr erhaltet eine Benachrichtigungs-E-Mail,
00:23:58ich arbeite auch an einer Slack-Benachrichtigung,
00:24:00die besagt: Hey,
00:24:01das solltet ihr euch besser ansehen.
00:24:03Ihr habt dann die Möglichkeit,
00:24:04entweder zu sagen: Okay,
00:24:05das ist legitim,
00:24:06ich werde ein Issue dazu erstellen und wir werden daran arbeiten,
00:24:09oder ich kann es ablehnen,
00:24:10weil es nicht wirklich damit zusammenhängt.
00:24:12Sobald ihr es ablehnt,
00:24:13sind wir intelligent genug,
00:24:14um zu erkennen: Okay,
00:24:16das ist vielleicht nicht das,
00:24:17was wir für dieses spezielle Repo überwachen wollen,
00:24:20also werden wir die Nutzungsstatistik aktualisieren.
00:24:23Danach werden wir jedes Repo kontinuierlich überwachen.
00:24:27Wenn ihr also Änderungen an einem der Repositories vornehmt,
00:24:31beobachten wir das..
00:24:32Wenn ihr eine größere Änderung vornehmt,
00:24:34werden wir alle Changelogs erneut gegen diese neue Änderung scannen,
00:24:37die ihr hinzugefügt habt,
00:24:38um sicherzustellen,
00:24:39dass ihr nichts getan habt,
00:24:40von dem ihr nicht wusstet,
00:24:42dass es ein Problem war.
00:24:43Es erlaubt uns auch,
00:24:45weiterzumachen und ich habe vergessen,
00:24:48was ich sagen wollte.
00:24:50Es ermöglicht uns,
00:24:52jedes Mal,
00:24:52wenn ein neues Changelog eingeht,
00:24:55alle verbundenen Repos durchzugehen,
00:24:57um zu sehen,
00:24:58ob dieses Changelog spezifisch für euch ist.
00:25:01Dies ermöglicht es euch,
00:25:02euch nicht auf eure Augen verlassen zu müssen,
00:25:04um zum Changelog zu gehen und herauszufinden,
00:25:06ob dies für euch relevant ist oder nicht.
00:25:08Es ermöglicht,
00:25:09dass das Changelog in eurem Posteingang landet und ihr es nach Bedarf bearbeiten könnt.
00:25:14Damit wären wir bei der Q&A-Zeit, denke ich.
00:25:17Ich habe versucht,
00:25:18das so schnell wie möglich durchzugehen,
00:25:19damit wir bei Bedarf noch Zeit für Fragen und Antworten haben.
00:25:22Das hast du gut gemacht, Dennis.
00:25:23Ja, super gemacht, Dennis.
00:25:25Blitzschnell.
00:25:26Sehr schnell.
00:25:27Gut, wir haben hier noch ein paar Minuten.
00:25:31Ich habe also eine Frage zum Anfang.
00:25:34Ich weiß,
00:25:35wir haben heute gesehen,
00:25:36dass Demos live nicht immer perfekt laufen.
00:25:39Und obwohl Vercel die Dinge für die Leute einfach macht,
00:25:42gibt es immer etwas,
00:25:43das wir besser machen können.
00:25:45Niemand ist perfekt.
00:25:46Habt ihr also irgendwelche Feature-Anfragen,
00:25:48die ich dem Engineering-Team mitteilen soll?
00:25:51Gibt es etwas,
00:25:52das ihr anders sehen möchtet oder das einfach ganz fehlt?
00:25:55Ich weiß noch nicht, ob etwas fehlt.
00:26:00Aber ehrlich gesagt,
00:26:01es gibt einige Funktionen,
00:26:02die ihr kürzlich eingeführt habt,
00:26:04die die Laufzeit einer serverlosen Funktion verlängern,
00:26:07glaube ich.
00:26:07Ich erinnere mich nicht an den Namen der Funktion,
00:26:10die ihr gerade eingeführt habt,
00:26:11an der ich sehr interessiert bin,
00:26:13denn wenn ich mit OpenAI arbeite,
00:26:14könnte das Warten auf ein Ergebnis die Lebensdauer der serverlosen Funktion überdauern.
00:26:19Ihr hattet einen Namen dafür,
00:26:20und es tut mir leid,
00:26:20aber ich habe ihn vergessen.
00:26:21Aber ich freue mich wirklich darauf,
00:26:24das sowie euer AI SDK,
00:26:25das ihr gerade vorgestellt habt,
00:26:27zu nutzen.
00:26:28Das sind keine Feature-Anfragen,
00:26:30das ist,
00:26:31wie ich die Funktionen genieße,
00:26:32die ihr herausbringt.
00:26:34Ich habe noch eine.
00:26:35Ich habe tatsächlich die,
00:26:37ich vergesse den Namen der API für Deploys,
00:26:40benutzt,
00:26:41weil ich es nicht getan habe,
00:26:43es war irgendwie nervig,
00:26:45von der Frontend-Anwendung,
00:26:47die ich gebaut habe,
00:26:49zu fragen: War der Deploy überhaupt erfolgreich?
00:26:53Und so habt ihr eine API, um den Deploy-Status abzurufen.
00:26:56Das muss ich also nicht tun.
00:26:58Ich kann warten,
00:26:58bis es gelesen ist,
00:26:59bevor ich,
00:27:00weil ich eigentlich nicht auf die Oberfläche schauen möchte,
00:27:03bis es ein Problem gibt.
00:27:05Und wenn ich einen fehlgeschlagenen Deploy habe,
00:27:07ist das das frustrierendste Problem,
00:27:08auf das ich je stoße.
00:27:09Aber ansonsten,
00:27:10mehrere Projekte zu haben und ich denke,
00:27:13einige der Schnittstellen,
00:27:15es gibt immer Bereiche,
00:27:16in denen man die Erfahrung verbessern kann,
00:27:19aber es gab nicht eine Sache,
00:27:21die mir aufgefallen ist.
00:27:23Ja,
00:27:23ich habe eine mögliche Falle,
00:27:25die auf meiner Seite liegen könnte und nicht bei Vercel.
00:27:28Also, wenn es eine Feature-Anfrage ist, super.
00:27:30Wenn es an mir liegt, nun, Schande über mich.
00:27:33Ich habe tonnenweise lokal mit all meinen Sachen getestet und Funktionen sterben lokal nicht.
00:27:38Zumindest nicht bei mir.
00:27:40Also sah alles aus wie geschmiert,
00:27:42wisst ihr,
00:27:42es war erstaunlich.
00:27:43Alles funktioniert.
00:27:44Hat auf meiner Maschine funktioniert.
00:27:45Ja.
00:27:46Hat auf meiner Maschine funktioniert.
00:27:47Genau.
00:27:48Klassisch.
00:27:49Also,
00:27:50wenn ihr ein Vercel macht und ihr wisst,
00:27:52dass die Funktionen irgendwann sterben,
00:27:54ich,
00:27:54wieder,
00:27:55das könnte eine Sache von mir sein,
00:27:57wo ich einfach meine Funktionen,
00:27:58im Grunde einen Governor auf meine Funktionen setzen muss,
00:28:02um ihnen nur zu erlauben,
00:28:03für eine bestimmte Zeit zu laufen.
00:28:04Aber wenn Vercel das out of the box anbieten könnte,
00:28:07wäre das ziemlich erstaunlich.
00:28:08Es ist wie eine längere Laufzeit.
00:28:10Ja.
00:28:11Nein, nein.
00:28:12Wie,
00:28:12naja,
00:28:13ich meine,
00:28:13Laufzeiten,
00:28:14die denen in der Produktion entsprechen.
00:28:17Lokal.
00:28:18Ja.
00:28:19Okay.
00:28:20Ja.
00:28:21Ich bin auch schon auf so etwas gestoßen.
00:28:22Gut zu wissen.
00:28:23Hast du noch etwas?
00:28:24Das ist großartig.
00:28:25Ich weiß.
00:28:26Ich habe das mein ganzes Leben lang durchgemacht,
00:28:29wenn ich neben mir auf etwas klopfe,
00:28:30hilft es mir,
00:28:31mich zu erinnern.
00:28:32Ich habe keine spezifischen Anfragen,
00:28:34nein,
00:28:35aber ich wollte nur darauf hinweisen,
00:28:37wenn ihr neu bei HubSpot seid,
00:28:39aber euch gefallen hat,
00:28:40was ihr gesehen habt und ihr uns ausprobieren möchtet.
00:28:43Ihr könnt jederzeit unserem Entwickler-Slack beitreten.
00:28:45Wir haben darüber gesprochen und ihr könnt auch unsere Entwicklerdokumentation ansehen,
00:28:51damit ihr selbst einiges ausprobieren könnt.
00:28:55In der Tat.
00:28:56Großartig.
00:28:57Mal sehen.
00:28:58Ich habe noch eine Frage,
00:28:59die ich gerne stelle,
00:29:01und zwar: Ich weiß,
00:29:03ihr habt viel behandelt.
00:29:05Gibt es also eine wichtige Erkenntnis,
00:29:07eine Best Practice oder einfach einen wichtigen Tipp,
00:29:11den die Leute von diesem Vortrag mitnehmen sollen?
00:29:14Ich habe einen,
00:29:15und ich habe ihn nicht befolgt und ich befolge ihn immer noch nicht und ich bin wütend auf mich,
00:29:21ich bin sehr wütend auf mich selbst.
00:29:23Nutzt Umgebungen und richtet sie frühzeitig ein.
00:29:27Versucht nicht,
00:29:28es später nachzurüsten,
00:29:30denn das ist so schmerzhaft.
00:29:32Also frühzeitig eure Umgebung zu haben,
00:29:35das ist eine Sache,
00:29:36wie in der Oberfläche,
00:29:38es ist sehr einfach,
00:29:39eure Umgebungsvariablen an eine Umgebung zu binden.
00:29:43Richtet Umgebungen ein, nutzt sie frühzeitig.
00:29:48Wartet nicht, denn es später zu tun ist so, so schmerzhaft.
00:29:51Und ich weiß,
00:29:52wir alle wollen einfach nur Funktionalität bauen und sehen,
00:29:55wie sie so schnell wie möglich funktioniert.
00:29:57Und so kann eine Testumgebung etwas nervig sein,
00:30:00aber ja,
00:30:00das ist,
00:30:01das war,
00:30:01was ich empfehlen würde.
00:30:03Dem würde ich zustimmen.
00:30:04Ich bekam einen Fehler und fragte Cursor,
00:30:07warum mein Fehler,
00:30:08warum es nicht funktionierte,
00:30:10als ich in meiner Entwicklungsumgebung war,
00:30:13und es lag daran,
00:30:14dass ich die Verwendung meines Umgebungsschlüssels in meiner Entwicklungsumgebung nicht aktiviert hatte.
00:30:22Es war also so, als ob es den Schlüssel nicht finden konnte.
00:30:24Das war also irgendwie albern.
00:30:26Aber ja,
00:30:26ich sehe die Frage,
00:30:28wie ihr KI in euren Workflows nutzt?
00:30:30Also speziell bei mir,
00:30:32ich benutze gerne unser Entwickler-MCP.
00:30:35Ich denke,
00:30:35es ist ein wirklich gutes Produkt und wir versuchen immer,
00:30:38Feedback zu bekommen,
00:30:39wie wir dieses Entwickler-MCP für HubSpot-Entwickler besser machen können.
00:30:43Aber ich liebe es,
00:30:44denn wenn ich Cursor frage,
00:30:46wie: Oh,
00:30:46ich möchte etwas tun.
00:30:48Was es tun wird,
00:30:49ist,
00:30:49dass es unsere Dokumente in Echtzeit durchsuchen wird.
00:30:51Ihr werdet also immer die aktuellsten Informationen erhalten.
00:30:55Es wird nicht veraltet sein,
00:30:57wenn ihr dem MCP eine Frage stellt und es diese Suche nach den Dokumenten durchführt.
00:31:04Meine Ergänzung ist, ich nutze KI skeptisch.
00:31:07Ich hinterfrage alles,
00:31:08was es mir zurückschickt,
00:31:10denn oft ist es,
00:31:10wisst ihr,
00:31:11immer noch nicht perfekt.
00:31:12Nicht, es ist so einfach.
00:31:14Es ist wie Süßigkeiten.
00:31:15Wisst ihr,
00:31:16ihr könnt einfach auf Akzeptieren klicken,
00:31:18los,
00:31:18los,
00:31:19los,
00:31:19los,
00:31:20los.
00:31:19Ihr seid 17 Commits tief.
00:31:21Und dann,
00:31:22wisst ihr,
00:31:22wird dieser dritte Commit tatsächlich alles kaputt machen.
00:31:26Also nutzt Vercel oder nutzt Vercel,
00:31:29nutzt KI auf eine skeptische Weise.
00:31:31Sehr kritisch damit umgehen.
00:31:33Erstellt immer,
00:31:34immer,
00:31:35immer neue Branches,
00:31:36wenn ihr etwas Neues macht.
00:31:38So könnt ihr es bei Bedarf einfach loswerden.
00:31:40Nutzt Vercel und seine Preview-Umgebung,
00:31:44wisst ihr,
00:31:45um das zu tun und ja,
00:31:47verlasst euch nicht zu sehr darauf.
00:31:50Alles gute Ratschläge.
00:31:51Ich weiß,
00:31:52unsere Zeit ist um,
00:31:53und ihr seid alle sehr beschäftigt und habt wahrscheinlich gleich Termine.
00:31:58Vielen Dank, dass ihr euch die Zeit genommen habt.
00:32:00Ich lasse euch jetzt gehen,
00:32:01damit ihr euren Tag fortsetzen könnt.
00:32:03Ich weiß es zu schätzen.
00:32:04Danke.
00:32:05Vielen Dank an Vercel und alle, die gekommen sind.
00:32:09Großartig.
00:32:11Nur eine kurze Erinnerung.
00:32:12Wir haben nächste Woche eine weitere Session.
00:32:14Wir werden über Python bei Vercel sprechen.
00:32:18Und ihr könnt jederzeit den Veranstaltungskalender unter community.vercel.com/events überprüfen,
00:32:22um zu sehen,
00:32:23was als Nächstes kommt.
00:32:24Vielen Dank euch allen.
00:32:25Habt eine gute Woche.