Today's Deep-Dive: Miaou
Ep. 294

Today's Deep-Dive: Miaou

Episode description

Miaou is an open-source, multi-room persistent chat server designed for flexibility and community use, offering features typically found in enterprise software. It prioritizes security through OAuth 2 authentication, ensuring verified identities and preventing impersonation. Unlike standard messengers, Miaou provides a persistent and searchable chat history, treating every conversation as a permanent, accessible record vital for knowledge retention and data sovereignty. The platform enhances the conversation experience with rich markdown formatting, direct support for audio and video via WebRTC, and excellent handling of code snippets and tables. Its extensibility is a key feature, with functionalities like persistent notifications, GitHub hooks, and even embedded games delivered through a plugin architecture, allowing for significant customization. The tech stack is primarily JavaScript, running on Node.js with socket.io for real-time communication, utilizing PostgreSQL for long-term data storage and Redis as a high-speed cache. Passport.js handles secure authentication, and WebRTC enables peer-to-peer audio and video streams. The project has a healthy, active open-source community with a permissive MIT license, encouraging contributions through clear guidelines that emphasize discussing ideas first and thorough testing. Miaou aims to be a comprehensive hub where users own their communication data, making it a powerful tool for various communities and organizations seeking control and rich functionality in their communication platforms.

Gain digital sovereignty now and save costs

Let’s have a look at your digital challenges together. What tools are you currently using? Are your processes optimal? How is the state of backups and security updates?

Digital Souvereignty is easily achived with Open Source software (which usually cost way less, too). Our division Safeserver offers hosting, operation and maintenance for countless Free and Open Source tools.

Try it now!

Download transcript (.srt)
0:00

Welcome to the deep dive the place where we cut through complexity to give you the

0:04

essential knowledge you need fast today

0:06

We're doing exactly that we're opening up the hood of a really unique piece of

0:11

software called now

0:12

Now if you're thinking high-cost proprietary tools, well, this isn't it now is open

0:17

source

0:17

It's a powerful multi-room persistent chat server

0:21

You can find right on github our mission today pretty simple give you a clear

0:26

beginner friendly way into understanding what makes this platform special

0:29

You know both for someone just using it and maybe for a developer looking for a

0:32

cool project

0:33

But before we really dive in we want to give a shout out to the supporter of this

0:37

deep dive

0:38

Thinking about hosting something like mal might seem like well a bit much safe

0:42

server actually handles exactly this kind of innovative software hosting

0:45

They support your digital transformation find out more at

0:48

www.safeserver.de and that's a good starting point because we're not just looking

0:53

at a simple messenger app here

0:55

This is more like a whole communication ecosystem. It's open source. Yeah, but it

0:59

offers features you'd usually expect from

1:01

Enterprise software things like persistence ways to extend it rich media stuff that

1:07

often costs a lot and licensing fees

1:09

But here it's all community driven and you get total control over your own data

1:15

Okay, let's start with the basics then for someone just looking for a better chat

1:19

platform if meow is a chat server

1:21

What are the ground rules? Well, fundamentally it's built for flexibility for

1:24

communities. It's free to use

1:26

Anyone can set up rooms public or private and it's really designed for long-term

1:30

use

1:30

But there's one really key security rule. You have to be logged into chat

1:35

This isn't just some anonymous forum, right that immediately tackles a huge issue

1:39

online impersonation accountability

1:41

And to make sure identities are verified the sources say it uses oeth to

1:45

authentication

1:46

Okay, for those of us not living in the server room. What so apt to end like plain

1:50

English. Oh, yeah

1:51

It's basically the standard way systems delegate identity verification

1:56

Think of it like a digital bouncer at a club

1:58

Instead of meow itself handling your password. It asks a trusted service like github

2:03

or google

2:04

Hey, is this person really who they say they are? Hmm. So when you sign in it's

2:08

verified and that identity gets linked to that

2:10

Persistent history we need to talk about okay

2:13

So verified identities that security layer lets us trust the chat history more

2:17

Right, which brings us to maybe the core idea persistent and searchable history.

2:22

Hmm

2:22

Why should someone new to this care about chat being persistent versus you know,

