1 00:00:00,000 --> 00:00:04,080 Welcome to the deep dive the place where we cut through complexity to give you the 2 00:00:04,080 --> 00:00:06,840 essential knowledge you need fast today 3 00:00:06,840 --> 00:00:11,120 We're doing exactly that we're opening up the hood of a really unique piece of 4 00:00:11,120 --> 00:00:12,180 software called now 5 00:00:12,180 --> 00:00:17,470 Now if you're thinking high-cost proprietary tools, well, this isn't it now is open 6 00:00:17,470 --> 00:00:17,980 source 7 00:00:17,980 --> 00:00:21,680 It's a powerful multi-room persistent chat server 8 00:00:21,680 --> 00:00:26,160 You can find right on github our mission today pretty simple give you a clear 9 00:00:26,160 --> 00:00:29,460 beginner friendly way into understanding what makes this platform special 10 00:00:29,460 --> 00:00:32,690 You know both for someone just using it and maybe for a developer looking for a 11 00:00:32,690 --> 00:00:33,260 cool project 12 00:00:33,260 --> 00:00:37,590 But before we really dive in we want to give a shout out to the supporter of this 13 00:00:37,590 --> 00:00:38,100 deep dive 14 00:00:38,100 --> 00:00:42,590 Thinking about hosting something like mal might seem like well a bit much safe 15 00:00:42,590 --> 00:00:45,760 server actually handles exactly this kind of innovative software hosting 16 00:00:45,760 --> 00:00:48,860 They support your digital transformation find out more at 17 00:00:48,860 --> 00:00:53,460 www.safeserver.de and that's a good starting point because we're not just looking 18 00:00:53,460 --> 00:00:55,200 at a simple messenger app here 19 00:00:55,200 --> 00:00:59,710 This is more like a whole communication ecosystem. It's open source. Yeah, but it 20 00:00:59,710 --> 00:01:01,800 offers features you'd usually expect from 21 00:01:01,800 --> 00:01:07,950 Enterprise software things like persistence ways to extend it rich media stuff that 22 00:01:07,950 --> 00:01:09,600 often costs a lot and licensing fees 23 00:01:09,600 --> 00:01:15,060 But here it's all community driven and you get total control over your own data 24 00:01:15,060 --> 00:01:19,250 Okay, let's start with the basics then for someone just looking for a better chat 25 00:01:19,250 --> 00:01:21,200 platform if meow is a chat server 26 00:01:21,280 --> 00:01:24,750 What are the ground rules? Well, fundamentally it's built for flexibility for 27 00:01:24,750 --> 00:01:26,200 communities. It's free to use 28 00:01:26,200 --> 00:01:30,520 Anyone can set up rooms public or private and it's really designed for long-term 29 00:01:30,520 --> 00:01:30,780 use 30 00:01:30,780 --> 00:01:35,300 But there's one really key security rule. You have to be logged into chat 31 00:01:35,300 --> 00:01:39,280 This isn't just some anonymous forum, right that immediately tackles a huge issue 32 00:01:39,280 --> 00:01:41,280 online impersonation accountability 33 00:01:41,280 --> 00:01:45,160 And to make sure identities are verified the sources say it uses oeth to 34 00:01:45,160 --> 00:01:46,060 authentication 35 00:01:46,660 --> 00:01:50,530 Okay, for those of us not living in the server room. What so apt to end like plain 36 00:01:50,530 --> 00:01:51,620 English. Oh, yeah 37 00:01:51,620 --> 00:01:56,040 It's basically the standard way systems delegate identity verification 38 00:01:56,040 --> 00:01:58,320 Think of it like a digital bouncer at a club 39 00:01:58,320 --> 00:02:03,480 Instead of meow itself handling your password. It asks a trusted service like github 40 00:02:03,480 --> 00:02:04,100 or google 41 00:02:04,100 --> 00:02:08,040 Hey, is this person really who they say they are? Hmm. So when you sign in it's 42 00:02:08,040 --> 00:02:10,240 verified and that identity gets linked to that 43 00:02:10,240 --> 00:02:13,260 Persistent history we need to talk about okay 44 00:02:13,260 --> 00:02:17,020 So verified identities that security layer lets us trust the chat history more 45 00:02:17,020 --> 00:02:22,260 Right, which brings us to maybe the core idea persistent and searchable history. 46 00:02:22,260 --> 00:02:22,520 Hmm 47 00:02:22,520 --> 00:02:27,590 Why should someone new to this care about chat being persistent versus you know, 48 00:02:27,590 --> 00:02:28,880 just disappearing? 49 00:02:28,880 --> 00:02:32,130 Oh, it's a huge difference think about standard messengers that knowledge those 50 00:02:32,130 --> 00:02:34,900 discussions poof gone off the screen lost forever 51 00:02:34,900 --> 00:02:39,450 You lose that collective memory meow treats every single conversation every link 52 00:02:39,450 --> 00:02:43,120 shared every decision made as a permanent searchable entry in a database 53 00:02:43,260 --> 00:02:47,810 So you can actually find stuff from months ago. Exactly information shared six 54 00:02:47,810 --> 00:02:51,340 months back is still there still accessible still useful today 55 00:02:51,340 --> 00:02:56,580 that's vital for any team or project that actually values retaining knowledge and 56 00:02:56,580 --> 00:02:59,460 importantly data sovereignty 57 00:02:59,460 --> 00:03:04,690 Knowing your history is yours. It's available not locked away behind some corporate 58 00:03:04,690 --> 00:03:06,500 paywall or subscription fee 59 00:03:06,500 --> 00:03:10,540 Okay, we've got trust. We've got longevity. That's the foundation. But what about 60 00:03:10,540 --> 00:03:10,940 the now? 61 00:03:11,100 --> 00:03:15,860 How does meow make the actual conversation experience better? Let's get into that 62 00:03:15,860 --> 00:03:19,100 feature set. What makes it more than just typing, right? 63 00:03:19,100 --> 00:03:21,620 This is where it really pulls away from basic chat apps 64 00:03:21,620 --> 00:03:25,920 It starts with things like rich markdown formatting good for making text clear 65 00:03:25,920 --> 00:03:30,260 But what really stands out is how it handles content. It doesn't just show links 66 00:03:30,260 --> 00:03:35,630 It like boxes them up nicely. It supports audio and video directly audio and video. 67 00:03:35,630 --> 00:03:36,420 How does it do that? 68 00:03:36,420 --> 00:03:39,260 That's thanks to WebRTC. We can maybe unpack that a bit later 69 00:03:39,260 --> 00:03:44,180 Okay, and crucially for some groups, it's brilliant at handling complex stuff like 70 00:03:44,180 --> 00:03:46,600 code snippets and tables right there in the chat window 71 00:03:46,600 --> 00:03:50,760 Oh, yeah, I've tried pasting code into normal chat. It's a disaster scrambled mess 72 00:03:50,760 --> 00:03:52,320 loss formatting. Exactly 73 00:03:52,320 --> 00:03:58,060 So having proper rendering is a lifesaver for say development teams makes sense 74 00:03:58,060 --> 00:04:01,180 And it's not all serious business either. You've got features like 75 00:04:01,180 --> 00:04:06,420 Starring messages voting on things highlighting important conversations even 76 00:04:06,420 --> 00:04:08,780 embedded games. Hold on embedded games 77 00:04:08,780 --> 00:04:13,860 Really? It's not a much for a serious chat server. I get the persistence and code 78 00:04:13,860 --> 00:04:15,220 stuff, but games 79 00:04:15,220 --> 00:04:20,000 Who's the audience for that mix? That's a fair question. Yeah, it does suggest the 80 00:04:20,000 --> 00:04:22,580 target isn't just you know, buttoned up corporate teams 81 00:04:22,580 --> 00:04:24,740 It might be more for open communities 82 00:04:24,740 --> 00:04:28,890 Maybe dev teams again or special interest groups where there's both intense work 83 00:04:28,890 --> 00:04:30,580 and a strong social side 84 00:04:30,580 --> 00:04:34,690 But the really clever part is how a lot of this stuff is delivered many features 85 00:04:34,690 --> 00:04:35,340 the games 86 00:04:35,340 --> 00:04:39,520 Yeah, but also things like persistent notifications those powerful github hooks for 87 00:04:39,520 --> 00:04:41,380 integrating with code repositories 88 00:04:41,380 --> 00:04:44,900 Let me guess plugins. You got it. They're implemented as plugins 89 00:04:44,900 --> 00:04:48,980 Ah, so the core system stays stable, but people can add whatever functionality they 90 00:04:48,980 --> 00:04:52,460 need precisely that plug-in architecture makes it 91 00:04:52,460 --> 00:04:56,980 Incredibly flexible and customizable those github hooks and bots for instance 92 00:04:56,980 --> 00:05:01,180 They let the chat server become a central hub for tracking development progress 93 00:05:01,180 --> 00:05:03,260 issues code changes 94 00:05:03,380 --> 00:05:08,730 That's serious enterprise level stuff delivered in an open way. Okay. Let's switch 95 00:05:08,730 --> 00:05:09,220 gears a bit 96 00:05:09,220 --> 00:05:12,560 Let's unpack this for the tech folks or people curious about how it works. We've 97 00:05:12,560 --> 00:05:14,800 got all these real-time persistent features 98 00:05:14,800 --> 00:05:18,030 What's actually running the show? What's the tech stack? All right, if you peek 99 00:05:18,030 --> 00:05:20,200 under the hood, it's overwhelmingly JavaScript 100 00:05:20,200 --> 00:05:22,480 The language stats are pretty clear. JavaScript is about 101 00:05:22,480 --> 00:05:25,700 75.7 percent then you've got 102 00:05:25,700 --> 00:05:30,390 SCSS for the styling that's around 16.9 percent. So if you know JavaScript you 103 00:05:30,390 --> 00:05:31,340 basically hold the keys 104 00:05:31,340 --> 00:05:34,720 Okay, let's slow down here though. This technical part can lose people. What's the 105 00:05:34,720 --> 00:05:37,340 absolute core starting with that real-time feel? 106 00:05:37,340 --> 00:05:40,300 Sure, the the core engine is built on Node.js 107 00:05:40,300 --> 00:05:44,240 That's the server-side JavaScript environment handling all the backend logic and to 108 00:05:44,240 --> 00:05:45,660 make the chat instantaneous 109 00:05:45,660 --> 00:05:48,700 Which it absolutely has to be it uses socket.io socket.io 110 00:05:48,700 --> 00:05:49,300 Okay 111 00:05:49,300 --> 00:05:53,400 Yeah, think of socket.io is setting up this like permanent fast lane between the 112 00:05:53,400 --> 00:05:57,180 server and everyone connected it pushes updates out instantly 113 00:05:57,180 --> 00:06:00,930 No need to keep refreshing your browser right handles the speed but persistence you 114 00:06:00,930 --> 00:06:02,260 said history lives forever 115 00:06:02,260 --> 00:06:07,100 Where is that digital archive stored? Good question that involves two main players 116 00:06:07,100 --> 00:06:08,940 the main permanent storage 117 00:06:08,940 --> 00:06:14,120 The heavy-duty database holding all the chat history user settings room data. That's 118 00:06:14,120 --> 00:06:15,620 Postgres goal Postgres 119 00:06:15,620 --> 00:06:21,070 Reliable choice very known for being robust, but Redis is mentioned too for someone 120 00:06:21,070 --> 00:06:21,700 new to this 121 00:06:21,700 --> 00:06:26,000 Why have both Postgres and Redis? What's the difference? Ah, yeah, that's a key 122 00:06:26,000 --> 00:06:26,740 architectural point 123 00:06:26,740 --> 00:06:30,970 Yeah, Postgres will is the long-term archive Redis is all about speed Redis keeps 124 00:06:30,970 --> 00:06:33,420 certain things like maybe who's currently online or 125 00:06:33,420 --> 00:06:38,040 Temporary session information and really fast memory not on the slower disk drive 126 00:06:38,040 --> 00:06:40,620 like Postgres. So it acts as a high-speed cache 127 00:06:40,620 --> 00:06:45,050 The server can grab common info super fast from Redis without having to query the 128 00:06:45,050 --> 00:06:47,260 big Postgres database every single time 129 00:06:47,260 --> 00:06:50,660 Okay, that makes sense speed layer on top of the permanent store 130 00:06:50,660 --> 00:06:54,860 Yeah, and just circling back quickly security and multimedia 131 00:06:54,860 --> 00:07:00,750 We mentioned OAuth 2 is passport.js the tool doing that. Yes, exactly passport.js 132 00:07:00,750 --> 00:07:01,020 is a 133 00:07:01,020 --> 00:07:04,500 Very common trusted piece of middleware for Node.js 134 00:07:04,500 --> 00:07:08,990 It handles that verified sign-in process securely and the video audio right the 135 00:07:08,990 --> 00:07:12,460 last key tech piece there is web RTC web real-time communication 136 00:07:12,460 --> 00:07:17,590 That's the browser technology that lets you set up secure direct connections peer-to-peer 137 00:07:17,590 --> 00:07:19,860 for live audio and video streams 138 00:07:20,420 --> 00:07:24,850 Essential for calls Wow. Okay. So that's a pretty modern and powerful stack gives a 139 00:07:24,850 --> 00:07:27,880 clear roadmap for any developer wanting to maybe contribute 140 00:07:27,880 --> 00:07:32,170 Mm-hmm, which brings us neatly to contributing section for the open source 141 00:07:32,170 --> 00:07:34,080 ecosystem looking at the github repo 142 00:07:34,080 --> 00:07:39,340 It's got what 549 stars 73 forks 22 contributors that feels pretty healthy active. 143 00:07:39,340 --> 00:07:41,900 It's definitely a respectable level of community engagement 144 00:07:41,900 --> 00:07:45,590 Yeah, and getting involved seems fairly straightforward partly because it's mostly 145 00:07:45,590 --> 00:07:48,780 under the MIT license. This means generally it's very permissive 146 00:07:48,860 --> 00:07:52,720 It gives contributors a lot of freedom with what they build and how it can be used 147 00:07:52,720 --> 00:07:55,680 low barrier to entry legally speaking and 148 00:07:55,680 --> 00:08:00,670 For anyone actually thinking about contributing code the developers have laid out 149 00:08:00,670 --> 00:08:01,520 some clear rules 150 00:08:01,520 --> 00:08:06,330 Sort of a how-to guide for contributing responsibly. Okay. What are the must-do 151 00:08:06,330 --> 00:08:08,640 rules if someone wants to submit say a 152 00:08:08,640 --> 00:08:11,840 poll request with a new feature rule number one is basically 153 00:08:11,840 --> 00:08:16,960 Talk first you must go discuss what you plan to do with the team beforehand 154 00:08:17,320 --> 00:08:22,050 They even give active hours like 8 a.m. To 7 p.m. GMT when you can usually find 155 00:08:22,050 --> 00:08:23,240 them in the chat rooms 156 00:08:23,240 --> 00:08:28,210 This avoids people coding something that won't fit or is already being done smart 157 00:08:28,210 --> 00:08:31,020 avoids wasted effort. What's rule two quality control? 158 00:08:31,020 --> 00:08:35,180 You must test your own code thoroughly and run the project's automated test suite 159 00:08:35,180 --> 00:08:36,980 before you even think about submitting it 160 00:08:36,980 --> 00:08:40,860 Discuss first test always makes total sense for something needs to be reliable 161 00:08:40,860 --> 00:08:45,120 Exactly, and remember the plugins we talked about yeah the extensibility, right? 162 00:08:45,120 --> 00:08:49,050 The contribution guidelines even point out. There's a specific channel just for 163 00:08:49,050 --> 00:08:50,040 developing plugins 164 00:08:50,040 --> 00:08:52,040 So if you want to add a significant new capability 165 00:08:52,040 --> 00:08:56,000 Chances are they'll want you to build it as a plug-in. That's actually a great 166 00:08:56,000 --> 00:08:57,520 maybe safer 167 00:08:57,520 --> 00:09:03,880 Way for newer job script is to get involved without potentially breaking the main 168 00:09:03,880 --> 00:09:04,080 platform 169 00:09:04,080 --> 00:09:08,360 Good entry point and if coding isn't your thing right now, but you just want to try 170 00:09:08,360 --> 00:09:08,680 me out 171 00:09:08,680 --> 00:09:12,720 The installation docs are available so you can set up your own server for your own 172 00:09:12,720 --> 00:09:14,920 team or community and get the full experience 173 00:09:15,320 --> 00:09:19,060 Okay, so let's try and wrap this up summing up our deep dive meow isn't just 174 00:09:19,060 --> 00:09:21,040 another chat app. It's way more 175 00:09:21,040 --> 00:09:25,910 It's persistent. It handles rich media. Well, it's built on a solid tech stack like 176 00:09:25,910 --> 00:09:27,160 node Postgres Redis 177 00:09:27,160 --> 00:09:31,470 And that plug-in system makes it super customizable puts control back with the 178 00:09:31,470 --> 00:09:31,880 users 179 00:09:31,880 --> 00:09:36,940 It really is a comprehensive hub designed for you to own your communication data 180 00:09:36,940 --> 00:09:40,820 Which actually leads to a final thought maybe a provocative question for you the 181 00:09:40,820 --> 00:09:41,380 listener 182 00:09:42,120 --> 00:09:45,640 Considering everything we've touched on the sheer range of features from dedicated 183 00:09:45,640 --> 00:09:49,000 web RTC video calls and deep github integration for devs 184 00:09:49,000 --> 00:09:51,840 All the way down to embedded games and voting systems 185 00:09:51,840 --> 00:09:57,000 What kind of really unique maybe complex community or perhaps some non traditional 186 00:09:57,000 --> 00:09:57,640 organization? 187 00:09:57,640 --> 00:10:03,080 Could genuinely leverage every single aspect of a platform as feature-rich as meow 188 00:10:03,080 --> 00:10:07,750 something to think about a great question to ponder as you explore the sources 189 00:10:07,750 --> 00:10:08,520 yourself and 190 00:10:08,600 --> 00:10:12,280 thanks again to safe server for supporting this deep dive if you're looking for 191 00:10:12,280 --> 00:10:15,840 powerful reliable hosting for software like this or need support with 192 00:10:15,840 --> 00:10:17,840 Your digital transformation check them out at 193 00:10:17,840 --> 00:10:20,120 www.safeserver.de 194 00:10:20,120 --> 00:10:23,960 That's all for this deep dive. Keep learning. Keep digging until next time