Tulpar · In developmentIn development

Keep your team's conversations on your own servers.

Tulpar is team chat that installs on your organization's own infrastructure. Channels, threads, files and the full message history live in your database. There's no per-seat fee. The product is still in development, and we're opening early access in small waves.

01Why

Why should your internal conversations live on someone else's server?

Team chat is where a company does most of its talking. Client details, pricing, contract drafts, the occasional careless message with a password in it: it all passes through there. With cloud chat tools those conversations sit on the vendor's servers, and the bill grows with every person you add. We're building Tulpar to remove both problems.

  1. Your data stays with you

    Every message, thread and file is stored in PostgreSQL on your server. There's no analytics, telemetry or crash-reporting package in the client or the server.

  2. No per-seat fee

    Adding users doesn't add cost, and there's no seat count to report to anyone.

  3. One install, many workspaces

    A single installation carries every workspace your organization needs, and one client can connect to several independent servers.

02What's in it

The pieces you expect from team chat

Messaging

Channels, threads, direct messages

Public and private channels, group chats, direct messages, threads, reactions, custom emoji and file uploads.

Real time

Messages that land instantly

Messages, mentions, reactions, read receipts, typing indicators and presence all travel over the same connection, the moment they happen.

Clients

Web, desktop and mobile

A web client, a desktop app for macOS, Windows and Linux, and a Flutter mobile app for iOS and Android.

Plugins

Extend it without forking

A plugin ships with a manifest that states what it adds and what it's allowed to touch. Slash commands, UI extensions and custom profile fields are built this way.

Integrations

Webhooks and bot accounts

Webhooks to post into channels from other systems, bot accounts for automation. Search and a command palette are built in.

Language

English and Turkish interface

The entire interface is available in English and Turkish.

03Setup

One server, a handful of services

We designed Tulpar so it can be installed without heavy infrastructure.

  1. Step 1

    Docker Compose install

    The Symfony API, the Go WebSocket server, PostgreSQL and the web client come up together on a single machine with Docker Compose.

  2. Step 2

    A tunnel to reach it

    The server doesn't need a public IP address. Your team reaches it through a tunnel.

  3. Step 3

    Connect the clients

    People connect to your server from the web, desktop or mobile app. Other servers can be added to the same app.

  4. Step 4

    Enterprise setup

    For organizations that would rather hand off the installation, we deploy the same software on your infrastructure for you.

04Where it stands

What's ready and what isn't

Tulpar is in development and we're not hiding that. The features listed above work in today's client. Feedback from early access users is shaping what comes next.

  1. Not finished yet

    Push notifications and signed plugin packages aren't done. Push notifications are also the one thing missing on mobile.

  2. Early access

    We take organizations from the waitlist in waves.

  3. License

    The source is available under FSL 1.1. When you self-host, there's no per-seat fee.

05What we learned

Building a real-time system from scratch

Tulpar has a lot of moving parts. We designed every step between a message being sent and it appearing on someone else's screen. We bring that experience to client projects, especially ones that need live data or on-premise installs.

  1. Business logic apart from delivery

    Business rules live in a layered Symfony backend, while a WebSocket server we wrote in Go handles live delivery. The two talk through PostgreSQL.

  2. One API, different clients

    We wrote the mobile app in Flutter and the web client in Nuxt. This project taught us how to keep several clients moving together on the same API.

  3. Designed around the install

    Running on a single machine was a requirement from day one. For any software meant to run on-premise, we set that constraint first.

06FAQ

About Tulpar

Can I use Tulpar today?

Through early access, yes. Because it's still in development, we bring organizations in waves. Write to us and we'll add you to the next one.

Are our messages sent anywhere?

No. Messages, threads and files stay in the database on your server. There's no telemetry or analytics package in the client or the server.

What do I need to install it?

A single server that can run Docker Compose. No public IP is needed; access goes through a tunnel.

Can you do the installation for us?

Yes. With an enterprise setup we deploy the same software on your infrastructure. We discuss scope and terms in a call.

07Stay in the loop

Join the early access list

If you'd like to try Tulpar in your organization, or just hear when it's ready, write to us. A couple of lines about your team size and the kind of setup you have in mind is enough.

  1. Early access

    Use the contact form to join the next wave.

    Contact us
  2. Product site

    Screenshots and technical details are on tulpar.chat.

    tulpar.chat