A place to talk that belongs to you.

Gryt is voice, video and text chat. Download the app and you can make your own server right from it. Your chats stay on your machine, and nobody has to hand over an email, a phone number or a photo of their face to join.

No sign-up

No email, no phone number, and no photo of your face.

Most chat apps want enough about you to know who you are, and then you just have to hope they look after it. Gryt doesn't ask. Your device makes an identity and your device keeps it.

It's twenty-four words. Put them in your password manager like any other password, and paste them back in on your next machine. How that works. None of it comes to us. No ads, nothing tracking you. What we hold.

You can make an account too. But it's not the more private choice — a guest identity never touches anything of ours, and signing in means trusting our login service. What you get for it is one name on every server, a way back in if you lose your device, and a ban that sticks. You can do it later without losing the servers you've joined, and a server tells you whether it takes guests before you try.

Grytgryt.chatRecovery phraseCopy24 words. Paste it on the next machine.

It's a real password field, so your password manager offers to fill it like any other.

Avatars

Everybody gets an owl. Here's yours.

Expression

19 drawn
sivert
The same designer in the app, doing the bits this page can't. The owls you've worn before, Surprise me, and a message at the end so you can see the new owl actually turn up.

Or use a picture you already have.

A GIF stays a GIF, and so does an animated WebP. It keeps moving instead of getting flattened to the first frame, and it plays in the member list and next to every message you send. You don't have to pay for that. Up to 25 MB, cropped square, stored at 256 pixels. Server icons work the same way. More on profiles.

Emoji

Bring the emoji you already have.

Paste a link into server settings and Gryt grabs what's behind it. One emoji, a whole pack, or somebody’s entire profile from emoji.gg or BetterTTV. You don’t have to tell it which one it is.

You see the whole list before anything happens. Rename what you want, untick what you don’t, and only the rest come in. They all end up 128 pixels tall, and the animated ones are stored as WebP. Emoji in the docs.

A whole pack from emoji.gg, from one link. You get to see the list first, and then they're in the picker.

Voice and sharing

It sounds good, and it keeps up.

Full-quality audio, a noise filter that runs on your own machine, and screen sharing fast enough to actually watch someone play. There's no better version you could be paying for. Whoever runs the server sets the limits, and they can turn them up.

General42 ms
  • sivert
  • kaspersharing
  • nora
  • tobiasmuted
  • idadeafened

Built from the same parts as the app. The voices are on a timer. Nobody's really talking.

The voice server
Ours. We wrote it from scratch in Go instead of renting one
Sound
Opus at 48 kHz, in stereo, and it copes with dropped packets
Quality
Nothing gets re-encoded on the way, so nothing gets lost
Noise
RNNoise cleans up your mic, on your machine, not on a server
If the server restarts
You keep talking. Voice is its own connection to its own service, and when the server comes back it just asks who is still in the room
eSports mode
128 kbps, Opus in 10 ms frames, push-to-talk on, every filter off
Network
One UDP port to open, not a range. 3478, unless you change it

Share your screen at up to 120 frames a second.

Enough that a game still looks like the game. 30, 60, 90 and 120 are the normal settings. 144, 165 and 240 are there if you want to push it, up to 4K. Anything over 60 needs the Windows app, because it grabs the screen itself instead of going through the browser.

What everyone watching sees. Your screen is the main thing, and the people in the call sit in a strip above it.

Send the whole file.

The size limit is whatever the person running the server picks. There's no tier that raises it, because there are no tiers. It starts at 100 MB so nobody fills a disk by accident, and the next limit after that belongs to the storage, not to us. What a server decides.

the limitset by whoeverruns the server100 MBships here5 TBthe disk’s

Past the 100 MB default, the next limit is the storage's own. On S3 that's 5 TB a file.

Themes

Nineteen themes, and a generator for the rest.

Twelve are ours. Seven are ports of themes you've probably seen somewhere else. A theme sets the colours and the corner radius, so picking one changes the shape of the app as well as the colour.

The panel next to this is built from the same parts as the app, and each theme goes on it the same way. Press an arrow and the rest of this page comes with it — that's the same set of variables, on the whole site instead of one box.

If none of them fits, build one at ui.gryt.chat and paste the link it gives you into Appearance. Text size, interface scale and emoji size are their own settings: 10 to 24 pixels, 50 to 200 per cent, and 12 to 96 pixels.

On your network

Nobody types an address.

Start a server on your machine and everyone else on the network just sees it appear in their list. No address to read out, no invite link to send round. It's mDNS, the same thing that finds your printer.

The desktop app is the one doing the looking, so a browser tab won't find anything this way. The server has a switch for it and it's on by default. Hosting from the app.

On your network3 found
  • Gryta Krutt192.168.1.24:5000
  • The Basement192.168.1.31:5000
  • Studio192.168.1.8:5000

The pane from the app, built here from the same parts. Nobody on this page is on your network. These four are made up.

Addons

Themes, and a small plugin API.

An addon is a folder with an addon.json in it. A theme addon adds CSS. A plugin addon adds a module, and that module can talk to exactly one thing: an object on window with a version, the theme you're on, and an event for when you change it.

And that's all of it. No sandbox, no registry, no marketplace, and the plugin system is still on the roadmap. It's enough to restyle the client. It isn't enough to build a product on. More on the developer page.

Your folderaddon.jsonstyles[]a thememaina pluginThe clientwindow.grytversionthemethemeChange

A theme's CSS goes in like any other stylesheet. A plugin's module gets one object, with three things on it.

Motivation

One senior engineer, four years, and a voice stack written from scratch.

I started Gryt in May 2022. I wanted somewhere for my friends to talk that I wasn't renting from anybody, and the chat apps we were using kept asking for a bit more of us every year.

Roughly two of those four years went into WebRTC before the media server was written at all. I asked every developer at my workplace how ICE negotiation and DTLS-SRTP actually work, and not one of them could tell me. So it was me, the RFCs and a lot of trial and error. The voice server is written in Go on Pion rather than an off-the-shelf SDK, because when something breaks in a call I want to be able to trace it down to an individual packet.

It's still one person. The app, the server, the voice stack, the identity system, the component library, the mobile app, the docs and this page. That's either the best or the worst thing about Gryt depending on what you need from it, and you should know that before you put a community on it.

years, since May 2022
0+years, since May 2022
of them spent on WebRTC before writing the media server
0of them spent on WebRTC before writing the media server
repositories, all public
0repositories, all public
person
0person

Self-hosting

Put it on a machine that stays on.

Hosting from the app is fine for an evening with friends. But if you want it still running after you shut your laptop, put it on something that stays on. Pick whichever of these sounds like you.

The whole thing, uncut. Name it, keep the port it picked, press create, say something, and there it is on the network for everyone else. It stops when you close the app. That's what the four below are for.

Download

Download Gryt.

The desktop app is the one that hosts servers, and the one where push-to-talk still works when the window isn't in front. The browser gets you into a call in about ten seconds and needs nothing installed.

Finding the latest release…

No download required. Works in Chrome, Firefox, Edge, and Safari. Some features like global push-to-talk are desktop-only.

Sponsors

Gryt is free, and it isn't asking you for money.

There's nothing to buy in it and nothing behind a subscription. You can chip in if you want to. It pays for a domain, the box the auth stack runs on, and the Apple and Windows signing certificates. None of this depends on it.

Sponsor GrytNames go up from $25 a month and logos from $100, and one-off payments are just as welcome. The tiers are written out on the sponsors page, along with everybody who has.