PocketBase... The Ultimate Side-Hustle Backend?

Поділитися
Вставка
  • Опубліковано 12 вер 2022
  • Take first look at PocketBase, a new backend platform using the Go programming language and SQLite database that compiles to a single executable. It is a lightweight alternative to tools like Firebase and Supabase for easy backend development.
    #programming #firstlook #TheCodeReport
    🔗 Resources
    - PocketBase Github github.com/pocketbase/pocketbase
    - Pocketbase HomePage pocketbase.io/
    - Firebase Alt Video • I tried 5 Firebase alt...
    - Edge Functions Video • Is "edge" computing re...
    🔥 Get More Content - Upgrade to PRO
    Upgrade to Fireship PRO at fireship.io/pro
    Use code lORhwXd2 for 25% off your first payment.
    🎨 My Editor Settings
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
    🔖 Topics Covered
    - What is PocketBase?
    - Pocketbase vs Supabase
    - Pocketbase vs Firebase
    - Is PocketBase production ready?
    - How to choose a backend for an app?
  • Наука та технологія

КОМЕНТАРІ • 661

  • @karthik448
    @karthik448 Рік тому +677

    "Destined to fail, but if not.. does it scale" This should be the motto for all side projects

  • @dom8429
    @dom8429 Рік тому +2446

    we need another backend base service as an alternative to this one. and also a new javascript framework while we are at it

    • @HAL-9000-
      @HAL-9000- Рік тому +150

      Written in rust

    • @Affax
      @Affax Рік тому +19

      ​@@HAL-9000- Rust is 🙏
      It's definitely my favorite language ever

    • @HAL-9000-
      @HAL-9000- Рік тому +20

      @@Affax Mine too, followed by Go

    • @HorsiMusic
      @HorsiMusic Рік тому +5

      Directus is a great alternative

    • @HAL-9000-
      @HAL-9000- Рік тому

      @@HorsiMusic or hasura

  • @Ddxcv98
    @Ddxcv98 Рік тому +1009

    Start your project now by building your backend from scratch ❌
    Spend endless hours looking at BaaS alternatives and never actually start your project ✅

    • @HAL-9000-
      @HAL-9000- Рік тому +34

      That's the way

    • @devagr
      @devagr Рік тому +61

      why you gotta call me out like that

    • @wlockuz4467
      @wlockuz4467 Рік тому +135

      Start your project now by building your backend from scratch ❌
      Spend endless hours looking at BaaS alternatives and never actually start your project ❌
      Forget about the original project and create your own BaaS platform because none of the existing ones out there fit your "taste" ✅

    • @fexofenadinaGenerica
      @fexofenadinaGenerica Рік тому +18

      So wait, all these services (firebase, supabase anythinbase) are used to avoid making a backend with node, flask, Django, c# etc?
      I really thought they were meant to host your backend lol
      Very noob much wow

    • @guilhermealveslopes
      @guilhermealveslopes Рік тому +21

      @@wlockuz4467 Thats how most frameworks were born, maybe

  • @daytonmux
    @daytonmux Рік тому +1198

    TIL Firebase uses “sharting” to horizontally scale. Only downsides of this strategy are the underwear overhead and the smell, but I find the tradeoff to be worth it, especially if you aren’t doing much code-sniffing

    • @Steel0079
      @Steel0079 Рік тому +65

      Underwear overhead and the smell xD

    • @JohnWalz97
      @JohnWalz97 Рік тому +13

      Bruh 💀

    • @shortkeys73
      @shortkeys73 Рік тому +94

      Make sure you're consistently dumping your cache you'll be good to go 👍💩

    • @franciskafieh
      @franciskafieh Рік тому +11

      @@shortkeys73 HELPPPP

    • @MrShaheer
      @MrShaheer Рік тому +1

      bravo

  • @Oliver_Saer
    @Oliver_Saer Рік тому +125

    Just want to say that I absolutely love your humour - "your side project which is destined to fail", saying "sharding" but putting "sharting" on-screen, etc...
    Actually helps me retain the information because the laughs are keeping me focused, whereas other UA-camrs lose me within seconds due to their long-winded, monotone, no-nonsense approach to teaching programming concepts.

    • @dellagustin
      @dellagustin Рік тому +5

      I'm glad I was alone in the room when "your side project which is destined to fail" came up, I started 😂 like an idiot

  • @felipeflores5403
    @felipeflores5403 Рік тому +92

    He said he was gonna look at pocketbase over the weekend and here we are. Boy does he deliver!

  • @soviut303
    @soviut303 Рік тому +371

    You can scale horizontally by giving each customer their own executable. You don't have to worry about "noisy neighbours", only one customer is affected if an app goes down, you can scale each customer independently and you can easily A/B test features or do progressive rollouts of new versions.

    • @jameslay6505
      @jameslay6505 Рік тому +54

      This is a surprisingly underrated strategy. For the small amount of communication that needs to be global, you can implement that as an integration and host that using whatever tech you like. You may never need it, depending on the use case.

    • @adityanuar
      @adityanuar Рік тому +41

      cheapest horizontal scaling i can ever imagine

    • @soviut303
      @soviut303 Рік тому +88

      @@jameslay6505 It's because people still think of databases as this big shared multi-tenant setup. So all the effort in the last 20 years of devops has gone into optimizing a monolithic data store so there's not much tooling around "one stack per customer". They'll say it's too hard to manage lots of small instances, but sink $500,000 into standing up a Kubernetes cluster to scale 5 microservices.

    • @WolfrostWasTaken
      @WolfrostWasTaken Рік тому +21

      @@soviut303 true, we use a different instance of our project for each client (each on a different machine), each with a separate database. And we have CI. No problems! This strategy is underrated

    • @jeremiahgavin9687
      @jeremiahgavin9687 Рік тому +9

      Wait, how? How does the executable get on their device and run?

  • @apsufn41fkas9capsaclaw
    @apsufn41fkas9capsaclaw Рік тому +232

    i love how pocketbase has real-time demo, so you can see other people testing it

  • @ricardofabilareyes
    @ricardofabilareyes Рік тому +122

    I have a SASS project I made years ago with Laravel and uses SQLite. Never had an issue with it. On of the best engineering project of all time. A fully transactional database in just a simple file is awesome.

    • @pauls6277
      @pauls6277 Рік тому +12

      I’ve been using Laravel for Medium applications and it’s amazing the power it gives you for your backend. Even better when they switched Webpack with Vite 🤩

    • @ko-Daegu
      @ko-Daegu Рік тому +3

      Now let’s talk about security with SQLite

    • @marusdod3685
      @marusdod3685 Рік тому +35

      @@ko-Daegu security should be implemented at the backend level, not the database level

    • @yepee1
      @yepee1 Рік тому +2

      @@ko-Daegu you make your own solution handling access control to your services. And following best practices when hashing things.

    • @blubblurb
      @blubblurb Рік тому +1

      I also used sqlite in a project. It run very fast was very easy to backup. Then someone replaced the implementation with sqlite because the person in charge said sqlite is not "professional enough"

  • @brian_ball
    @brian_ball Рік тому +92

    Perfect for my side project which is "destined to fail!" 🤣

    • @theterribleanimator1793
      @theterribleanimator1793 Рік тому

      spoken like a true freelancer, hooraah.

    • @JohnDoe4321
      @JohnDoe4321 Рік тому +17

      If I expect my side project to fail, and it does fail, then it met expectations.
      And if it met expectations, was it really a failure? 🤔

    • @ark_knight
      @ark_knight Рік тому +4

      @@JohnDoe4321 dayum this guy here giving existential crisis to all freelancers

    • @ricardocnn
      @ricardocnn Рік тому +2

      It is bound to fail because packetbase hasn't even reached version 1 yet

  • @nacs
    @nacs Рік тому +15

    This Pocketbase project is incredible. A single binary that does all that whereas Appwrite/Supabase require like 6 large containers.
    Definitely using this for my next "startup".

    • @MrRe-sj2iv
      @MrRe-sj2iv Рік тому +1

      I like Appwrite but can love PocketBase so much.
      Appwrite is kind of overweight baas for a new startup

  • @lucasharskamp1897
    @lucasharskamp1897 Рік тому +35

    SQLite is perfectly useful in production for mobile apps, to have local caching. Very useful for apps that require a lot of downloads while the user is likely not around a wifi-spot, or as a way to lower the amount of calls to servers.

    • @OzzyTheGiant
      @OzzyTheGiant Рік тому +3

      I use it for small e-commerce websites where I know for sure the shop is never going to reach thousands of customers a day (usually just mom and pop shops that want to sell just a few products on the internet to returning customers with not much advertising) and also for Headless CMS projects

  • @OzzyTheGiant
    @OzzyTheGiant Рік тому +8

    This is the ultimate wombo combo! Go with Echo framework and Svelte for the UI plus SQLite for maximum portability; no Docker required. This is the gold standard for me in my mind; three seriously underrated pieces of technology orchestrated together to create a small binary that is easily self-hostable.

  • @pantch12345
    @pantch12345 Рік тому +1

    Just wonna say, I love your videos and the way you present them to audience is brilliant . Thx ☺

  • @mrvillage05
    @mrvillage05 Рік тому +92

    I've been running Supabase self hosted for a long time now, deploying on x86 was a really painless process if you follow their guide, and on the 1 CPU, 1GB of RAM I bought for the side project it's for it works great (the project also has super low traffic, but the specs are comparable to a basic Supabase plan). The only kink was when I tried to deploy on ARM, despite the images saying they're built for ARM and Supabase claiming they built them for ARM, the Postgres image simply doesn't work (the others do though). After a log of work, just building Postgres image from the supabase/postgres repo manually worked like a charm.

    • @winkleraron8175
      @winkleraron8175 Рік тому +6

      Hope you don’t mind me asking, but I’ve been wondering if I might try hosting it for my projects too, but no cloud functions in the self hosted version has me hesitating. Has that been a problem for you at all?

    • @PenguinCrayon269
      @PenguinCrayon269 Рік тому

      how to protect supabase studio? i don't have experience with traeffic.

    • @mrvillage05
      @mrvillage05 Рік тому +1

      ​@@winkleraron8175 Cloud functions haven't been a problem for me personally, I use Cloudflare Workers for anything on the edge.

    • @usefulprogrammer9880
      @usefulprogrammer9880 Рік тому

      Still years after arm went mainstream… arm support for docker images is abysmal.

  • @jeremiahgavin9687
    @jeremiahgavin9687 Рік тому +23

    Thanks for putting this out. I'm definitely considering this as the backend for a multiplayer browser game.

  • @pigalex
    @pigalex Рік тому +5

    i just rolled my own backend + api framework instead. after chasing my tail a little bit it’s now at a good point of stability and i really like it. it’s basically just micro services but in a single daemon w/ hot loading

  • @cycla
    @cycla Рік тому +1

    mind blown, this is exactly what I need and I've been looking for so long!

  • @tsizzle_
    @tsizzle_ Рік тому +2

    Follower for a while, thanks for all the hard work!

  • @SantiagoMA
    @SantiagoMA Рік тому +8

    I think that besides the real-time functionality, other HeadlessCMSs like Strapi, Directus, Keystone, Squidex, ParseServer or Cockpit can also be included in the same bucket of the previous mentioned technologies.

  • @KhoPhi
    @KhoPhi Рік тому +27

    "Side projects that's destined to fail"
    Developers: Why are we here, just to suffer!

    • @Nekoeye
      @Nekoeye Рік тому +1

      Exactly my thought. It's a bitter truth. In last Code review, he mentioned 5 users and I was like. yeah. just kill me.

    • @ezrapierce1233
      @ezrapierce1233 Рік тому

      Apparently so💀

  • @lachainedanorak4349
    @lachainedanorak4349 Рік тому +3

    Go & Svelte are my favorite languages, thanks for the report !!

  • @smvnt3803
    @smvnt3803 Рік тому +4

    you gotta be kidding me, I literally got to know about PocketBase about 12 hours ago and here's a Fireship video on it woah

  • @megamaxdevelopment9890
    @megamaxdevelopment9890 Рік тому +17

    Amazing video. I think Directus is also a great Firebase alternative.

  • @codingcrashkurse6429
    @codingcrashkurse6429 Рік тому

    Damn that looks wonderful. Already made a small introduction about this nice piece of software :). Thanks for making this video

  • @Tutoring-bl5gq
    @Tutoring-bl5gq Рік тому +1

    Thanks for introducing this tool!

  • @LukePighetti
    @LukePighetti Рік тому +1

    I'm in the middle of a PocketBase + Flutter build on my Twitch channel, I'm really enjoying it so far. Totally recommend that folks consider it.

  • @adamnagy6206
    @adamnagy6206 Рік тому +21

    We use supabase in production for 4k+ users, and We have spent few hours figuring out how to setup email templates 😅😅, and now it's okay there are some bugs like sometimes reset password would not get processed but it can be a client sided thing

    • @axeleli6845
      @axeleli6845 Рік тому +1

      if you need someone to help with development lmk

  • @kennette2121
    @kennette2121 Рік тому +2

    I’m about to migrate from Firebase to Self Hosted Supabase for our infra for some client specific storage location requirements that cannot be met through GCP.
    Obviously I came to Fireship for inspiration!! Happy to read comments that say it’s not too tough ❤ 🤞

  • @erkhesbatbold9010
    @erkhesbatbold9010 Рік тому

    normally i dont give reviews but maam youre amazing like i tried 2 videos on 2020 and one on 2022 but it wont work but i saw yr video today and it worked as being both content creators i respect your hard work and keep it up

  • @Mafanca
    @Mafanca Рік тому

    this is right what i need! gonna restart my side-project again

  • @josephmartin6219
    @josephmartin6219 Рік тому

    Love the recursive database relationship at the end 😆!

  • @chrismarks7495
    @chrismarks7495 Рік тому +5

    Always enjoy your videos so much. Just last week I was checking pocketbase and it put me to think too 🤔. A video about surrealdb would be great.

  • @boredguy1663
    @boredguy1663 Рік тому +59

    You know what, You convinced me to build my own backend. It seems way more easier than using and managing these.

    • @stefnirk
      @stefnirk Рік тому +12

      That is always the end goal, but you can create an MVP in half the time using a BAAS.

    • @parablesboltnoel
      @parablesboltnoel Рік тому +6

      That's the Truth 100%. I highly recommend Laravel. The tooling and ecosystem is really amazing

    • @michaelcarner1963
      @michaelcarner1963 Рік тому +13

      Hello, yes I would like to sell my own BaaS using a BaaS as a backend.

    • @BosonCollider
      @BosonCollider Рік тому +5

      For many CRUD apps just setting up a database plus Hasura may also be an option.

    • @rkvkydqf
      @rkvkydqf Рік тому +28

      Writing a backend feels quite easy and fun to me. Frontend now just feels like an endless maddening search for the one true framework, hacking together a UI with CSS and a glorified text markup language, guessing types until you get a type error, and other nonsense. Writing a backend feels like you're engineering an intricate system with a goal of describing your data and how it changes state. You can choose any framework or programming language, use whatever cool thing you found convenient without fearing browser compatibility, and focus on real problems. It's quite fun if you have the time and it doesn't grow into a spaghetti codebase.

  • @2441139knakmg
    @2441139knakmg Рік тому

    my goodness! Your presentation blew my mind more than pb

  • @gaijinshacho
    @gaijinshacho Рік тому +3

    My side project will never fail...
    (*points to temple black man meme).
    If I never start it!

  • @_johnathan
    @_johnathan Рік тому +2

    I used ElefantCMS for years as a WP alternative which uses SQLite years ago. So fast!

  • @th3pr0ject
    @th3pr0ject Рік тому +1

    "It would work just fine for your side project that's destined to fail" - that hit hard man :)

  • @juice2
    @juice2 Рік тому +7

    Thanks for sharing this project, I am very excited to try it myself! Sqlite is a great database solution, but very underrated because engineers in companies gravitate towards complex setups to justify their jobs and salaries.

    • @okjosh
      @okjosh Рік тому +2

      Haha this is 100% true. Unfortunately I am one of those. Corps that can afford M$ stack can afford to buy me all the shiny toys I so desire. But hell if I am using M$ for my side projects.

  • @WaszInformatyk
    @WaszInformatyk Рік тому

    I have found what i was looking for :-)
    THANKS 😃

  • @timogeiselhardt
    @timogeiselhardt Рік тому

    Just bought soft soft! So excited to get started!!

  • @amirgamil
    @amirgamil Рік тому +1

    "The next MySpace" 😂 One of your best ever lines Jeff

  • @pilot8720
    @pilot8720 Рік тому

    I love SQLite, I always use it for my projects. Good to see it gettin the love

  • @bjunte2113
    @bjunte2113 Рік тому

    Yo after 50 seconds i am sold. Looks incredible!😍

  • @anj000
    @anj000 Рік тому +78

    It really looks amazing. Self-hosting is the best hosting.

    • @rodrigoorellana2389
      @rodrigoorellana2389 Рік тому +1

      what about security when your webapp starts scaling? self-hosting is cool if your app keeps simple

  • @a_maxed_out_handle_of_30_chars

    thanks, will try this

  • @Kaiju3301
    @Kaiju3301 Рік тому +6

    I’ve already made 7 JavaScript frameworks since this came out.

  • @nomad_swe
    @nomad_swe Рік тому +7

    Hosting Supabase on my VPS behind Traefik currently and honestly didn't find it all that hard. Sure, some things were a bit finicky and not obvious but it wasn't a hair pulling exercise in my experience.

  • @lancemarchetti8673
    @lancemarchetti8673 Рік тому

    Love the embedded SQL idea!

  • @axa993
    @axa993 Рік тому

    I am literally about to start a side project that needs exactly something like this.

  • @victorpinasarnault9135
    @victorpinasarnault9135 Рік тому

    I learn and have fun. Perfect!

  • @thomasmelak
    @thomasmelak Рік тому +1

    YES TO THE PROXIMITY HOVER TUTORIAL :)

  • @s3rverlord
    @s3rverlord Рік тому

    Loved this!

  • @kadeallen3527
    @kadeallen3527 Рік тому +1

    would love a 100 seconds of surrealDB. it looks very interesting and unique, and written in rust ofc

  • @ismaelbernard6015
    @ismaelbernard6015 Рік тому +1

    Awesome !!!!!!

  • @MattWyndham
    @MattWyndham Рік тому

    Watched this while “sharding”. Gained new perspective on the performance of my porcelain computer

  • @hakuna_matata_hakuna
    @hakuna_matata_hakuna Рік тому

    This channel is a rare gem

  • @metatronicx
    @metatronicx Рік тому

    This review is really really informative

  • @olmrgreen1904
    @olmrgreen1904 Рік тому +1

    You are a bless to the dev community

  • @louispocheron420
    @louispocheron420 Рік тому +2

    Idk if removing the flashing intro was even asked, but thank you mister for our eyes !

  • @alejandromunozdelacruz9598
    @alejandromunozdelacruz9598 Рік тому

    Thanks for your great Ideas

  • @vivekpaliwar7217
    @vivekpaliwar7217 Рік тому +1

    To be honest , I did learn something out of this .
    I am just an beginner but still fireship videos are knowledgeable :)

  • @hugonolte5276
    @hugonolte5276 Рік тому

    Awesome how in the logs of the demo we can see that the date this video went live we went from 25 to 4920 requests and growing

  • @rayusaki88
    @rayusaki88 Рік тому

    Fantastic! 👏🏻👏🏻👏🏻👏🏻👏🏻

  • @xdotli
    @xdotli Рік тому +8

    Thank you so much for this jeff… im building a little scratchpad for my team

  • @rasmuschristensen2739
    @rasmuschristensen2739 Рік тому

    You could scale on the z-axis by dividing your userbase into regions etc.

  • @knight_kazul
    @knight_kazul Рік тому +2

    I'd love to see a video about htmx.

  • @Bradmonster
    @Bradmonster Рік тому

    Great content keep it up!

  • @PauloSantosk
    @PauloSantosk Рік тому

    It is blazing fast, baby!

  • @Vantivify
    @Vantivify Рік тому +2

    Wooaa Then you definietly need to see SurrealDB !!!

  • @zlatanonkovic2424
    @zlatanonkovic2424 Рік тому +1

    Awesome find. A more in-depth video would be very interesting.

  • @supercellodude
    @supercellodude Рік тому +2

    I wonder what a difference is made in statically linking most of the object code into the one executable is made. If sqlite is embedded, then that likely points to cgo being used. However, I think sqlite can be compiled statically too; does one need to drag glibc along for the ride?

    • @dandogamer
      @dandogamer Рік тому

      sqlite can be used without cgo

  • @jonathanhoyos8191
    @jonathanhoyos8191 Рік тому

    Nice. I love go. I'll see this new tech.

  • @ChrisJaydenBeats
    @ChrisJaydenBeats Рік тому +4

    Missed an opportunity to add a reverb on the “Does it scale”

  • @jbo8307
    @jbo8307 Рік тому

    I am new at front end dev and your vids have helped so much!

  • @vhwjpzf1z0fi73a
    @vhwjpzf1z0fi73a Рік тому +2

    I love PocketBase!

  • @HotRatsAndTheStooges
    @HotRatsAndTheStooges Рік тому

    Would love to see a video on SurrealDB. Looks like an incredible new technology

  • @juannicolai8771
    @juannicolai8771 Рік тому

    Great video

  • @sxlg_32
    @sxlg_32 Рік тому +25

    Really cool, though I prefer my databases with sharting thank you.

    • @sufilevy
      @sufilevy Рік тому +7

      This made me question everything I know and wonder if it's actually sharting and not sharding. Good to know it's just a typo ÷)

  • @TheDRAGONFLITE
    @TheDRAGONFLITE Рік тому

    Nice video bruv

  • @Gelo2000origami
    @Gelo2000origami Рік тому

    Wow, I didn't know I could self-host supabase. Who would have thought I'd learn that in a video about another software

  • @andreasblondeau1682
    @andreasblondeau1682 Рік тому +1

    Amazing video ❤️ what about 8base and Qovery? 😀

  • @ezikhoyo
    @ezikhoyo Рік тому +34

    I mean, all that Go, Single Executable, Super Fast and such are very nice, but what you got me at was Svelte. Discovered Svelte months ago and fell in love. Hated Javascript/HTML/CSS/WebDev as a whole before (backend dev coming from java) and Svelte is insanity, but positive. And PocketBase sounds and seems so good (will definitely use it in my next project that'll definitely fail ;)) but than hearing it's using Svelte... not gonna lie, I had sex that felt worse than hearing that....
    I would just hope it has more clients/sdks, e.g. Java for backend and Android support (never worked with Dart).

    • @cariyaputta
      @cariyaputta Рік тому +4

      Well, the stack sounds like a dream to me. And Dart/Flutter is awesome for mobile, give it a try!

  • @mr.norris3840
    @mr.norris3840 Рік тому +2

    I’m sold.

  • @jatinnandwani6678
    @jatinnandwani6678 Рік тому

    Thanks so much

  • @maximenadeau9453
    @maximenadeau9453 Рік тому +45

    It looks a lot like Directus which is also excellent.

  • @srandista11nuda59
    @srandista11nuda59 Рік тому

    It is literally my birthsday and today i decided to start learning GO wow

  • @wissembelguidoum
    @wissembelguidoum Рік тому

    Ok you sold me on this

  • @josephgrabski3211
    @josephgrabski3211 Рік тому

    Would love a video on Uppy!

  • @rasalas91
    @rasalas91 Рік тому

    1:54 LMAO "SHARTING"
    sharding? Looooooooooool.

  • @vector8964
    @vector8964 Рік тому +3

    is it blazingly fast?

  • @alichamas63
    @alichamas63 Рік тому +2

    Finally, there are now 15 standards available.

  • @heitormbonfim
    @heitormbonfim Рік тому

    Really interesting...

  • @stevemcwin
    @stevemcwin Рік тому +5

    Hey Jeff, could you do a video explaining the Nim programming language in 100 seconds please?

    • @navicstein
      @navicstein Рік тому +1

      Nim is very underrated and I wonder why big companies didn't adopt it

  • @MisterKitKit
    @MisterKitKit Рік тому +1

    this in combination with railway is just fantastic to use !

    • @guiiimkt
      @guiiimkt Рік тому

      How did you deploy it on railway? I had to deploy via a dockerfile in a github repo. I was wondering if there is an easier way

  • @azatecas
    @azatecas Рік тому

    the fact you can self host its huge

  • @etherbeans
    @etherbeans Рік тому +1

    Go for the win!

  • @enkiimuto1041
    @enkiimuto1041 Рік тому +1

    Just mentioning that if it is running on go, scaling vertically makes perfect sense due to the multi-threading capabilities.

  • @marthasedano5791
    @marthasedano5791 Рік тому

    Nice tutorial brother sorry I need to ask you if soft can be installe on Android?

  • @uziboozy4540
    @uziboozy4540 Рік тому

    I'd love to see a video on Yugabyte.