2:27

just disappearing?

2:28

Oh, it's a huge difference think about standard messengers that knowledge those

2:32

discussions poof gone off the screen lost forever

2:34

You lose that collective memory meow treats every single conversation every link

2:39

shared every decision made as a permanent searchable entry in a database

2:43

So you can actually find stuff from months ago. Exactly information shared six

2:47

months back is still there still accessible still useful today

2:51

that's vital for any team or project that actually values retaining knowledge and

2:56

importantly data sovereignty

2:59

Knowing your history is yours. It's available not locked away behind some corporate

3:04

paywall or subscription fee

3:06

Okay, we've got trust. We've got longevity. That's the foundation. But what about

3:10

the now?

3:11

How does meow make the actual conversation experience better? Let's get into that

3:15

feature set. What makes it more than just typing, right?

3:19

This is where it really pulls away from basic chat apps

3:21

It starts with things like rich markdown formatting good for making text clear

3:25

But what really stands out is how it handles content. It doesn't just show links

3:30

It like boxes them up nicely. It supports audio and video directly audio and video.

3:35

How does it do that?

3:36

That's thanks to WebRTC. We can maybe unpack that a bit later

3:39

Okay, and crucially for some groups, it's brilliant at handling complex stuff like

3:44

code snippets and tables right there in the chat window

3:46

Oh, yeah, I've tried pasting code into normal chat. It's a disaster scrambled mess

3:50

loss formatting. Exactly

3:52

So having proper rendering is a lifesaver for say development teams makes sense

3:58

And it's not all serious business either. You've got features like

4:01

Starring messages voting on things highlighting important conversations even

4:06

embedded games. Hold on embedded games

4:08

Really? It's not a much for a serious chat server. I get the persistence and code

4:13

stuff, but games

4:15

Who's the audience for that mix? That's a fair question. Yeah, it does suggest the

4:20

target isn't just you know, buttoned up corporate teams

4:22

It might be more for open communities

4:24

Maybe dev teams again or special interest groups where there's both intense work

4:28

and a strong social side

4:30

But the really clever part is how a lot of this stuff is delivered many features

4:34

the games

4:35

Yeah, but also things like persistent notifications those powerful github hooks for

4:39

integrating with code repositories

4:41

Let me guess plugins. You got it. They're implemented as plugins

4:44

Ah, so the core system stays stable, but people can add whatever functionality they

4:48

need precisely that plug-in architecture makes it

4:52

Incredibly flexible and customizable those github hooks and bots for instance

4:56

They let the chat server become a central hub for tracking development progress

5:01

issues code changes

5:03

That's serious enterprise level stuff delivered in an open way. Okay. Let's switch

5:08

gears a bit

5:09

Let's unpack this for the tech folks or people curious about how it works. We've

5:12

got all these real-time persistent features

5:14

What's actually running the show? What's the tech stack? All right, if you peek

5:18

under the hood, it's overwhelmingly JavaScript

5:20

The language stats are pretty clear. JavaScript is about

5:22

75.7 percent then you've got

5:25

SCSS for the styling that's around 16.9 percent. So if you know JavaScript you

5:30

basically hold the keys

5:31

Okay, let's slow down here though. This technical part can lose people. What's the

5:34

absolute core starting with that real-time feel?

5:37

Sure, the the core engine is built on Node.js

5:40

That's the server-side JavaScript environment handling all the backend logic and to

5:44

make the chat instantaneous

5:45

Which it absolutely has to be it uses socket.io socket.io

5:48

Okay

5:49

Yeah, think of socket.io is setting up this like permanent fast lane between the

5:53

server and everyone connected it pushes updates out instantly

5:57

No need to keep refreshing your browser right handles the speed but persistence you

6:00

said history lives forever

6:02

Where is that digital archive stored? Good question that involves two main players

6:07

the main permanent storage

6:08

The heavy-duty database holding all the chat history user settings room data. That's

6:14

Postgres goal Postgres

6:15

Reliable choice very known for being robust, but Redis is mentioned too for someone

6:21

new to this

6:21

Why have both Postgres and Redis? What's the difference? Ah, yeah, that's a key

