1 00:00:00,000 --> 00:00:03,440 Before we jump into the hidden infrastructure of our digital world, 2 00:00:03,440 --> 00:00:05,480 we want to thank the supporter of this deep dive. 3 00:00:05,480 --> 00:00:08,640 SafeServer takes care of the hosting of this software 4 00:00:08,640 --> 00:00:11,240 and supports you in your digital transformation. 5 00:00:11,240 --> 00:00:14,560 More information at www.safeserver.de 6 00:00:14,560 --> 00:00:16,800 OK, so let's try to unpack this. 7 00:00:16,800 --> 00:00:21,000 We are diving deep into what is really the engine room of digital life. 8 00:00:21,000 --> 00:00:23,600 It's a place you probably never see, but you rely on it every single day. 9 00:00:23,600 --> 00:00:27,040 We're talking about the the foundational internet protocols 10 00:00:27,040 --> 00:00:29,560 that let your calendar, your contacts, all your files 11 00:00:29,840 --> 00:00:32,080 sync seamlessly across everything, 12 00:00:32,080 --> 00:00:34,440 you know, your phone, your desktop, the cloud, all of it. 13 00:00:34,440 --> 00:00:37,040 And these protocols are often called the DAV standards, 14 00:00:37,040 --> 00:00:39,520 and they're just they're so critical for digital collaboration. 15 00:00:39,520 --> 00:00:44,440 So our deep dive today is focused on this super popular open source tool 16 00:00:44,440 --> 00:00:45,280 that developers use. 17 00:00:45,280 --> 00:00:47,920 It's a powerful PHP framework called Sabredive. 18 00:00:47,920 --> 00:00:50,160 The source material we have, I mean, it's pretty technical. 19 00:00:50,160 --> 00:00:52,240 It's documentation, GitHub repositories. 20 00:00:52,240 --> 00:00:53,680 But our mission here is really simple. 21 00:00:53,680 --> 00:00:55,120 We want to make this accessible. 22 00:00:55,120 --> 00:00:57,080 We're going to break down what web devy called devy 23 00:00:57,080 --> 00:01:00,000 and car devy actually are, and maybe more importantly, 24 00:01:00,000 --> 00:01:03,560 why this specific framework is such a trusted solution for it all. 25 00:01:03,560 --> 00:01:04,920 That's the core of it, isn't it? 26 00:01:04,920 --> 00:01:08,400 I mean, for a lot of people, you know, your phone's calendar works, 27 00:01:08,400 --> 00:01:10,040 but you don't know why. 28 00:01:10,040 --> 00:01:14,040 There's this incredibly complex, structured conversation happening 29 00:01:14,040 --> 00:01:17,480 in the background to make sure that meeting invite shows up everywhere at once. 30 00:01:17,480 --> 00:01:21,800 And Sabredive is like the architect for that whole conversation. 31 00:01:21,800 --> 00:01:23,560 OK, so let's start right at the beginning. 32 00:01:23,560 --> 00:01:27,200 Then if we want to understand what people are building with this framework, 33 00:01:27,200 --> 00:01:30,440 we need to define those three little acronyms first. 34 00:01:30,440 --> 00:01:33,760 So what are the DAV standards? Right. 35 00:01:33,760 --> 00:01:36,520 So it all starts with the foundation, which is WebDAV. 36 00:01:36,520 --> 00:01:40,200 WebDAV stands for Web Distributed Authoring and Versioning. 37 00:01:40,200 --> 00:01:43,600 And you should just think of it as, well, it takes the normal web, 38 00:01:43,600 --> 00:01:46,720 which is for reading things like a website. Exactly. 39 00:01:46,720 --> 00:01:48,760 And it flips it so you can also write to it. 40 00:01:48,760 --> 00:01:51,240 You can manage files, move them around, even lock them. 41 00:01:51,520 --> 00:01:55,400 It essentially turns a web server into a shared network drive. 42 00:01:55,400 --> 00:01:56,360 That makes perfect sense. 43 00:01:56,360 --> 00:01:59,160 It's like a shared folder you can get to from anywhere using a web address. 44 00:01:59,160 --> 00:02:02,680 It just standardizes how you manage files remotely. Precisely. 45 00:02:02,680 --> 00:02:05,800 And once you have that standard for files and folders, 46 00:02:05,800 --> 00:02:09,200 you can build more specialized things right on top of it. 47 00:02:09,200 --> 00:02:11,360 And that's where call DAV and Cardiva come in. 48 00:02:11,360 --> 00:02:14,040 These are for managing structured data, you know, 49 00:02:14,040 --> 00:02:16,560 data that needs rules to be understood. 50 00:02:16,560 --> 00:02:18,480 OK, so let's start with CalDAV. 51 00:02:18,480 --> 00:02:21,480 I think everyone knows the headache of trying to schedule meetings 52 00:02:21,480 --> 00:02:23,320 with people on different systems. 53 00:02:23,320 --> 00:02:24,840 How does CalDAV help with that? 54 00:02:24,840 --> 00:02:26,840 CalDAV is all about calendar management. 55 00:02:26,840 --> 00:02:31,080 It provides the rules for sharing calendars, for updating events, 56 00:02:31,080 --> 00:02:36,480 for recurring appointments, and most importantly, for scheduling and invitations. 57 00:02:36,480 --> 00:02:40,120 It uses a specific data format called iCalendar. 58 00:02:40,120 --> 00:02:42,280 Oh, yeah, the .ic files. That's the one. 59 00:02:42,280 --> 00:02:44,480 It's the universal language for event data. 60 00:02:44,480 --> 00:02:48,760 So by using CalDAV, platforms like Google Calendar, Outlook, your phone, 61 00:02:48,760 --> 00:02:51,840 they can all speak the same language. No translation problems. 62 00:02:51,840 --> 00:02:55,120 So CalDAV is basically the protocol that makes sure those calendar 63 00:02:55,120 --> 00:02:57,400 files get where they need to go reliably. 64 00:02:57,400 --> 00:02:59,280 It's like the Internet's meeting coordinator. 65 00:02:59,280 --> 00:03:01,600 That's a great way to put it. And then you have CardAV. 66 00:03:01,600 --> 00:03:04,960 If CalDAV manages time, CardAV manages people. 67 00:03:04,960 --> 00:03:07,920 It's the protocol for your address book, your contacts, 68 00:03:07,920 --> 00:03:10,160 making sure that's consistent everywhere. 69 00:03:10,160 --> 00:03:12,640 I'm guessing it uses a similar kind of data format. 70 00:03:12,880 --> 00:03:14,720 It does. It relies on vCard, 71 00:03:14,720 --> 00:03:18,200 which is basically the standardized electronic business card format. 72 00:03:18,200 --> 00:03:23,840 It tells the server what a contact record needs, name, phone, email, all of that. 73 00:03:23,840 --> 00:03:27,040 And the real magic of a framework like SaberDAV is that it just 74 00:03:27,040 --> 00:03:31,440 it implements all these very specific old rules for developers. 75 00:03:31,440 --> 00:03:33,080 So they don't have to go read 76 00:03:33,080 --> 00:03:36,480 decade old documents just to build a sync server. 77 00:03:36,480 --> 00:03:40,000 And the project docs make it really clear this is not a hobby project. 78 00:03:40,360 --> 00:03:44,940 They actually say that SaberDAV is trusted and fully supported on all major 79 00:03:44,940 --> 00:03:45,440 platforms. 80 00:03:45,440 --> 00:03:49,680 That tells you right away that this code is robust enough for huge companies 81 00:03:49,680 --> 00:03:51,680 managing tons of sensitive data. 82 00:03:51,680 --> 00:03:54,360 That's a massive vote of confidence for an open source tool. 83 00:03:54,360 --> 00:03:57,480 It really speaks to the power of open standards. 84 00:03:57,480 --> 00:04:01,040 When a core piece of infrastructure is managed openly like this, 85 00:04:01,040 --> 00:04:04,600 big companies don't have to worry about being locked into one vendor 86 00:04:04,600 --> 00:04:06,760 for their users contacts or schedules. 87 00:04:06,760 --> 00:04:09,960 They can just rely on the stable foundation built on PHP, 88 00:04:09,960 --> 00:04:12,280 which has one of the biggest ecosystems out there. 89 00:04:12,280 --> 00:04:15,880 That stable foundation, that brings us to the how, right? 90 00:04:15,880 --> 00:04:19,560 So moving past the protocols, let's look at the framework itself. 91 00:04:19,560 --> 00:04:23,760 The material highlights features designed for serious performance. 92 00:04:23,760 --> 00:04:26,560 When they say scalable, 93 00:04:26,560 --> 00:04:28,960 what does that actually mean for a company using this? 94 00:04:28,960 --> 00:04:31,640 Scalability here means two things. 95 00:04:31,640 --> 00:04:34,960 It's the sheer volume of data, but also the volume of users 96 00:04:34,960 --> 00:04:37,240 hitting that data at the same time. 97 00:04:37,240 --> 00:04:39,640 I mean, building a sync server is really hard. 98 00:04:39,880 --> 00:04:42,040 You're dealing with multiple devices trying to update 99 00:04:42,040 --> 00:04:44,280 the same calendar entry at the exact same moment. 100 00:04:44,280 --> 00:04:48,000 The framework scalable design is engineered to handle that kind of load 101 00:04:48,000 --> 00:04:50,040 without falling over. 102 00:04:50,040 --> 00:04:52,880 And those challenges must just explode when you think about 103 00:04:52,880 --> 00:04:54,600 how people use this in a team setting. 104 00:04:54,600 --> 00:04:56,000 It's not just my calendar anymore. 105 00:04:56,000 --> 00:04:58,320 It's about sharing and delegating. Absolutely. 106 00:04:58,320 --> 00:05:02,720 The documentation specifically lists robust sharing and delegation features. 107 00:05:02,720 --> 00:05:05,160 For any company, this is mission critical. 108 00:05:05,160 --> 00:05:08,120 I might need my assistant to manage my work calendar 109 00:05:08,400 --> 00:05:11,840 or share a read only vacation schedule for my whole team. 110 00:05:11,840 --> 00:05:16,000 The framework just provides all the scaffolding to build those rules easily. 111 00:05:16,000 --> 00:05:19,360 And going back to call that for a second, the framework offers powerful 112 00:05:19,360 --> 00:05:21,960 scheduling and free, busy capabilities. 113 00:05:21,960 --> 00:05:25,160 That seems like a subtle feature, but it's vital, isn't it? 114 00:05:25,160 --> 00:05:29,720 It's the difference between a calendar that works and a tool that's actually useful. 115 00:05:29,720 --> 00:05:33,520 When you invite someone to a meeting, the server needs to check their availability, 116 00:05:33,520 --> 00:05:36,480 their free, busy status without actually showing you all 117 00:05:36,480 --> 00:05:38,400 the private details of their schedule. 118 00:05:38,400 --> 00:05:42,160 Sabredev implements the complex negotiation required to exchange 119 00:05:42,160 --> 00:05:44,760 just that little bit of data securely. 120 00:05:44,760 --> 00:05:46,440 And security is of course the big one. 121 00:05:46,440 --> 00:05:50,120 The framework talks about a flexible ACL and authentication system. 122 00:05:50,120 --> 00:05:52,520 Now ACL is some developer jargon. 123 00:05:52,520 --> 00:05:54,920 Can you break down what an access control list does here? 124 00:05:54,920 --> 00:05:56,120 Think of the ACL. 125 00:05:56,120 --> 00:06:00,320 Think of it like a digital key card system in an office building. 126 00:06:00,320 --> 00:06:04,680 Every user has a key card, but that card only opens certain doors. 127 00:06:04,960 --> 00:06:07,960 In this case, certain calendars or contact lists. 128 00:06:07,960 --> 00:06:10,840 The flexibility means you can get really granular. 129 00:06:10,840 --> 00:06:14,400 I might let you read my personal calendar, but only my boss can 130 00:06:14,400 --> 00:06:15,760 write new events to my work one. 131 00:06:15,760 --> 00:06:18,920 The ACL system is what enforces all of those rules. 132 00:06:18,920 --> 00:06:19,480 Okay. 133 00:06:19,480 --> 00:06:21,600 That makes the security part crystal clear. 134 00:06:21,600 --> 00:06:25,360 Now on the community side, the project is licensed under 135 00:06:25,360 --> 00:06:27,040 the BSD three clause license. 136 00:06:27,040 --> 00:06:29,920 For a developer, what's the big deal about that kind of license? 137 00:06:29,920 --> 00:06:32,680 It means freedom, a huge amount of freedom. 138 00:06:33,080 --> 00:06:36,360 The BSD license basically says, do whatever you want with this code. 139 00:06:36,360 --> 00:06:39,200 Even in your own commercial products, just don't remove our name from it. 140 00:06:39,200 --> 00:06:42,200 This is why big companies feel so safe adopting it. 141 00:06:42,200 --> 00:06:45,800 They know they can build massive systems on top without any legal strings attached. 142 00:06:45,800 --> 00:06:50,720 And the GitHub stats, you know, over 1.7 thousand stars, hundreds of forks that 143 00:06:50,720 --> 00:06:52,440 shows developers really trust it. 144 00:06:52,440 --> 00:06:57,720 And it's built almost entirely in PHP, like 99.0%, which is interesting because 145 00:06:57,720 --> 00:07:01,040 some people have this idea that PHP isn't great for high performance stuff. 146 00:07:01,400 --> 00:07:04,160 It completely flips that old narrative on its head. 147 00:07:04,160 --> 00:07:08,240 I mean, the success of Sabredev shows that modern PHP, when it's engineered 148 00:07:08,240 --> 00:07:12,280 professionally, is absolutely capable of handling this kind of demanding 149 00:07:12,280 --> 00:07:14,640 infrastructure and it's clearly active. 150 00:07:14,640 --> 00:07:18,760 The latest release 4.7.0 was just in October 2024. 151 00:07:18,760 --> 00:07:21,400 That's continuous professional maintenance. 152 00:07:21,400 --> 00:07:24,800 And that longevity kind of leads us to the ecosystem. 153 00:07:24,800 --> 00:07:26,640 This isn't just some random project. 154 00:07:26,640 --> 00:07:29,480 The material says it's spearheaded by a company called Frouk. 155 00:07:30,640 --> 00:07:33,720 Why is having a real company behind an open source project like 156 00:07:33,720 --> 00:07:34,880 this such a game changer? 157 00:07:34,880 --> 00:07:36,480 Trust and commitment. 158 00:07:36,480 --> 00:07:38,720 And enterprise needs guarantees. 159 00:07:38,720 --> 00:07:41,560 They need a number to call when something breaks and they need to know 160 00:07:41,560 --> 00:07:43,720 security issues will be patched immediately. 161 00:07:43,720 --> 00:07:46,120 Frouk provides that commercial safety net. 162 00:07:46,120 --> 00:07:50,360 They take this amazing open source code and turn it into a solution that a big 163 00:07:50,360 --> 00:07:51,760 business can actually bet on. 164 00:07:51,760 --> 00:07:54,360 And what do they offer that you don't get with just the free code? 165 00:07:54,360 --> 00:07:57,760 They offer the services that large organizations really need. 166 00:07:58,080 --> 00:08:02,320 Things like enterprise support with guaranteed response times, customization 167 00:08:02,320 --> 00:08:07,040 to fit it into their existing messy IT systems and deployment flexibility. 168 00:08:07,040 --> 00:08:10,440 They'll help you run it on premise, you know, on your own servers or as a 169 00:08:10,440 --> 00:08:13,520 managed sauce solution, that dual offering is key. 170 00:08:13,520 --> 00:08:17,200 The strength of SabreDove also seems to come from all its supporting libraries. 171 00:08:17,200 --> 00:08:18,440 It's like a whole toolkit. 172 00:08:18,440 --> 00:08:19,280 It is. 173 00:08:19,280 --> 00:08:22,080 The most important one is probably SabreObject. 174 00:08:22,080 --> 00:08:25,000 This is the workhorse for handling the data. 175 00:08:25,480 --> 00:08:29,600 Since you're dealing with iCalendar and vCard files, you need a super reliable 176 00:08:29,600 --> 00:08:31,960 tool to parse and manipulate those formats. 177 00:08:31,960 --> 00:08:35,600 Without SabreObject, every developer would have to write their own code 178 00:08:35,600 --> 00:08:39,600 just to read a meeting invite correctly, which that would be a nightmare. 179 00:08:39,600 --> 00:08:42,520 So if SabreObject handles the data formats, the next step is 180 00:08:42,520 --> 00:08:43,760 sending that data over the web. 181 00:08:43,760 --> 00:08:45,240 I see libraries for that too. 182 00:08:45,240 --> 00:08:47,480 Yes, specifically SabreAxML. 183 00:08:47,480 --> 00:08:51,760 Now these protocols often use XML and working with XML can be notoriously 184 00:08:51,760 --> 00:08:53,040 painful for developers. 185 00:08:53,360 --> 00:08:56,680 The documentation has this great little bit of humor calling SabreAxML 186 00:08:56,680 --> 00:08:59,240 the only XML library that you may not hate. 187 00:08:59,240 --> 00:09:00,120 Yeah, right. 188 00:09:00,120 --> 00:09:02,320 That tells you it's built by people who get it. 189 00:09:02,320 --> 00:09:05,840 They understand the common frustrations and they're trying to solve them. 190 00:09:05,840 --> 00:09:09,040 And then you have these other utilities like SabreTP and Sibriory. 191 00:09:09,040 --> 00:09:12,720 It really reinforces that this is a fully engineered system, 192 00:09:12,720 --> 00:09:14,120 not just a one trick pony. 193 00:09:14,120 --> 00:09:18,080 Which brings us back to that crucial point about maintenance. 194 00:09:18,080 --> 00:09:21,880 For anyone building a core business system on open source, 195 00:09:22,280 --> 00:09:24,600 you have to know what's being supported. 196 00:09:24,600 --> 00:09:29,160 And the developers here are incredibly professional about it in their documentation. 197 00:09:29,160 --> 00:09:32,760 They laid it all out. The current four dot something branch is maintained needs 198 00:09:32,760 --> 00:09:36,960 modern PHP, but the older branches like 3.2, 3.1, 199 00:09:36,960 --> 00:09:39,560 they are explicitly labeled unmaintained. 200 00:09:39,560 --> 00:09:41,320 And that's a loud and clear message. 201 00:09:41,320 --> 00:09:44,840 It says you must track the active branch for security and reliability. 202 00:09:44,840 --> 00:09:49,960 It's interesting they cite an old release from 2018, the 3.2.3 one, 203 00:09:49,960 --> 00:09:51,200 but it's really just a warning. 204 00:09:51,480 --> 00:09:55,040 If a company is still on that code, they're using an abandoned product. 205 00:09:55,040 --> 00:09:58,280 The real story is the active maintenance of the current branch. 206 00:09:58,280 --> 00:10:00,200 That's what matters for today's projects. 207 00:10:00,200 --> 00:10:03,240 So if we were to summarize the key takeaway from all this, 208 00:10:03,240 --> 00:10:06,280 separate to have isn't just some PHP code, 209 00:10:06,280 --> 00:10:10,160 it's the fundamental architecture that lets all our different apps and platforms 210 00:10:10,160 --> 00:10:14,680 communicate, sharing our calories and contacts securely and at a massive scale. 211 00:10:14,680 --> 00:10:17,880 And it's all backed by a dedicated team at frus, 212 00:10:17,880 --> 00:10:20,320 which makes it safe for businesses to adopt. 213 00:10:20,440 --> 00:10:21,800 It's the invisible glue. 214 00:10:21,800 --> 00:10:24,520 I mean, the next time your phone syncs a critical meeting 215 00:10:24,520 --> 00:10:26,760 invite across three different devices instantly. 216 00:10:26,760 --> 00:10:30,000 Just remember, you're seeing the principles and maybe even the actual code 217 00:10:30,000 --> 00:10:33,560 from a tool just like this doing its job perfectly in the background. 218 00:10:33,560 --> 00:10:36,520 A really fascinating look at the plumbing of the Internet. 219 00:10:36,520 --> 00:10:39,240 And it does lead to a final thought for you to consider. 220 00:10:39,240 --> 00:10:43,560 Given how sensitive all this data is, our schedules, our contacts or work 221 00:10:43,560 --> 00:10:47,360 relationships, think about the impact of relying on well-maintained 222 00:10:47,360 --> 00:10:51,320 open source projects like this instead of, you know, closed proprietary systems. 223 00:10:51,320 --> 00:10:55,920 Does the transparency of open standards actually guarantee a more reliable 224 00:10:55,920 --> 00:10:59,120 and interoperable future for how we all collaborate digitally? 225 00:10:59,120 --> 00:11:01,360 Something to think about. 226 00:11:01,360 --> 00:11:03,440 Thank you for joining us for this deep dive. 227 00:11:03,440 --> 00:11:05,800 This episode was supported by Safe Server. 228 00:11:05,800 --> 00:11:08,320 Safe Server takes care of the hosting of this software 229 00:11:08,320 --> 00:11:10,640 and supports you in your digital transformation. 230 00:11:10,640 --> 00:11:13,480 More information at www.safeserver.de