Früher Zugang ist offen

Teamchat, der auf Ihren eigenen Servern läuft.

Teamchat auf Ihrem eigenen Server. Eine Installation trägt alle Arbeitsbereiche, die Ihre Organisation braucht, und ein Client hält alle Server, auf denen Ihre Leute arbeiten.

Source-available (FSL 1.1). Keine Gebühr pro Person und keine Platzzahl zu melden.


Läuft auf

Ein Host Docker Compose Auf dem Schreibtisch macOS, Windows, Linux In der Tasche iOS und Android
Der Tulpar-Client zeigt den Kanal platform eines Arbeitsbereichs: ein Entwicklungsgespräch mit Threads, Reaktionen, Anwesenheitsanzeigen und dem Eingabefeld.
  • Docker Compose auf einem Host
  • Keine Gebühr pro Person
  • Nichts verlässt Ihr Netz

Eine Symfony-API, ein Go-WebSocket-Server und ein Nuxt-Client, auf Ihrem PostgreSQL. Web und iPhone sind gebaut; was nicht gebaut ist, steht auf dieser Seite.

Warum es entstand

Gedächtnis mietet man nicht.

Ein Chat-Werkzeug, das Sie kostenlos benutzen, zieht eines Morgens eine Mauer durch Ihr Archiv. Zehntausend Nachrichten sehen Sie, der Rest ist verschlossen. Das ist keine technische Grenze. Das ist eine Karte, die für das Preisgespräch zurückgehalten wird.

Dabei ist die Vergangenheit einer Organisation mehr als der Platz, den sie in einer Datenbank belegt. Die Begründung einer Entscheidung, die unter Druck fiel, der Ton eines Satzes von vor zwei Jahren, die Notiz nach einem Fehler. Wie eine Organisation denkt, liegt dort.

Die Alternativen wurden eine nach der anderen ausprobiert. Jede brachte entweder eine andere Fassung derselben Mauer hervor oder dieselbe Antwort: Die Daten bleiben auf der Maschine eines anderen. Deshalb wurde Tulpar geschrieben.

Ein Tamga ist das älteste Zeichen dafür, wem etwas gehört. Es wird in Stein gehauen, und Gehauenes geht nicht wieder weg.

Das Produkt

Ein Fenster, jeder Server, auf dem Ihre Leute sind

Drei Ansichten desselben laufenden Clients. Nichts davon ist ein Entwurf, und nichts davon ist eine Funktion, die wir bauen wollen.

Web, Desktop und Mobil. Ein Konto, dieselben Server; welche App Sie auch öffnen, Sie machen an derselben Stelle weiter.

Arbeitsbereich ist nicht Server

Zwei verschiedene Dinge, und Sie bekommen beide. Eine Installation trägt so viele Arbeitsbereiche, wie Ihre Organisation braucht, jeder mit eigenen Kanälen, Mitgliedern und Einstellungen. Ein Client hält daneben voneinander unabhängige Server gleichzeitig: Ihr Unternehmen, die eigene Installation einer Kundin, eine Community. Jeder Server öffnet seine eigene Sitzung und seinen eigenen Socket, und alle stehen im selben Fenster. Keine zweite Anwendung, kein zweites Konto.

Der Tulpar-Client zeigt einen Kanal des Arbeitsbereichs Meridian mit Kanalliste, einem Gespräch mit Threads und dem Eingabefeld.

Threads neben dem Raum, nicht darüber

Eine Antwortzahl öffnet den Thread in einem eigenen Bereich, während der Kanal bleibt, wo er war. Reaktionen, Folgen, Ungelesenes pro Thread und die gesamte Nachrichtenleiste kommen mit, und nichts, was Sie gerade lesen, verrutscht.

Derselbe Kanal mit geöffnetem Thread-Bereich rechts: eine Ausgangsnachricht und ihre drei Antworten.

Das Theme schreiben Sie

Vier Farbpaletten liegen bei, jede in einer hellen und einer dunklen Fassung, und damit endet die Liste nicht: Sie definieren Ihr eigenes Theme, speichern es und exportieren es, um es weiterzugeben. Leseschrift und Schriftgröße sind eine persönliche Einstellung statt einer Firmenentscheidung, und die gesamte Oberfläche gibt es auf Englisch und Türkisch.

Derselbe Arbeitsbereich in der hellen Fassung.

Die Grenze

Eigene Infrastruktur heißt eigene Daten

Es geht nicht darum, wo die Software läuft. Es geht darum, dass das Gespräch, die Leute und die Dateien in einer Datenbank liegen, die Sie halten, unter einem Schlüssel, den Sie erzeugt haben. Hier ist das ganze Register, beide Spalten, bevor Sie danach fragen.