6:26

architectural point

6:26

Yeah, Postgres will is the long-term archive Redis is all about speed Redis keeps

6:30

certain things like maybe who's currently online or

6:33

Temporary session information and really fast memory not on the slower disk drive

6:38

like Postgres. So it acts as a high-speed cache

6:40

The server can grab common info super fast from Redis without having to query the

6:45

big Postgres database every single time

6:47

Okay, that makes sense speed layer on top of the permanent store

6:50

Yeah, and just circling back quickly security and multimedia

6:54

We mentioned OAuth 2 is passport.js the tool doing that. Yes, exactly passport.js

7:00

is a

7:01

Very common trusted piece of middleware for Node.js

7:04

It handles that verified sign-in process securely and the video audio right the

7:08

last key tech piece there is web RTC web real-time communication

7:12

That's the browser technology that lets you set up secure direct connections peer-to-peer

7:17

for live audio and video streams

7:20

Essential for calls Wow. Okay. So that's a pretty modern and powerful stack gives a

7:24

clear roadmap for any developer wanting to maybe contribute

7:27

Mm-hmm, which brings us neatly to contributing section for the open source

7:32

ecosystem looking at the github repo

7:34

It's got what 549 stars 73 forks 22 contributors that feels pretty healthy active.

7:39

It's definitely a respectable level of community engagement

7:41

Yeah, and getting involved seems fairly straightforward partly because it's mostly

7:45

under the MIT license. This means generally it's very permissive

7:48

It gives contributors a lot of freedom with what they build and how it can be used

7:52

low barrier to entry legally speaking and

7:55

For anyone actually thinking about contributing code the developers have laid out

8:00

some clear rules

8:01

Sort of a how-to guide for contributing responsibly. Okay. What are the must-do

8:06

rules if someone wants to submit say a

8:08

poll request with a new feature rule number one is basically

8:11

Talk first you must go discuss what you plan to do with the team beforehand

8:17

They even give active hours like 8 a.m. To 7 p.m. GMT when you can usually find

8:22

them in the chat rooms

8:23

This avoids people coding something that won't fit or is already being done smart

8:28

avoids wasted effort. What's rule two quality control?

8:31

You must test your own code thoroughly and run the project's automated test suite

8:35

before you even think about submitting it

8:36

Discuss first test always makes total sense for something needs to be reliable

8:40

Exactly, and remember the plugins we talked about yeah the extensibility, right?

8:45

The contribution guidelines even point out. There's a specific channel just for

8:49

developing plugins

8:50

So if you want to add a significant new capability

8:52

Chances are they'll want you to build it as a plug-in. That's actually a great

8:56

maybe safer

8:57

Way for newer job script is to get involved without potentially breaking the main

9:03

platform

9:04

Good entry point and if coding isn't your thing right now, but you just want to try

9:08

me out

9:08

The installation docs are available so you can set up your own server for your own

9:12

team or community and get the full experience

9:15

Okay, so let's try and wrap this up summing up our deep dive meow isn't just

9:19

another chat app. It's way more

9:21

It's persistent. It handles rich media. Well, it's built on a solid tech stack like

9:25

node Postgres Redis

9:27

And that plug-in system makes it super customizable puts control back with the

9:31

users

9:31

It really is a comprehensive hub designed for you to own your communication data

9:36

Which actually leads to a final thought maybe a provocative question for you the

9:40

listener

9:42

Considering everything we've touched on the sheer range of features from dedicated

9:45

web RTC video calls and deep github integration for devs

9:49

All the way down to embedded games and voting systems

9:51

What kind of really unique maybe complex community or perhaps some non traditional

9:57

organization?

9:57

Could genuinely leverage every single aspect of a platform as feature-rich as meow

10:03

something to think about a great question to ponder as you explore the sources

10:07

yourself and

10:08

thanks again to safe server for supporting this deep dive if you're looking for

10:12

powerful reliable hosting for software like this or need support with

10:15

Your digital transformation check them out at

10:17

That's all for this deep dive. Keep learning. Keep digging until next time

10:17

That's all for this deep dive. Keep learning. Keep digging until next time