We stopped using serverless. The results are insane.

แชร์
ฝัง

ความคิดเห็น • 464

  • @t3dotgg
    @t3dotgg  2 หลายเดือนก่อน +142

    I'm filming a video tomorrow about all of the dumbest things people have said about UploadThing. Reply with some good ones here and you might get featured ;)

    • @martinlesko1521
      @martinlesko1521 2 หลายเดือนก่อน +34

      "Typical case of things developers care about, but the customers dont"
      - some twitter user

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน +12

      @@martinlesko1521 that’s the one that inspired the video :’) The security one was too good as well

    • @Aditya_Vyas
      @Aditya_Vyas 2 หลายเดือนก่อน

      I've been using uploadthing for a long time now. I know how a S3 bucket works but honestly I got screwed up on handling the permissions of S3 initially. Uploadthing is faster, smoother to configure & clean in it's operations. I hope uploadthing becomes a norm for all the businesses. It's really good. Wishing good luck to Theo and Julias.

    • @ethanannane8783
      @ethanannane8783 2 หลายเดือนก่อน +12

      "Would rather use the much more stable and simpler Amazon S3, and does speed even matter? The user should be fine waiting a few more seconds." - Some guy in discord

    • @ethanannane8783
      @ethanannane8783 2 หลายเดือนก่อน +6

      "I mean, just self host. ¯\_(ツ)_/¯" - Another random discord guy

  • @hqcart1
    @hqcart1 2 หลายเดือนก่อน +592

    Rule No.2 when you make an App: Make it slow so that when you remove the slow logic in the code, you can brag about how fast it became.

    • @MrxDaffy
      @MrxDaffy 2 หลายเดือนก่อน +12

      What is rule No. 1?

    • @bastianventura
      @bastianventura 2 หลายเดือนก่อน +25

      I mean even if you didn't try to do that consciously, it would happen - you don't write everything perfectly the first time, specially when working on an MVP. It has to work before it can be optimized

    • @rodgetech
      @rodgetech 2 หลายเดือนก่อน

      😂

    • @MarcLucksch
      @MarcLucksch 2 หลายเดือนก่อน +17

      @@bastianventuraexactly, premature optimization is the death of projects. Make it work, then make it fast

    • @hqcart1
      @hqcart1 2 หลายเดือนก่อน +3

      @@bastianventura dude, it's not a nuclear fusion equation analysing app! it's a freakin S3 uploader! you could have it up and running in 1 prompt! but i guarantee you 90% of its code is to limit your ability to upload based on your tier... you should 1. PLAN 2. CODE 3. Optimize, i guessed he missed 1.

  • @the.monologue
    @the.monologue 2 หลายเดือนก่อน +980

    the web dev world is slowly reverting. soon we will get "we used literally zero npm packages and just vanilla JS, and our product shipped 10x faster, and the average API response time is 0.0001ms"

    • @roycohen.
      @roycohen. 2 หลายเดือนก่อน +110

      bro i'm writing on paper.

    • @chocolateimage
      @chocolateimage 2 หลายเดือนก่อน +19

      and I am here moving from vanilla JS into npm land..

    • @llllouis
      @llllouis 2 หลายเดือนก่อน +51

      who wouldve known that less is more

    • @andreilucasgoncalves1416
      @andreilucasgoncalves1416 2 หลายเดือนก่อน +11

      Curiously recently I discovered a way with vanilla navigation api and view transition to make an app like nextjs, with all features, faster and don't need build step

    • @furycorp
      @furycorp 2 หลายเดือนก่อน +3

      while the tooling has a few npm packages for sure Astro is great for that you can ship zero JS if you want, proper grid layout with a few lines of CSS (as much as I love tailwind it adds pages and pages of CSS), and the (optional) SSR features like Astro Actions are specifically designed to work without JS.

  • @philliphaydon7017
    @philliphaydon7017 2 หลายเดือนก่อน +108

    1) S3 does support resumability
    2) File sizes can be checked using `content-length-range`
    3) S3 can reject on file extension and mime types
    3) You could have ditched Lambda and done a webhook back to the server

    • @kevboutin
      @kevboutin 2 หลายเดือนก่อน +16

      Truth! I was shaking my head during so much of this.

    • @nark4837
      @nark4837 หลายเดือนก่อน +3

      very very true

    • @danielchettiar5670
      @danielchettiar5670 26 วันที่ผ่านมา +6

      Lmao expecting proper knowledge from Theo is stupid. He's a TH-cam influenza

  • @alphhs5260
    @alphhs5260 2 หลายเดือนก่อน +597

    2024 is the year of serverlesslessness

    • @TheGusMP
      @TheGusMP 2 หลายเดือนก่อน +15

      Wouldn't it be a serverfulness?

    • @bl_sonic3288
      @bl_sonic3288 2 หลายเดือนก่อน +6

      bro left vercel and realised serverless is better

    • @jonjohnson2844
      @jonjohnson2844 2 หลายเดือนก่อน +4

      And serverless was never actually serverless

    • @victoriousdev
      @victoriousdev 2 หลายเดือนก่อน +1

      Or serverfulness

    • @hanes2
      @hanes2 2 หลายเดือนก่อน +2

      Ran out of VC money 😂

  • @bholmesdev
    @bholmesdev 2 หลายเดือนก่อน +118

    Theo finally discovered servers. Massive win

  • @dzigizord6567
    @dzigizord6567 2 หลายเดือนก่อน +130

    I can make it even simpler by removing your server and just by using free and open source Uppy to upload directly to S3/R2 or wherever, it has resumability and other plugins for free too

    • @danhorus
      @danhorus 2 หลายเดือนก่อน +5

      I think the difference is that Uppy's "ingest server" can be run by you (using Tus) or by Transloadit. You still need a server if you wish to have resumability and no ghost files, though

    • @happythanos6632
      @happythanos6632 2 หลายเดือนก่อน

      ​@@danhorus Interesting

  • @theguitarslinger1
    @theguitarslinger1 2 หลายเดือนก่อน +277

    More and more, I'm coming around to the idea that all these microservices, serverless, edge networks, etc. create way more complexity than is needed for the vast majority of use cases. We devs do love to complicate things.

    • @martinlesko1521
      @martinlesko1521 2 หลายเดือนก่อน +8

      but then deploying everything yourself isnt a great idea either

    • @Bomberuscool
      @Bomberuscool 2 หลายเดือนก่อน +11

      @@martinlesko1521 why not?

    • @oPatrickVico
      @oPatrickVico 2 หลายเดือนก่อน +18

      We are just learning. We want to make things better, so we try something new. Then the flaws show up and we adapt.

    • @furycorp
      @furycorp 2 หลายเดือนก่อน +9

      I've been saying that for years! Every major outage too its basically always one of DNS or _microservices_

    • @hellowill
      @hellowill 2 หลายเดือนก่อน +9

      Resume Driven Development.
      Doesn't help AWS (in particular) sell you their shit even if it's worse for you.

  • @yt.kaiserkiwi
    @yt.kaiserkiwi 2 หลายเดือนก่อน +21

    1 to 2 years and we will have completed a full cycle. "new" web devs already "discovering" PHP again. Not long before people uploading HTML files to a nginx/Apache server again and calling it "zero dependency websites". This will be the new big thing.

  • @sleepycs4582
    @sleepycs4582 2 หลายเดือนก่อน +151

    One day we will figure out how to cut out the middleman entirely and upload straight to our own servers, which can then transcode files, upload them to S3, etc. Oh wait, we actually had that figured out in 2005...

    • @FusionHyperion
      @FusionHyperion 2 หลายเดือนก่อน +2

      I used to use TUS in C# and it was a pain in the ass, I ended up writing my own upload client and server code and the code was 10x simpler...

    • @11WicToR11
      @11WicToR11 2 หลายเดือนก่อน +8

      why would we do something faster and more logical when we can do something easy and new? Logic left the room long time ago

  • @aj8__8
    @aj8__8 2 หลายเดือนก่อน +56

    the other day Theo was working on Laravel, now he's going back to servers, tech really is evolving backwards

    • @brainites
      @brainites 2 หลายเดือนก่อน +9

      The old ways are still best.

    • @jeremymcadams7743
      @jeremymcadams7743 2 หลายเดือนก่อน +13

      ​@brainiti I don't know about best, but it helps that the old ways were resource constrained so we know how to makes things well while being lean

  • @luanlmd
    @luanlmd 2 หลายเดือนก่อน +24

    S3 has resumability. You must tweak a bunch of config and code to do it. But it works.

  • @pfqniet
    @pfqniet 2 หลายเดือนก่อน +93

    Wait until he figures out how quick and simple FTP is...

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน +25

      Wait until pfqniet realizes that this is built for people with actual users...

    • @d3stinYwOw
      @d3stinYwOw 2 หลายเดือนก่อน +59

      @@t3dotgg well, in many cases FTP was enough for enterprises, so... :D

    • @jmatya
      @jmatya 2 หลายเดือนก่อน +21

      ​@@d3stinYwOw it still is 😢 (sftp will NEVER die)

    • @nii-san5485
      @nii-san5485 2 หลายเดือนก่อน

      @@t3dotgg just steer clear of bank tech and you'll never have to find out

    • @beowulf_of_wall_st
      @beowulf_of_wall_st หลายเดือนก่อน +6

      @@t3dotgg lol you sound so goofy when you reply to people like this

  • @figloalds
    @figloalds 2 หลายเดือนก่อน +34

    Let us know about the costs difference later down the line, because serverless tends to be very expensive, but your new infrastructure uses a lot more bandwidth on the application side

  • @asiraky
    @asiraky หลายเดือนก่อน +5

    I had a debate with this bloke on his discord 2 years ago where he couldn’t fathom that I refused to use serverless for a next app due to serverless constraints and performance issues I was having. Good to see he’s finally coming around 🎉

  • @GeraldScholz
    @GeraldScholz 2 หลายเดือนก่อน +31

    next step would dont use a SaaS and setup S3 on your own

  • @damon8541
    @damon8541 2 หลายเดือนก่อน +28

    I thought the selling point was that with upload thing your data never passes through it.

  • @buondevid
    @buondevid หลายเดือนก่อน +3

    it's incredible how such nice things happen when Vercel turns off the taps 😉

  • @StephanHoyer
    @StephanHoyer 2 หลายเดือนก่อน +20

    Why I need a service for this in the first place?

    • @DerekMartell
      @DerekMartell หลายเดือนก่อน +3

      It turns out you really really don't. In fact it's probably dirtier and bad practice to use this.

  • @simonhylander7489
    @simonhylander7489 2 หลายเดือนก่อน +120

    Bro has 7 major versions in a year

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน +24

      We follow semver :)

    • @alexeydmitrievich5970
      @alexeydmitrievich5970 2 หลายเดือนก่อน +45

      ​@@t3dotgg7 breaking changes in a year? Still insane

    • @herranonym5725
      @herranonym5725 2 หลายเดือนก่อน

      @@alexeydmitrievich5970 it's a new product, of course they are gonna have a lot of breaking changes

    • @j________k
      @j________k 2 หลายเดือนก่อน

      Yikes 😬

    • @victor95pc
      @victor95pc 2 หลายเดือนก่อน +1

      Uhu, so your customers had to rewrite the entire integration 7 times in the same year? So sad for people with real projectd

  • @ricky2629
    @ricky2629 2 หลายเดือนก่อน +15

    I know the joke is that "this meeting could be an email"
    But i feel UT could just be a blog describing best practices for S3 and or a config file.
    What is the product offered?

    • @3mwithjoao
      @3mwithjoao 2 หลายเดือนก่อน +5

      😂 savage

  • @ikbo
    @ikbo 2 หลายเดือนก่อน +14

    So uploadthing is an abstraction on s3? S3 already has a dead simple API so what am I missing?

  • @pbwyt
    @pbwyt 2 หลายเดือนก่อน +26

    The most astonishing thing is how this can be a product someone pays for :) 99,99999% of is just S3.

    • @Shulkerkiste
      @Shulkerkiste หลายเดือนก่อน

      Did you watch the video?

  • @orcofnbu
    @orcofnbu 2 หลายเดือนก่อน +9

    one year later.
    "we made file reading 10x faster and lowered our cloud cost 10x by going bare metal server. "
    it i always nice to see people gets excited when they re invent the wheel

  • @nexovec
    @nexovec 2 หลายเดือนก่อน +17

    How is it even possible to upload 4MB of images in 1.5 seconds, nooo, impossible, upload so fast. I mean what are we even watching...

  • @sevos
    @sevos 2 หลายเดือนก่อน +12

    Wow this is massive reduction in complexity! I hope though one day we'll have technology advanced enough to use this thing called "Your server" to store a file. Sure hope we would be able to achieve even less arrows on the graph then...

    • @elvarght
      @elvarght หลายเดือนก่อน +3

      the worst part is, theo trash talk dhh's blog post about leaving the cloud just a year ago and he is slowly getting towards it...

  • @twilightdev
    @twilightdev 2 หลายเดือนก่อน +12

    Theo realized that he would be homeless if he continued using serverless

  • @lautarodapin
    @lautarodapin 2 หลายเดือนก่อน +3

    we will be able to use uploadthing to upload to our own google bucket? mind blowing!

  • @piff57paff
    @piff57paff 2 หลายเดือนก่อน +8

    This might be a stupid question, but what is the advantage this service provides over a library integrated on my server or front end?

    • @piff57paff
      @piff57paff หลายเดือนก่อน +1

      @@aaronevans7713 I suppose you'd only use the AWS S3 SDK in the back-end server anyway and send pre-signed URLs to the front-end, right? Otherwise you'd have to push some form of credentials to the front end. Honest question: What's the issue with a 3.2 MB (uncompressed JavaScript) client in the back-end?

  • @halfsoft
    @halfsoft 2 หลายเดือนก่อน +22

    This puts a limit on the bandwidth available as you are proxying the file uploads to s3, if you have a ton of concurrent uploads you will also need to scale your own servers.

    • @framegrace1
      @framegrace1 2 หลายเดือนก่อน +2

      Not if the "Ingress Server" is on AWS EC2. Instead of paying S3 traffic coming from internet, they are paying S3 traffic from inside AWS (Which may be even cheaper).
      Incoming traffic to the server from internet is free (Well, let's say included on the per-hour price)

    • @halfsoft
      @halfsoft 2 หลายเดือนก่อน +1

      @@framegrace1 I am not talking about pricing, but about bandwidth, S3 has distributed endpoints for content delivery and you can have 100s of people upload simulateniously at high mbps, on the other hand your one ec2 instance is limited to whatever mbps amazon has to it, and if you try to upload 4-5 big files at the same time (from different users with good bandwidth) it will bottleneck it for everyone

    • @framegrace1
      @framegrace1 2 หลายเดือนก่อน +1

      @@halfsoft If they use a normal single EC2 instance on the free tier, of course. But I guess they have someone who knows what they are doing.

    • @halfsoft
      @halfsoft 2 หลายเดือนก่อน +5

      @@framegrace1 And what is your point exactly? What i said is that to handle more concurrent users they will need to scale the number of instances they run. Then they need to use load balancing to distribute the content across the ec2 instances. And what is more you lose the advantages of the distributed infrastructure of s3 that amazon has built.

  • @SnowyPup
    @SnowyPup 2 หลายเดือนก่อน +16

    Legitimate question, but isn’t 1.5s to upload 3.2MB still really slow? I don’t know what kind of internet you have, but a 50mbps upload would’ve sent the data in 500ms, what is taking the extra second?

    • @ramonsouza9846
      @ramonsouza9846 20 วันที่ผ่านมา

      Groundwork, check the 5:58 mark.

    • @SnowyPup
      @SnowyPup 19 วันที่ผ่านมา

      @@ramonsouza9846 well, 11:15 is the *upgraded* version of the app... Sure it's faster, but I wouldn't call a turtle amazing when compared to a snail if it could have the speed of a rabbit...

  • @osbulbul
    @osbulbul 2 หลายเดือนก่อน +8

    So, if I write my own upload logic, instead of using serverless upload services (like uploadthing), my apps will be much faster?

  • @ricardoamendoeira3800
    @ricardoamendoeira3800 2 หลายเดือนก่อน +11

    1.5s to upload 4 images and a total of under 4MB? That's the fast version that has chat asking how it's possible?

    • @victor95pc
      @victor95pc 2 หลายเดือนก่อน +1

      Yeah haha, people never deal with massive uploads, nowadays SaaS is the goat

  • @MrJloa
    @MrJloa 2 หลายเดือนก่อน +7

    Anyone needs a s3 upload proxy?😮
    But why? U can just upload to s3 directly.

  • @gavipk
    @gavipk 2 หลายเดือนก่อน +5

    Its the old convenience vs performance choice in software. A tale as old as time.

  • @someone-new811
    @someone-new811 2 หลายเดือนก่อน +13

    Did you do any load/performance tests for your UT Ingest Server? Would be really nice to have a video just on that :) Also scaling of this server is an interesting topic...

  • @wwilson69
    @wwilson69 2 หลายเดือนก่อน +26

    This can be simply solved by client notifying the server once the file upload done. This is just over engineering at its finest. His reasoning was there will be ghost files if the client didn't notify the server. Solution to that is client always upload to a temp location and move the file to actual location when client notified the file has been uploaded. And you setup a s3 lifecycle to delete files based on the update date.

    • @acters124
      @acters124 2 หลายเดือนก่อน +2

      does it allow for resume and improve the time for smaller uploads? Still, they made their changes and going back to S3 isn't feasible for their marketing too. Plus they now support other types of "buckets" so I guess it isn't just S3 being inefficiently use, instead it gives them marketing leverage to be more independent and agnostic

    • @theairaccumulator7144
      @theairaccumulator7144 2 หลายเดือนก่อน +1

      Doesn't moving files cost money with S3? Not sure

    • @oSpam
      @oSpam 2 หลายเดือนก่อน

      @@theairaccumulator7144once in the region you can transfer within the region for free. It going back out the region will then cost again

    • @victor95pc
      @victor95pc 2 หลายเดือนก่อน +1

      We always did that with Rails years ago using a free gem maintained by the community not a SaaS company

    • @MrTonyFromEarth
      @MrTonyFromEarth 22 วันที่ผ่านมา +1

      > This can be simply solved by client notifying the server once the file upload done.
      Rule #1 of web security:
      Never believe the client.

  • @igortalic2021
    @igortalic2021 2 หลายเดือนก่อน +2

    Hoped for more info about the new server ( why no serverless, what's the tech, etc. ), but this looks amazing and makes sense now 😊 Great video 😊

  • @gadgetboyplaysmc
    @gadgetboyplaysmc 2 หลายเดือนก่อน +7

    Sounds like serverless slop is circling back. Also Just uploading directly to S3 is theoretically still faster.

  • @michal7410
    @michal7410 2 หลายเดือนก่อน +42

    So the product is a S3 proxy server? Alright

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน +17

      Technically speaking, TH-cam is also just a proxy server on top of object storage ;)

    • @j________k
      @j________k 2 หลายเดือนก่อน

      Technically speaking that's only a part of their API

    • @hemanthaugust7217
      @hemanthaugust7217 2 หลายเดือนก่อน +6

      ​@@t3dotgg But YT manages their object storage :) I’m genuinely surprised there’s a market for what your company is offering-it’s something an above-average developer could probably knock out in a day as part of their sprint. That said, it takes real business savvy to identify a need and turn it into a viable product with customers. No criticism of your product at all-it’s more of an eye-opener for those of us in tech about how smart business moves can make all the difference.

    • @victor95pc
      @victor95pc 2 หลายเดือนก่อน

      ​​@@hemanthaugust7217true, really amazing the javacripts guys can complicated everything, any reasonable back end dev finish that a single day with a lib

    • @AlexbongoKurban
      @AlexbongoKurban หลายเดือนก่อน +2

      Everything is an API over a storage

  • @baksagimm5890
    @baksagimm5890 หลายเดือนก่อน +1

    hmm... i dont get it. why not just request s3 upload permission from the client and upload directly to s3? bit confused...

  • @arushsharma8383
    @arushsharma8383 2 หลายเดือนก่อน +1

    Interesting to see you share the thought process behind everything, helps to learn :)

  • @wicktorinox6942
    @wicktorinox6942 2 หลายเดือนก่อน +4

    What I have learned, when it comes to IT.. the absurd amount of work is usually necessary due to initial incompetence...

  • @foxcirc
    @foxcirc 2 หลายเดือนก่อน +4

    uploading should really just be a single chunked transfer http request with a single response. the server can easily athenticate that and save the partial data to get resumability, and more

  • @dsherc
    @dsherc หลายเดือนก่อน

    Thanks @dsherc, this is insane.
    Just side note: this could be a bit misleading:
    I see that you mentioned we can’t check file size of filed being uploaded.
    But even if we can’t dynamically check file size while uploading, we can limit the max file size via adding the size cap to the pre-signed post.
    Essentially this is what i did: on upload requests we ask for the file size, we return the presigned url with file size added to the signature as cap.

  • @abc-nw3hi
    @abc-nw3hi หลายเดือนก่อน +2

    I know this will sound smug and I am sorry, but: 100% faster should be 0 seconds. So 377% faster and 509% faster mentioned at 3:10 makes no sense, what do those numbers mean? How did you calculate them?

    • @ramonsouza9846
      @ramonsouza9846 20 วันที่ผ่านมา

      I believe he meant something like:
      100% = two times as performant -> final time x/2
      377% = three dot 77 times as performant -> final time x/3.77
      If it took 5 seconds and now I takes me 1 second I would say my thingy is doing 500% better, because I can do one thingy five times in the time the old thingy took to do one

  • @lupf5689
    @lupf5689 หลายเดือนก่อน +1

    Impressive. But wouldn't it be even faster, if we remove some more requests and roll the "Your Server", "UT Ingest Server" and "S3" components into a single thing managing uploaded files? Something that kind of works as a common base for data?

  • @jyorko721
    @jyorko721 2 หลายเดือนก่อน +1

    You've truly mastered the art of making things simple (or should I say, too simple) while monetizing the convenience. Well played. 👏

  • @dancarter5595
    @dancarter5595 2 หลายเดือนก่อน +6

    Oh cool, now my third party upload service has access to all the data I store. Neat.

    • @danhorus
      @danhorus 2 หลายเดือนก่อน +1

      They already had access before, no? It's their S3 bucket

    • @dancarter5595
      @dancarter5595 2 หลายเดือนก่อน +2

      @@danhorus oh right, I got the impression it was clients own authentication and direct upload to S3. I obviously don't understand what this solution provides.

    • @Oscarvedo
      @Oscarvedo 2 หลายเดือนก่อน

      @@dancarter5595 An easier way to upload things? They also add some code to the process so you don't need to do it yourself. I mean it's like using Vercel so you don't have to set your infra.

    • @Alaestr
      @Alaestr 2 หลายเดือนก่อน +4

      Yeah, that's the thing here that sort of defeats using it for anything production that is user-data sensitive. In EU at least, cause the us ofc doesn't care for user data. Because you are going to be in breach of GDPR. Since you are the administrator of the data, you cannot share it with 3rd parties without consent.

  • @omarsalam8909
    @omarsalam8909 หลายเดือนก่อน +1

    I think you are ignoring a huge security loophole in your logic. If the browser gets the presigned URL, then they can just use it directly without having to go through your ingest server, thus ending up with ghost files anyways

  • @7heMech
    @7heMech หลายเดือนก่อน +1

    But now your server handles all traffic which cloud be a problem if it doesn't hold well.

  • @Bleibruk
    @Bleibruk 2 หลายเดือนก่อน

    That upgrade sounds as the logical path. Amazing optimization and simplification from user perspective!

  • @jackfrosch
    @jackfrosch 2 หลายเดือนก่อน +1

    Fwiw, Lambdas are not the only way to have serveless compute in AWS. ECS Fargate also offers the benefits of serverless (scale to zero, pay for what you use, etc) without the limitations of Lambda.

  • @wlockuz4467
    @wlockuz4467 2 หลายเดือนก่อน +1

    With the amount of time webdev goes full circle I am surprised we never get dizzy.

  • @codebyagon
    @codebyagon 2 หลายเดือนก่อน +15

    Serverless has become a huge pain, I'll definitely not use it for a new project.

    • @m12652
      @m12652 2 หลายเดือนก่อน +3

      It was just another pointless sales pitch...

    • @kevboutin
      @kevboutin 2 หลายเดือนก่อน +1

      This is such a ridiculous comment. I can provide dozens of real examples where serverless has transformed team productivity.

    • @m12652
      @m12652 2 หลายเดือนก่อน

      @@kevboutin everything is ok in the right context. Personally I tend to shy away from anything that names itself something that it clearly isn't. There are always servers...

    • @kevboutin
      @kevboutin หลายเดือนก่อน

      @@m12652 so the name of something is your problem? The name is not a problem for me if it solves problems and increases productivity for less money. Priorities always vary I suppose. 🤷‍♀

  • @benheidemann3836
    @benheidemann3836 หลายเดือนก่อน +1

    Hey @t3dotgg, curios to know if/how you have mitigated against slowloris DoS attacks with the new architecture?

  • @thejackimonster9689
    @thejackimonster9689 หลายเดือนก่อน +1

    So the upload/forward from the UT ingest server to the "S3" is now not validated. Which means if the connection between those two fails for some reason at any point, you get invalid results. That is a huge cost.
    In theory even if you had validation, the ingest server would need to store the files until the actual upload/forward completes. Yes, even if you practically pipe the upload directly between two sockets.
    Additionally you keep connections alive (from the file upload to the ingest server) while waiting for the response of the external server. That's not good. If these servers take longer than expected to respond, your ingest server may stack a bunch of inactive sockets which it keeps open for no other reason than waiting. You essentially now have an external bottleneck for your hosted server, costing you resources.
    Also as you said by yourself. The difference is much higher with smaller files which just means that your overhead from different requests got reduced. Because of course less requests means, less added latency. The percentages are kind of misleading. You would actually need a graph that shows difference depending on file size.

  • @teamgartz-motorsports6881
    @teamgartz-motorsports6881 หลายเดือนก่อน

    I love it. I had implemented the same structure you had in the past and I was planing on creating an ingest to propagate super similar to your architecture. That’s a great validation of concept.
    I would love to use your project but I run all in GRPC to traffic the data.

  • @MickenCZProfi
    @MickenCZProfi 2 หลายเดือนก่อน +1

    It's pretty cool you naturally use a sequential diagram to explain it without even thinking about it or at least mentioning it.

  • @TomDoesTech
    @TomDoesTech หลายเดือนก่อน

    The bring your own bucket is really important. We have contracts at work that specify we have to story customer data in Australia, so if we can't control where it's stored, we can't use the service.

  • @jolex_nerd8132
    @jolex_nerd8132 16 วันที่ผ่านมา

    "just forward the packet bro, don't process it" *makes app 5x faster*

  • @maervo4179
    @maervo4179 2 หลายเดือนก่อน +2

    Well that is nothing surprising, everyone should know that each serverless our cloud computation application always has an overhead. It is like saying, the new built file upload in rust is 10x faster than in javascript lol

  • @JohnSmith-gu9gl
    @JohnSmith-gu9gl 2 หลายเดือนก่อน +1

    I'd love to see Theo work on some Remix projects. Remix offers a great deal of built-in type safety, eliminating the need for extra implementation effort.

  • @charlesterrell2603
    @charlesterrell2603 หลายเดือนก่อน +1

    Did you account for filesystem caching before/after in your demo? I assume so, given the breadth of architecture changes you described. But caching recently used files in RAM (as modern operating systems tend to do) can make a very noticeable difference in responsiveness. Especially if the files come from spinning disks, network storage, RAID with parity, SATA SSDs... Pretty much anything but NVME.
    Any kind of A/B performance testing where caching is a possibility requires either pre-caching all inputs (run it several times until the numbers look stable) or somehow guaranteeing that the inputs will never be cached. I'm sure you already knew that. But people often forget that it applies to their own demos.

  • @bules12
    @bules12 2 หลายเดือนก่อน +1

    If theo makes this fully free (100% self hosted for everyone) I will be very happy
    It would be no longer a service tho
    But could offer premium capabilities for companies

  • @nomadtrails
    @nomadtrails 2 หลายเดือนก่อน +3

    Who is this for? Why am I able to just do uploads to s3 in all my apps with aws apis/sdks without 3rd party packages to help, let alone a 3rd party saas service? Honest question. I just don't get why this exists or would be popular beyond maybe a brand new dev following a tutorial where s3 is just out of scope... I'm either too dumb to see where the value is or too smart to depend on a saas to do what the aws sdks do for free.

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน +1

      > Says "Honest question" then immediately shits on the people using it by calling them "brand new devs"
      Assuming this is actually honest, maybe check out my other videos about UploadThing and S3? tl;dr - if you think S3 is easy to set up, your implementation is FULL of security issues and probably offers a bad user experience too
      Most real companies with object storage have built their own UploadThing-like solution, but we're a generic that anyone can use at any scale :)

    • @nomadtrails
      @nomadtrails 2 หลายเดือนก่อน +1

      Even these pitches at the end "now you can bring your own bucket!" and "now you can run our server directly in your infra!" seem baffling to me. We already have our own buckets and our own infrastructure simply by using s3 directly. How are those selling points of introducing a saas between us and s3? Again, honest question. I have never felt more out of touch, and can't tell if thats a good or a bad thing hahaha.

  • @macchiato_1881
    @macchiato_1881 2 หลายเดือนก่อน +22

    You mean to say, removing a thing which causes you thing to be slow makes your thing go fast? 🤯🤯🤯🤯🤯🤯

    • @sanjaux
      @sanjaux 2 หลายเดือนก่อน +2

      This is just meant to be educational to show what things can be slow and how to resolve them for unexperienced developers who haven't reached or considered these steps on their journey.

    • @macchiato_1881
      @macchiato_1881 2 หลายเดือนก่อน +2

      @@sanjaux it's a joke. Jesus karen

    • @sanjaux
      @sanjaux 2 หลายเดือนก่อน +2

      @@macchiato_1881 That was my 2nd guess but I was seeing a lot of comments in bad faith so I really couldn't tell without any tone indicators lol. In a way my reply speaks to them too

    • @macchiato_1881
      @macchiato_1881 2 หลายเดือนก่อน +1

      @@sanjaux why do you need tone indicators? People like you need to handle negative comments better. I get not all criticism is good. But are you just going to whine at every valid negative criticism or joke you get?

    • @sanjaux
      @sanjaux 2 หลายเดือนก่อน +2

      ​@@macchiato_1881 Well the actual jokes no I'd ignore those, but criticism is best resolved through talking it out. Since this isn't criticism, more signs would have helped differentiate your joke from something actually worth discussing. Handle them better? I'm just trying to understand the thought process behind some comments (the serious ones)

  • @chyldstudios
    @chyldstudios 2 หลายเดือนก่อน +3

    BYOB: Bring Your Own Bucket

  • @omri9325
    @omri9325 2 หลายเดือนก่อน +2

    Time to remove all the sleeps in the code

  • @jose6183
    @jose6183 2 หลายเดือนก่อน

    Kudos Theo! And thank you for driving us away from serverless!

  • @flipperiflop
    @flipperiflop 2 หลายเดือนก่อน

    Great success! It's also quite cute that, even after so many live-streams and videos that you have done, you end up sounding a bit like a school kid presenting their project the first-time in front of the class, when you are talking about something that you are really proud of.

  • @philipaarseth
    @philipaarseth 2 หลายเดือนก่อน +2

    Are bandwidth costs negligible now? If not this seems much more expensive for UT to scale.

  • @pencilcheck
    @pencilcheck 2 หลายเดือนก่อน +1

    this is similar to investment, companies need to say something different, since most of them aren't innovative, instead they just go back and forth between things we have done in the past so people will invest in them.

  • @collinoly
    @collinoly 2 หลายเดือนก่อน +2

    Up next: I went back to client side react

  • @Vipyoshii
    @Vipyoshii 2 หลายเดือนก่อน +4

    14:50 No offense but weird to round one up and the other down, when both are 733 ms.
    3733 ms -> almost 4 seconds
    733 ms -> almost half a second

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน +1

      If the amount is greater than 1, it's natural to round to a whole number :)

    • @Winnetou17
      @Winnetou17 2 หลายเดือนก่อน +2

      Yeah, the double standard rouding is a bit cringe. But you can tell he's really happy, and with those numbers, I'd be happy too.

  • @raspy_on_osu
    @raspy_on_osu 2 หลายเดือนก่อน +3

    This just in. Serverless proven to be a buzzword to keep you purchasing overpriced subscription model technology. In other news, paint is wet when applied.

    • @kevboutin
      @kevboutin 2 หลายเดือนก่อน

      This statement is probably coming from someone who has never built any applications professionally using serverless solutions. It's a paradigm shift and one many people haven't wrapped their heads around yet. People fear what they do not understand and despise things that require LOTS of real world work to become proficient in.

    • @johnblomberg389
      @johnblomberg389 หลายเดือนก่อน

      C'mon bro, next you are gonna try to tell me water is wet or something?

  • @d3stinYwOw
    @d3stinYwOw 2 หลายเดือนก่อน

    Huge improvements! It's great that you feel ready to tackle enterprises, but I can assure you - it's not easy, not at all. Data privacy standards are more looked at than ever, so I'd first go for SOC, HIPAA and EU variants of those to have certificates you can shield yourself against quick-shot enterprise questions :)

  • @WillDelish
    @WillDelish 2 หลายเดือนก่อน

    As someone who works with AWS for 3rd party security reviews, those enterprise features sound nice. Still, there’s a LOT of config settings that AWS requires (that are not always cheap and is constantly changing) to be meet the bar.
    Still, this is very cool infra design change and breakdown. I really appreciate this, folks who don’t work with AWS/cloud don’t understand.

    • @doc8527
      @doc8527 2 หลายเดือนก่อน +1

      I remember the whole serverless is designed to be short time, lightweight, infrequent requests for particular functionalities of your application. Hence the server doesn't need to run all the time and save your cost, and you don't need to maintaining the server.
      Lately, it was abused massively for all kinds of heavy tasks, which should belong to your own server. And people complain the serverless.
      The comment section is full of "devs" who say serverless is bad or host your own server is bad. Joke about the web dev, without understanding of those subtle details.
      The current generation has huge skill issues imo.

    • @WillDelish
      @WillDelish 2 หลายเดือนก่อน

      @@doc8527 Yeah, I get to witness some real nutball spaghetti lambda design. If you need to mange over 50+ lambdas for your backend plus have one for every single API, troubleshooting & DevOps becomes a nightmare. Gotta watch every lambda metric, have so many cloudwatch logs etc. Thats where Vercel like companies do serverless a little better, they're taking on more of that burden, but its priiicy! I'd pay for it in a heart beat to save me time though.
      Docker containers are where its at. Fargate/ECS that thing. Even EC2 management has improved a lot with CDK + SSM scripts.

  • @mortent877
    @mortent877 2 หลายเดือนก่อน +1

    Aka. We started using servers, the results are insane!

  • @patrickwerz4608
    @patrickwerz4608 2 หลายเดือนก่อน +3

    You improved your product by eliminating network hops as you should do. But the main component (s3) is still server less.

    • @patrickwerz4608
      @patrickwerz4608 2 หลายเดือนก่อน +1

      How do you host your ingestion server? Are you running your own k8s cluster?

  • @wicktorinox6942
    @wicktorinox6942 2 หลายเดือนก่อน +1

    hang on, are you basically getting the files from the clients now? Will you have the same bandwidth as the direct S3? Will you pay for the ingress traffic?

  • @Serizon_
    @Serizon_ หลายเดือนก่อน +1

    I think theo should ditch this project.
    A lot of theo fans can gather the pitch fork at me , but just read other comments (ftp , you can directly do this in s3 , the point of uploadthing was that the data wasn't passing through their server , uppy exists
    yeah , don't use uploadthing

    • @neofox2526
      @neofox2526 หลายเดือนก่อน

      I want to do audio file uploads through an api endpoint to s3 should I keep it as SQS infront of Lambda with maximum timeout or make a microservice

  • @radioskpup4784
    @radioskpup4784 2 หลายเดือนก่อน

    When we trigger S3 uploads/copies through various means, rather than having our API state update the front end we allow our client to hit a headObject presigned url to assert that the object has successfully landed. Requires some ugly polling but it’s cheap polling

  • @_unknown_guy
    @_unknown_guy 2 หลายเดือนก่อน +1

    Nah, I think I will stick with Rails Active Storage

  • @F肯尼
    @F肯尼 2 หลายเดือนก่อน

    Yes, frontend life is better when I can literally write everything in a single HTML file. Vanilla JavaScript + sometimes Web Components for the win. I'm a Helix IDE user so keep that in mind since that may also influence why I don't mind making web apps in that way.

  • @postmodernist1848
    @postmodernist1848 2 หลายเดือนก่อน +1

    Right after the Vercel sponsorship ended we get this..?

  • @columkelly99
    @columkelly99 หลายเดือนก่อน +1

    I'm doing a beginner's web dev course that has a file storage project. I ran into the latency issue with this architecture on day one. Originally I tried:
    1. Client sends upload request to my server.
    2. Server requests signed URL from Supabase.
    3. Supabase responds with URL.
    4. Server sends URL to client.
    5. Client uploads and notifies server when it's done. 6. Server updates db and sends success response.
    I can't center a div but I could tell this was horrifically slow! I noticed immediately and switched to streaming through my server to Supabase which was 2-3x faster for small files.

  • @drdeus-u8s
    @drdeus-u8s 2 หลายเดือนก่อน +12

    Serverless was a mistake, you’ve improved everything by just going the traditional route

    • @theairaccumulator7144
      @theairaccumulator7144 2 หลายเดือนก่อน +9

      Why do they call it serverless when there's still a server running it but it just has a lot of bloat as well?

    • @drdeus-u8s
      @drdeus-u8s 2 หลายเดือนก่อน

      @@theairaccumulator7144 haha they should be called pay per use bloat servers

    • @naughtiousmaximus7853
      @naughtiousmaximus7853 2 หลายเดือนก่อน

      Marketing ​@@theairaccumulator7144

    • @SpicyPotatoes
      @SpicyPotatoes 2 หลายเดือนก่อน

      ​@@theairaccumulator7144It's marketing. Just like the cloud and hypervisor. It sounds more cool than using someone else's server or dividing your computer's resources.

    • @kevboutin
      @kevboutin 2 หลายเดือนก่อน

      @@theairaccumulator7144 Because the developer doesn't need to worry about infrastructure (patching, load balancing, scaling, monitoring solutions). Imagine your services grow exponentially and your bare metal servers or virtual compute costs shoot through the roof because you cannot stay ahead of the usage spikes. If you know what you are doing with serverless, you will easily solve all of these problems/challenges.

  • @joe_xyz
    @joe_xyz 2 หลายเดือนก่อน

    Really cool stuff! Now that the infra is more flexible, something I'd love to see in UploadThing in the future is Cloudinary-like image transformations. UT would become a viable Cloudinary competitor with that! Could also be part of PicThing if you plan on doing more with it than just background removal :)

    • @t3dotgg
      @t3dotgg  2 หลายเดือนก่อน

      You should take a look at how PicThing is handling images ;)

  • @rikschaaf
    @rikschaaf 2 หลายเดือนก่อน +2

    What would the pricing structure be like for BYOB?

  • @xujok
    @xujok 2 หลายเดือนก่อน

    Now it's faster - but it also cost more money - you need to run server, you need to pay for the bandwidth and so on. So it's a trade off - you will pay more for your infra - you will get better user experience. It's the same as with Auth, you can use 3rd party auth system, which saves you ton of work but you can't control the user experience to the very details.

  • @rns10
    @rns10 2 หลายเดือนก่อน

    Infra matters more than what frontend/client could ever achieve.
    Because on frontend you can only show the loader nothing else because client has limited internet bandwidth.

  • @harryman0412
    @harryman0412 2 หลายเดือนก่อน +1

    But what did you use to build your ingest server?!?! typescript? .NET? Go? Rust? Something else??? I wanna know the details about your serverFULL architecture!!! There's no details in your blog post either about what you used to build your ingest server in, how it's hosted, etc. I'm extremely interested in what you landed on for those tech choices.

  • @RedPsyched
    @RedPsyched 2 หลายเดือนก่อน +1

    I wonder how pricing would work with "bring your own bucket". But we're very excited for it since our organisation has rules on what geolocation a bucket can exist in. And even just using local infrastructure.

    • @Itsneil17
      @Itsneil17 2 หลายเดือนก่อน

      Just make your own infra/software for this. Waste of money spending it on upload thing

    • @Qrzychu92
      @Qrzychu92 2 หลายเดือนก่อน +1

      @@Itsneil17 you know that this is like saying "just make you WordPress"? I guess Upload Thing is simpler, but getting right is really hard. That's why we use abstractions that hide the real complexity

    • @RedPsyched
      @RedPsyched 2 หลายเดือนก่อน

      @@Itsneil17 making our own infra/software also costs money.

    • @Itsneil17
      @Itsneil17 2 หลายเดือนก่อน

      @@RedPsyched I've made my own infra for stuff like this. Yes it wasn't cheap at the start but now it costs less than using 3rd party

    • @Itsneil17
      @Itsneil17 2 หลายเดือนก่อน

      @@Qrzychu92 yes infact new discovery that not everyone uses wp. People use frameworks not a drag and drop editor for building websites.

  • @guard13007
    @guard13007 2 หลายเดือนก่อน

    It's kind of sad that resumable file transfer is a big feature now, because I remember it being a standard thing when I was a kid. It was lost somewhere along the way, and I'm glad to see someone is paying attention.

    • @guard13007
      @guard13007 2 หลายเดือนก่อน

      S3 doesn't support resuming!? Jesus Christ. This is exactly what I mean.

  • @Metruzanca
    @Metruzanca 2 หลายเดือนก่อน +1

    Dropping serverless improved performance? Surprised pikachu. /s

  • @jolex_nerd8132
    @jolex_nerd8132 16 วันที่ผ่านมา

    I see the upload to the bucket from the client browser goes through te ingest server and forwards to the bucket hosting server.
    here is an idea for custom file scanning/checking:
    can there be a future where a a website can host their own "approval server" that receives a connection from the ingest server,
    and "listens in" on the file as it is being uploaded to the bucket server and gives a go/no back to the ingest server?
    it doesn't seem like it slows down the upload (as it is being scanned as it is uploaded), takes barely any time to get the green light,
    and if it gets rejected the ingest server just tells the bucket server to discard the upload and returns an error to the client browser.
    with how fast "just forward the packet" seems to be, it is mostly up to the approval server to respond quick enough.
    headers are always at the start and are the most checked thing to scan on,
    so by the time the file uploaded the headers has been processed and a green light has been given to ingest.
    Just an idea. let me know what you think.

  • @WiseWeeabo
    @WiseWeeabo 2 หลายเดือนก่อน

    Serverless as a concept is really cool, and I hope that the cost to performance ratio becomes better..

  • @ebert7955
    @ebert7955 หลายเดือนก่อน

    I thought it was gonna be like "not serverless anymore but ... edge"
    bring your own bucket + file filtering seems intersting

  • @vladimirkrasulya8693
    @vladimirkrasulya8693 2 หลายเดือนก่อน +2

    1.3 seconds to upload 5mb doesn’t sounds quick, maybe I’m missing something but in 2024 this is awfully slow result