Why it exists
Most group chat is a service: somebody else runs the server, holds the data, and decides the rules and the future of the product. That is a reasonable trade until it is not one you want to make. Trycord is the other arrangement. The software is the product; the instance is whoever runs it. A community on Trycord is not a tenant of a platform, it is a group of people on a server that someone they know can afford to keep running and is free to leave.
The project runs one instance itself, and it is not a special one: the same software, the same rules, the same thing anyone else gets from the repository. Nothing in the product points at it, and nothing stops there being a hundred more.
That leads to concrete decisions rather than slogans. The default install uses a single database file and no external services. A feature that would phone home is a setting that is off by default. An instance can be closed to registration entirely, and the server, not the client, is what enforces it.
The vocabulary
Three words are used precisely throughout the product and this site:
- Community is a group of people with channels, roles and permissions.
- Instance is one running Trycord server, with its own data and its own rules.
- Client is the web app or the desktop shell, which are the same code.
How it is put together
The repository is a small number of deliberately separate parts:
| Part | What it is |
|---|---|
backend/ | The REST API, the WebSocket gateway, accounts, permissions, moderation, uploads and database access. |
frontend/ | The web client, also shipped inside the desktop app. |
trycord-desktop/ | The Electron shell around the client, with its own launch and update behaviour. |
public/ | This website and the legal pages. |
docs/ | Self-hosting, theming, the desktop app, and the architecture reference. |
One process serves the client, the API, the realtime gateway and this site on a single port. The database is a configuration profile, so moving from SQLite to MySQL is an environment change rather than a different build. Persistence and realtime are separated on purpose: the REST API is the source of truth, and the WebSocket gateway carries events over it.
One design system, from one library
The application and this website are built from the same generated design tokens, so the palette, type scale, spacing and motion are the product's rather than the marketing site's memory of it. Custom themes work by writing those same tokens, which means a theme cannot invent a value the interface does not already use. The brand faces are Manrope and JetBrains Mono.
How it is maintained
Trycord is developed continuously on main. There is no
long-term-support branch; security fixes land on the current codebase
and are included in later releases. Self-hosters are expected to keep
their servers updated, and the changelog and
roadmap record what has changed and what is
planned.
The project is open source under the MIT licence. The code, the issues and the releases are on GitHub.
Where the project stands
Trycord is actively developed. Some capabilities are finished and load-bearing; others are built but off by default; a few are names for work that has not happened. Voice and video have a room and signalling model behind a single provider and are off unless an operator turns them on. Push notifications to devices exist but are not dependable enough to promise, which is why in-app notifications are the reliable path today. Cross-instance federation is a setting and a shared vocabulary, not a working federation of separate servers.
Everything that is offered is labelled for what it is: the features page separates shipped work from what is still in progress, and the roadmap keeps the same line between built, planned and exploratory. If a page here overstates the product, that is a bug in the writing, and worth reporting.
Getting involved
The most useful things you can do are run an instance, report what breaks, and tell us when this site claims something the product does not do. Support explains where each kind of report belongs, and the community chat is on Discord.