1 00:00:00,000 --> 00:00:04,120 ever feel like building something online is just impossible? Like you're trying to 2 00:00:04,120 --> 00:00:07,920 assemble IKEA furniture, but the instructions are, I don't know, in ancient 3 00:00:07,920 --> 00:00:12,720 Greek. Yeah, you're definitely not alone there. That's exactly why we're doing 4 00:00:12,720 --> 00:00:16,040 this deep dive today to try and make things a bit clearer. We're zooming in on 5 00:00:16,040 --> 00:00:20,760 something called PocketBase. Think of it as like an open source toolkit for 6 00:00:20,760 --> 00:00:24,480 building the parts of your apps and websites that run, you know, behind the 7 00:00:24,480 --> 00:00:27,760 scenes. So if you've ever thought about creating your own little corner of the 8 00:00:27,760 --> 00:00:33,970 internet or maybe you're just curious how the apps you use actually work, well, 9 00:00:33,970 --> 00:00:34,080 this 10 00:00:34,080 --> 00:00:38,080 might be surprisingly useful even if you're not super techie right now. We've 11 00:00:38,080 --> 00:00:42,840 basically gone straight to the source pulled info from the PocketBase GitHub 12 00:00:42,840 --> 00:00:47,800 page and their main website. So it's the real deal, our mission for this session, 13 00:00:47,800 --> 00:00:51,400 just to give you a really clear, hopefully beginner-friendly idea of what 14 00:00:51,400 --> 00:00:56,160 PocketBase is and maybe why it could be useful for your next project. But before 15 00:00:56,160 --> 00:00:59,000 we jump right in, just a quick word about the folks making this possible. Safe 16 00:00:59,000 --> 00:01:02,920 Server. They handle hosting software and support your digital transformation. You 17 00:01:02,920 --> 00:01:09,060 can find out more over at www.safeserver.de. Okay, so yeah, let's start right at 18 00:01:09,060 --> 00:01:09,120 the 19 00:01:09,120 --> 00:01:14,680 beginning. What even is a backend? Good question. Imagine, like, your favorite app. 20 00:01:14,680 --> 00:01:18,240 You tap stuff, you see pictures, information pops up, that's the front end, 21 00:01:18,240 --> 00:01:22,560 it's the bit you actually interact with. But behind all that, there's this whole 22 00:01:22,560 --> 00:01:28,480 engine room, right? Storing data, managing your login, making sure when you tap 23 00:01:28,480 --> 00:01:32,360 like, it actually registers somewhere. That's the backend. It's kind of like a 24 00:01:32,360 --> 00:01:35,640 puppet show. You see the puppets moving, that's the front end. But underneath, 25 00:01:35,640 --> 00:01:39,780 hidden away, someone's pulling all the strings, that's the backend. PocketBase 26 00:01:39,780 --> 00:01:44,040 helps you build those strings. Okay, so PocketBase is one specific way to build 27 00:01:44,040 --> 00:01:50,000 those strings. Got it. What makes it stand out from, say, other ways of doing it? 28 00:01:50,000 --> 00:01:53,600 Exactly. It's a specific approach. And a big thing is that it's open-source. Think 29 00:01:53,600 --> 00:01:57,520 of it like a community cookbook recipe for your backend. Everyone can see it, use 30 00:01:57,520 --> 00:02:01,440 it for free, tweak it, even suggest improvements. So it's always getting 31 00:02:01,440 --> 00:02:04,580 better, thanks to lots of people chipping in. Right, open-source, that's cool. 32 00:02:04,580 --> 00:02:09,240 Community driven. Yeah. And another really key thing is it's a real-time backend. 33 00:02:09,240 --> 00:02:13,640 You know how, like, on a live sports app, the score just updates instantly, you 34 00:02:13,640 --> 00:02:17,600 don't have to keep hitting refresh? That's real-time. PocketBase lets your 35 00:02:17,600 --> 00:02:22,200 apps data update automatically like that. Super useful for chat apps, dashboards, 36 00:02:22,200 --> 00:02:25,280 things like that. And maybe the thing that makes it really appealing, especially 37 00:02:25,280 --> 00:02:30,760 for beginners, is how it's often described in one file. In one file? Yeah, it 38 00:02:30,760 --> 00:02:31,000 sounds 39 00:02:31,000 --> 00:02:34,680 almost too simple, right? But it basically means all the core backend 40 00:02:34,680 --> 00:02:39,200 stuff is packaged neatly into this single manageable file. Makes getting 41 00:02:39,200 --> 00:02:43,160 started feel much less daunting, like having your essential kitchen gadgets in 42 00:02:43,160 --> 00:02:46,760 one box instead of scattered everywhere. Okay, in one file that does sound 43 00:02:46,760 --> 00:02:51,480 incredibly simple. So what kind of tools are actually in this this one file 44 00:02:51,480 --> 00:02:55,120 toolbox? What can it do? Well, it's surprisingly packed for just one file. 45 00:02:55,120 --> 00:03:00,280 First off, it includes its own database. Schoolite is the name. Now, a database is 46 00:03:00,280 --> 00:03:03,280 just, you know, an organized place to store all your apps information, like a 47 00:03:03,280 --> 00:03:08,590 digital filing cabinet. The built-in part means you don't need to find, install, 48 00:03:08,590 --> 00:03:08,760 and 49 00:03:08,760 --> 00:03:13,160 connect a separate database system. It's all right there. And naturally, it 50 00:03:13,160 --> 00:03:17,220 supports those real-time updates we just talked about. Second, it has built-in ways 51 00:03:17,220 --> 00:03:22,000 to manage files, think user uploads, like profile pictures or documents. Oh, nice. 52 00:03:22,000 --> 00:03:27,040 And it handles user accounts, so sign-ups, logins, password resets, all that 53 00:03:27,040 --> 00:03:30,440 stuff that's usually a pain to set up. It's included. You don't have to build it 54 00:03:30,440 --> 00:03:36,290 from the ground up. That alone saves, like, a ton of time. Wow, okay. That does 55 00:03:36,290 --> 00:03:36,440 sound 56 00:03:36,440 --> 00:03:39,480 like it strips away a lot of the complexity. What else comes in the box? 57 00:03:39,480 --> 00:03:43,320 Well, there's also this really handy visual thing called an admin dashboard. 58 00:03:43,320 --> 00:03:46,560 Think of it like the control panel for your backend. You just open it in your 59 00:03:46,560 --> 00:03:51,360 web browser and you can see all your data, manage users, change settings, all 60 00:03:51,360 --> 00:03:54,920 with clicks. No code needed. Like a point-and-click interface for the engine 61 00:03:54,920 --> 00:03:58,520 room. Exactly. Makes managing everything much easier, especially when you're 62 00:03:58,520 --> 00:04:03,440 starting out. And finally, it provides something called a REST-ish API. Now, API 63 00:04:03,440 --> 00:04:07,600 sounds technical, I know, but really just think of it as the language your app, the 64 00:04:07,600 --> 00:04:12,480 Puppets uses to talk to PocketBase, the puppeteer. REST is just a very common, 65 00:04:12,480 --> 00:04:16,780 straightforward way for them to communicate. And PocketBase even offers 66 00:04:16,780 --> 00:04:22,120 these helpers, they call them SDK clients, for popular languages like JavaScript, 67 00:04:22,120 --> 00:04:26,560 which is huge for web stuff, and Dart, which is big for mobile apps that work 68 00:04:26,560 --> 00:04:31,200 on different devices. These SDKs make it even easier for your app code to talk to 69 00:04:31,200 --> 00:04:35,320 PocketBase. Like having a fluent translator built right in. Okay, so it's 70 00:04:35,320 --> 00:04:39,520 almost like a pre-assembled backend engine that's just ready to go. Yeah. How 71 00:04:39,520 --> 00:04:42,720 would someone actually, you know, use it, get started with a project? Yeah, the 72 00:04:42,720 --> 00:04:46,360 absolute easiest way is to use it as a standalone app. Like you literally go to 73 00:04:46,360 --> 00:04:50,720 the PocketBase website, download one single file for your computer, Windows, 74 00:04:50,720 --> 00:04:54,760 Mac, Linux, whatever you've got. Okay. Then you open up your terminal, or command 75 00:04:54,760 --> 00:04:57,800 prompt sounds a bit technical, but just where you type commands, and you just 76 00:04:57,800 --> 00:05:01,900 type .pocketbase serve. That's literally it. That's it. That's it. Boom. Your 77 00:05:01,900 --> 00:05:04,800 PocketBase backend is running. Then you just build your app to connect to it. 78 00:05:04,800 --> 00:05:08,540 This pre-built version even lets you add little bits of custom logic using 79 00:05:08,540 --> 00:05:11,640 JavaScript, which is pretty neat for web developers. But that really does sound 80 00:05:11,640 --> 00:05:16,160 incredibly simple. Like almost too simple to get a backend running. Yeah. 81 00:05:16,160 --> 00:05:21,960 Is there another way for people who maybe want to tinker a bit more? Oh, yeah. 82 00:05:21,960 --> 00:05:25,600 Definitely. For developers who are comfortable with code or want more 83 00:05:25,600 --> 00:05:30,560 control, PocketBase can also be used as a Go framework. Go is this programming 84 00:05:30,560 --> 00:05:35,000 language known for being pretty fast and efficient. So if you know Go, you can 85 00:05:35,000 --> 00:05:39,320 basically use PocketBase as a library, a set of pre-built components inside your 86 00:05:39,320 --> 00:05:44,200 own Go application. Oh, okay. More integration. Exactly. The documentation 87 00:05:44,200 --> 00:05:48,280 shows a tiny example, just a few lines of code. You import PocketBase, create a 88 00:05:48,280 --> 00:05:51,800 new app instance, maybe add a custom rule or two, and then you start it using a 89 00:05:51,800 --> 00:05:56,320 command like go run main dot go serve. Before that, you'd probably use some 90 00:05:56,320 --> 00:06:00,080 standard Go commands like go mod and knit my app and go mod tidy to set up 91 00:06:00,080 --> 00:06:03,240 your project structure. And if you want to package your custom Go app into that 92 00:06:03,240 --> 00:06:06,280 neat single file, just like the prebuilt one, there's command for that too, 93 00:06:06,280 --> 00:06:10,680 something like cgo enable d0 go build, then you run your version with dot my app 94 00:06:10,680 --> 00:06:15,920 serve. So it's flexible, easy start, but room to grow for coders. Right, right. So 95 00:06:15,920 --> 00:06:19,400 it caters to both ends of the spectrum, sort of. Who do you think this is really 96 00:06:19,400 --> 00:06:23,960 for then? Who benefits most? Well, they don't explicitly list like use case 97 00:06:23,960 --> 00:06:27,320 hashtag one dot x, but based on everything, the simplicity, the all-in-one 98 00:06:27,320 --> 00:06:31,440 nature. It really feels perfect for individuals, maybe building a personal 99 00:06:31,440 --> 00:06:36,680 project, small teams, maybe startups. If you're building a web app, a mobile app, 100 00:06:36,680 --> 00:06:41,600 and you need those standard backend things, user accounts, storing data, maybe 101 00:06:41,600 --> 00:06:45,900 some real-time features, file uploads, but you don't want the headache of 102 00:06:45,900 --> 00:06:49,040 setting up five different complex services and making them talk to each 103 00:06:49,040 --> 00:06:53,360 other, PocketBase looks like a fantastic choice. It really lowers that barrier to 104 00:06:53,360 --> 00:06:57,400 entry, you know, lets you focus more on the actual app features, the fun part. 105 00:06:57,400 --> 00:07:00,640 Yeah, I can see that being huge, especially for people just getting 106 00:07:00,640 --> 00:07:06,000 started or without huge resources. Now, you mentioned it's still actively 107 00:07:06,000 --> 00:07:09,080 developed. Is there anything people should be aware of, like downsides? Good 108 00:07:09,080 --> 00:07:12,600 point. Yes, it's actively developed, which is great. Lots of improvements happening, 109 00:07:12,600 --> 00:07:17,320 but they are upfront about it. Because it's not at version 1.0 yet, they might 110 00:07:17,320 --> 00:07:20,660 introduce changes in future updates that aren't fully backward compatible. 111 00:07:20,660 --> 00:07:24,400 Meaning an update could potentially break something in an older project. 112 00:07:24,400 --> 00:07:27,920 Potentially, yeah. It's something to keep in mind, especially if you're building 113 00:07:27,920 --> 00:07:32,080 something, you know, mission critical or planning for the very long term. It's 114 00:07:32,080 --> 00:07:36,080 definitely stable enough to use. Lots of people are. But just manage expectations 115 00:07:36,080 --> 00:07:40,960 that things might shift slightly before that big v1.0 release. Okay, good to 116 00:07:40,960 --> 00:07:45,440 know. Manage expectations. And since it's open source, how can people get involved 117 00:07:45,440 --> 00:07:50,360 if they find it useful, if they want to contribute? Yeah, that's the beauty of 118 00:07:50,360 --> 00:07:54,280 open source. The community is key. If you're a developer, you can definitely 119 00:07:54,280 --> 00:07:58,920 contribute code, fixing bugs, adding features, improving the docs is always 120 00:07:58,920 --> 00:08:03,920 helpful too. The GitHub repository is the place for that. They do suggest though, 121 00:08:03,920 --> 00:08:07,600 if you have a big new feature idea, it's probably best to chat with the 122 00:08:07,600 --> 00:08:11,880 maintainers first, maybe open an issue to discuss it, just to make sure it aligns 123 00:08:11,880 --> 00:08:16,200 with the project's direction. Right, collaboration. Exactly. And importantly, 124 00:08:16,200 --> 00:08:20,040 if you happen to find a security issue, like a vulnerability, they ask that you 125 00:08:20,040 --> 00:08:24,280 don't post it publicly on GitHub. Instead, there's a dedicated email address 126 00:08:24,280 --> 00:08:28,800 support at pocketbase.io for reporting those privately and responsibly. Got it. 127 00:08:28,800 --> 00:08:34,040 Okay, so let's try and wrap this up. Pocketbase. It's open source. It's this 128 00:08:34,040 --> 00:08:37,840 all-in-one backend thing, designed to be really easy to use, especially if you're 129 00:08:37,840 --> 00:08:42,920 newer to this. It bundles a database, user stuff, file storage, even a visual admin 130 00:08:42,920 --> 00:08:47,360 tool, often into just one file. Plus, it does real-time updates. You can run it 131 00:08:47,360 --> 00:08:50,520 super easily with one command, or if you're a Go developer, you can integrate 132 00:08:50,520 --> 00:08:54,800 it more deeply. Sounds like a brilliant option for individuals, small teams, 133 00:08:54,800 --> 00:08:59,420 anyone who wants to build an app without getting totally bogged down in complex 134 00:08:59,420 --> 00:09:03,440 backend setup. Just got to remember it's still evolving towards that version 1.0. 135 00:09:03,440 --> 00:09:07,000 That sums it up perfectly. It really feels like it's trying to make backend 136 00:09:07,000 --> 00:09:11,120 development more accessible, democratizing it almost. Democratizing. I 137 00:09:11,120 --> 00:09:16,320 like that. Great way to put it. So, maybe here's something to chew on. You know, 138 00:09:16,320 --> 00:09:16,480 all 139 00:09:16,480 --> 00:09:20,560 those slick apps and websites we use, they all have complex backends powering 140 00:09:20,560 --> 00:09:23,800 them. Could a tool like PocketBase actually make it feasible for more 141 00:09:23,800 --> 00:09:27,600 people, maybe even you, to understand that stuff better or even build your own 142 00:09:27,600 --> 00:09:31,840 simpler versions? Does seeing behind the curtain a bit, even with a tool like this, 143 00:09:31,840 --> 00:09:35,640 change how you think about the tech you use every day? Perhaps it's worth 144 00:09:35,640 --> 00:09:40,760 exploring their documentation. HTTPS.pocketbase.io docs just to see what 145 00:09:40,760 --> 00:09:43,760 sparks your interest. And remember, this deep dive was brought to you with 146 00:09:43,760 --> 00:09:47,560 support from SafeServer. They provide hosting solutions for software and can 147 00:09:47,560 --> 00:09:54,080 help with your digital transformation. Check them out at www.safeserver.de