Ihr Netz

  • Jede Nachricht, jeder Thread, jede Datei In Ihrem PostgreSQL, auf Ihrem Host. Es gibt nirgendwo sonst eine Kopie.
  • Konten und Zugangsdaten Passwörter werden in Ihrer Datenbank gehasht. Es wird kein Identitätsanbieter gebraucht und keiner kontaktiert.
  • Die Signaturschlüssel Das JWT-Schlüsselpaar entsteht bei der Installation auf Ihrer Maschine und verlässt sie nie.
  • Anhänge Standardmäßig auf Ihre Platte geschrieben. Objektspeicher nur, wenn Sie auf Ihren eigenen Bucket zeigen.
  • Sicherungen Ein datiertes Archiv auf Ihrem Host: der Datenbank-Dump, der Anwendungszustand, die Schlüssel.

Überschreitet die Grenze

  • Standardmäßig nichts Es gibt weder im Client noch im Server ein Paket für Analyse, Telemetrie oder Absturzberichte. Nicht per Einstellung abgeschaltet: nicht vorhanden.
  • Ausgehende E-Mail Über den Maildienst, den Sie einrichten, für Einladungen und Passwort-Rücksetzungen. Ihre Wahl, auch die Wahl, keinen zu nehmen.
  • Link-Vorschauen Wird ein Link gepostet, wird die verlinkte Seite geladen, um die Karte zu bauen. Einbettungen einiger Video- und Audiodienste laden von dort.
  • TLS am Rand Erreichen Sie Ihren Server über einen Cloudflare-Tunnel, endet TLS bei Cloudflare. Beenden Sie es selbst, dann nicht.
  • Eine optionale Leseschrift Nur wenn jemand eine der alternativen Chat-Schriften wählt. Voreingestellt ist die Systemschrift, und die lädt nichts.

Eine Tontafel hielt dreitausend Jahre, weil sie auf niemandes Server lag.

Eine Tamga ist ein Eigentumszeichen. In Stein gehauen; was gehauen ist, wird nicht zurückgenommen.

Auf dieser Seite wird keine Compliance-Zertifizierung behauptet, weil keine vorliegt. Was oben steht, ist die Architektur und keine Richtlinie: es hält, weil die Software so gebaut ist, und nicht wegen eines Versprechens über ihren Betrieb.

Heute im Einsatz

Das alles läuft bereits

Keine Roadmap und keine Vergleichstabelle. Jedes Einzelne davon steckt in dem Client, den Sie oben auf den Aufnahmen sehen.

Öffentliche Kanäle Private Kanäle Gruppenchats Direktnachrichten Threads Thread-Bereich Ungelesenes pro Thread Nachricht folgen Reaktionen Eigene Emoji Erwähnungen Erwähnungsgruppen
Bearbeiten Löschen Zitieren Weiterleiten Anheften Lesezeichen Geplante Nachrichten Entwürfe Bearbeitungsverlauf Link-Vorschauen Tippanzeige Anwesenheit Lesebestätigungen
Datei-Upload Vorschau im Verlauf Dateibrowser Suche im Arbeitsbereich Befehlspalette Kanalverzeichnis Personenverzeichnis Kanal-Lesezeichen Nicht stören Eingehende Webhooks Ausgehende Webhooks Bot-Konten Plugin-Hooks Systemdiagnose Vier Paletten Eigenes Theme Theme-Export Hell und dunkel Englisch und Türkisch

Push-Benachrichtigungen und signierte Plugin-Pakete sind nicht fertig, deshalb stehen sie nicht auf dieser Seite.

Plugins

Erweitern, ohne zu forken

Plugins sind zuerst deklarativ. Ein Manifest schreibt auf, was das Plugin hinzufügt und was es anfassen darf, den Rest macht der Kern. Installiert wird aus einem Verzeichnis, einer ZIP-Datei oder einer Registry, auf die Sie den Server zeigen lassen.

Slash-Befehle
Im Manifest deklariert, vom Kern geroutet, vom Plugin beantwortet.
Oberflächen-Slots
Ein Plugin kann ein Bedienelement in die Nachrichtenleiste oder einen Reiter in die Einstellungen setzen, ohne den Client anzufassen.
Profilfelder
Felder im Profil einer Person ergänzen, mit eigenen Lese- und Schreib-Endpunkten.
Auszeichnungen
Sie schreiben die Regeln; der Kern setzt sie durch und hält Daten und Darstellung.
Lebenszyklus-Hooks
Vor und nach einer Aktion laufen und sie ganz abbrechen, wenn das die richtige Antwort ist.
Berechtigungen
Jedes Manifest schreibt auf, was es will. Was es nicht verlangt hat, bekommt es nicht.

