favgif

MBVon Malte Budig
favgif – der /favgif Slash-Command in Slack

favgif ist eine Slack-App, mit der Teams GIFs suchen (Klipy, Tenor, Giphy), als Favoriten speichern und direkt in Channels posten. Das Backend ist eine einzelne Supabase Edge Function plus Postgres für nutzerbezogene Favoriten – pro Workspace self-hostbar.

favgif: GIFs in Slack suchen, favorisieren und posten

favgif ist eine Slack-App, mit der Teams GIFs direkt in Slack suchen, favorisieren und in Channels posten – ohne den Chat zu verlassen.

favgif Slash-Command Einstieg über den /favgif Slash-Command direkt im Nachrichtenfeld

Meine Rolle

Solo-Projekt – Produkt, Slack-Integration und das komplette Backend.

Was favgif macht

  • Suchen über Slash-Command oder globalen Shortcut – Trending-GIFs (Klipy) oder gezielte Suche (Klipy, Tenor)
  • Posten des gewählten GIFs in den Channel, aus dem heraus die Auswahl geöffnet wurde
  • Favoriten pro Nutzer und Workspace speichern und wieder abrufen
  • Link einfügen – direkte GIF-URLs oder Giphy-Seiten werden automatisch zu einer GIF-Datei normalisiert
  • Paginierung der Ergebnisse (Weiter/Zurück)

favgif GIF-Suche GIF-Auswahl im Modal – mit „Post" direkt in den Channel

favgif Favoriten Favoriten schnell auswählen oder per Link einfügen

Technische Herausforderungen

  • Backend als einzelne Edge Function – die gesamte Slack-Interaktionslogik (Slash-Commands, Shortcuts, Modals, Block Actions) läuft in einer einzigen Supabase Edge Function (Deno), mit Postgres für nutzerbezogene Favoriten.
  • Mehrere GIF-Anbieter – Klipy, Tenor und Giphy hinter einer einheitlichen Oberfläche, inklusive Normalisierung von Giphy-Seiten-URLs zu direkten GIF-Dateien.
  • Slack-Interaktionsmodell – Modals, Paginierung und das Posten mit dem richtigen Channel-Kontext sauber über Slacks Interaktions-Payloads abbilden.

Tech-Stack

  • Backend: Supabase Edge Function (Deno), Postgres
  • Integration: Slack API (Slash-Commands, Shortcuts, Modals, Block Kit)
  • GIF-Quellen: Klipy, Tenor, Giphy
  • Sprache: TypeScript

Self-Hosting

Jeder Workspace betreibt seine eigene Supabase-Instanz, Slack-App und GIF-Provider-API-Keys – nichts wird zwischen Workspaces geteilt.