Channels, threads, direct messages
Public and private channels, group chats, direct messages, threads, reactions, custom emoji and file uploads.
Tulpar · In developmentIn development
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.
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.
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.
Adding users doesn't add cost, and there's no seat count to report to anyone.
A single installation carries every workspace your organization needs, and one client can connect to several independent servers.
Public and private channels, group chats, direct messages, threads, reactions, custom emoji and file uploads.
Messages, mentions, reactions, read receipts, typing indicators and presence all travel over the same connection, the moment they happen.
A web client, a desktop app for macOS, Windows and Linux, and a Flutter mobile app for iOS and Android.
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.
Webhooks to post into channels from other systems, bot accounts for automation. Search and a command palette are built in.
The entire interface is available in English and Turkish.
We designed Tulpar so it can be installed without heavy infrastructure.
The Symfony API, the Go WebSocket server, PostgreSQL and the web client come up together on a single machine with Docker Compose.
The server doesn't need a public IP address. Your team reaches it through a tunnel.
People connect to your server from the web, desktop or mobile app. Other servers can be added to the same app.
For organizations that would rather hand off the installation, we deploy the same software on your infrastructure for you.
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.
Push notifications and signed plugin packages aren't done. Push notifications are also the one thing missing on mobile.
We take organizations from the waitlist in waves.
The source is available under FSL 1.1. When you self-host, there's no per-seat fee.
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.
Business rules live in a layered Symfony backend, while a WebSocket server we wrote in Go handles live delivery. The two talk through PostgreSQL.
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.
Running on a single machine was a requirement from day one. For any software meant to run on-premise, we set that constraint first.
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.
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.
A single server that can run Docker Compose. No public IP is needed; access goes through a tunnel.
Yes. With an enterprise setup we deploy the same software on your infrastructure. We discuss scope and terms in a call.
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.