plugin.json

{
  "id": "com.tulpar.dice",
  "name": "Dice Roller",
  "type": "slash_command",
  "capabilities": {
    "slashCommands": [{
      "command": "dice",
      "usage": "/dice [NdN]"
    }],
    "uiExtensions": [{
      "slot": "message-toolbar",
      "icon": "dices",
      "label": "Roll dice"
    }]
  },
  "permissions": ["messages.write"]
}

Ein Plugin, das mit dem Produkt ausgeliefert wird, unverändert.

Was es nicht tut, hier gesagt statt später entdeckt: Plugin-PHP läuft nicht in einer Sandbox, Pakete tragen eine Prüfsumme statt einer Signatur, die Registry-Endpunkte existieren, die Ansicht zum Durchsuchen aber noch nicht, und ein Manifest, das einen Bot betreiben will, wird abgelehnt. Bots gehören außerhalb des Request-Zyklus, an den Endpunkt für eingehende Webhooks.

Neben den Alternativen

Dieselbe Aufgabe, anders gebaut

Slack und Mattermost sind gute Software. Wo sie wirklich dasselbe tun, sagt die Zeile unten das auch; der Unterschied liegt vor allem daran, wer die Datenbank hält.

Merkmal Tulpar Slack Mattermost
Wo Nachrichten liegen Ihr PostgreSQL, Ihr Host Die Cloud von Salesforce Ihr Host oder deren Cloud
Preis pro Person Keiner. Die Software ist die Software Pro Platz, pro Monat Kostenlose Stufe, bezahlt pro Platz
Server in einem Client Jeder Server, in einem Fenster Ein Arbeitsbereich pro Fenster Mehrere Server auf dem Desktop
Quellcode Offen, und Ihrer zum Ändern Geschlossen Offener Kern
Telemetrie Kein Paket vorhanden Standardmäßig an Standardmäßig an, abschaltbar
Threads Ein Bereich neben dem Kanal Ein Bereich neben dem Kanal Ein Bereich neben dem Kanal
Erweitern Ein Manifest, dazu PHP wenn nötig Apps und eine offene API Plugins und eine offene API
Erster Schritt Docker Compose auf einem Host Registrieren Docker oder registrieren

Auf schmalen Bildschirmen behält die Tabelle alle vier Spalten und scrollt seitwärts, statt zwei davon wegzulassen.

Geschoben, nicht abgefragt

Nichts auf der Seite fragt jemals nach, ob etwas passiert ist. Nachrichten, Threads, Erwähnungen, Reaktionen, Lesebestätigungen, Tippen und Anwesenheit nehmen denselben Weg, in dem Moment, in dem sie ankommen.

  1. Die API schreibt

    Symfony

  2. PostgreSQL meldet es

    LISTEN / NOTIFY

  3. Ein Go-Server schiebt

    WebSocket

  4. Der Client hat es

    Web · iOS

Weg eins

Selbst betreiben

Docker Compose auf einem einzigen Host, erreichbar über einen Tunnel. Keine öffentliche IP und keine offenen Ports. Die Installation erzeugt die Schlüssel, führt die Migrationen aus, führt Sie durch den Admin-Assistenten und prüft das Ergebnis. Sicherungen kommen als ein datiertes Archiv heraus.

Läuft auf
PHP · Go · PostgreSQL
Preis
Keine Gebühr pro Person

Weg zwei

Oder uns überlassen

Tulpar Enterprise ist dieselbe Software mit der Arbeit dazu: Einrichtung auf Ihrer Infrastruktur, Umzug von dem, was Sie heute betreiben, Support mit einem Namen daran und die Integrationen, auf die sich Ihre Organisation schon stützt.

Enthalten
Umzug · Support
Dieselbe Software
Nichts zurückgehalten

Häufige Fragen

Die Fragen, die zuerst kommen

Was der Betrieb braucht, was das Haus verlässt und was noch nicht fertig ist.

Früher Zugang

Auf die Liste für den frühen Zugang

Tulpar öffnet in Wellen. Schreiben Sie uns, wo Sie es betreiben würden und was Sie heute benutzen, und wir melden uns vor der ersten.

Eine E-Mail, von einem Menschen geschrieben. Sie läuft nicht über einen Formulardienst von Dritten; wo sie landet, steht auf der Datenschutzseite.

Den Repository-Zugang öffnen wir für dieses Konto.

Worum geht es Ihnen