I Fixed File Uploading.

Поделиться
HTML-код
  • Опубликовано: 5 ноя 2024

Комментарии • 227

  • @minikame2272
    @minikame2272 Год назад +291

    Mate, you've got something special here. I really hope it flourishes; in the meantime, imma press F to pay my respects to your wallet while you figure the numbers out.

  • @Rico-cp4xp
    @Rico-cp4xp Год назад +54

    You're amazing man. Can't tell you how much I appreciate the content you make. Not only are you helping people out of the Junior Dev world, but you're building amazing tools. Keep doing you Theo. ❤

  • @serkanyersen
    @serkanyersen Год назад +49

    Pretty amazing, congrats!! I suggest implementing an access control layer on this. it's very convenient to see what was uploaded directly from the website, however, all uploads from all users will be open to everyone who has access to this dashboard. If you are a small to mid size start-up, "who accessed to what" should be auditable by the company and devs using the dashboard should provide a business reason if they need to access an upload. you don't want your devs to browse through user uploads just because they can. Sane privacy defaults will make a huge difference, because I assume this product might become a favorite for lots of upcoming start-ups.

  • @TJMcCarty
    @TJMcCarty Год назад +1

    This really is awesome! I just spent 4 hours setting up AWS S3 and realized I wasn't close to being finished. I was able to get uploadthing to work within 45 minutes.

  • @moishinetzer
    @moishinetzer Год назад +58

    Theo I've got to hand it to you - on the day of Vercel blob announcement, BOLD 🔥

    • @t3dotgg
      @t3dotgg  Год назад +18

      I’m nothing if not bold ;)

    • @j0hannes5
      @j0hannes5 Год назад +1

      Yes, piggybacking is very bold!

  • @ChristopherFlodin
    @ChristopherFlodin Год назад +4

    Love this kind of product marketing when it's just 100% authentic "we made something awesome, you could probably benefit from this". I'm very excited to use this once it gets out, keep it up Theo and team! ❤

  • @KiGeprak
    @KiGeprak 2 месяца назад +2

    Came from the picthing video. Woooow.

  • @LaviGaming
    @LaviGaming Год назад +11

    I wonder if it makes sense to add a plugin/provider architecture here where you can choose what backend you want to actually store your data whether it's S3, your own hosted server, etc.

    • @ashishkumawat6110
      @ashishkumawat6110 9 месяцев назад

      Absolutely! that'll make more sense specially in production...

  • @pedroalonsoms
    @pedroalonsoms Год назад +2

    Congrats for launching this product! Hope you do well 🎉

  • @Disorrder
    @Disorrder Год назад +4

    There are absolutely no problems to upload on self-hosted server, s3, another services. There is a problem, react community have no good customisable component to handle everything. Multiple uploads, preview, progress bars, etc. I have to repeat over and over in every single project or use uploadcare the only thing.
    You’re trying to solve a problem which not exists.

    • @karlapple7275
      @karlapple7275 Год назад

      Share your repo.
      I’m trying to upload multiple form images

    • @RajikaImalNg
      @RajikaImalNg Год назад

      Exactly my thoughts

    • @blasttrash
      @blasttrash 3 месяца назад

      uploadcare vs uploadthing: which is better?

  • @diego1552
    @diego1552 Год назад +10

    Thanks for using your platform and expertise to help so many devs out. As a junior dev myself I’m still trying to figure everything out. And so far your channel has been incredibly useful.

  • @flamakespark
    @flamakespark Год назад +2

    In terms of upload state management and, of course, typesafety, this will greatly improve DX for all kind of projects, and I'm so excited to try this out!
    It'd be also great to have some real-time state tracking during the upload phase, for instance, the % and ETA of uploaded file. Also the feature of upload recovery after connection reset would be really handy!

  • @MARKOTHEDEV
    @MARKOTHEDEV Год назад +1

    theo keeps me up... and makes it clear building stuff is fun am coming that all am going to say for now. thanks!

  • @cesaro.araujo6477
    @cesaro.araujo6477 Год назад

    That's just SUPERB. WONDERFUL. Amazingly AWESOME. Dude, I'm gonna use it right now to make my photography blog. I hope you figure the numbers out soon tho

  • @method_actor
    @method_actor Год назад +9

    I appreciate all your great content and I hope your company flourishes. That said, I feel like this is better realized as a library where you can plug in any storage provider rather than an actual product

    • @t3dotgg
      @t3dotgg  Год назад +5

      Most of the core functionality isn't possible without owning the infra. We had to build a lot of obnoxious integrations for core functionality like `onUploadComplete` to work
      That said - there may be some OSS in our future 🤐

  • @yzz9833
    @yzz9833 Год назад

    this is wild, was just getting to implementing user uploads! been using your stack as well theo, best dev experience i've had

  • @VincentUchennaOk
    @VincentUchennaOk Год назад +2

    Man, you are good at what you do! Kudos!!

  • @theisoj
    @theisoj Год назад

    Thanks Theo! 👍
    I will be showcasing this in my other channel.

  • @henil0604
    @henil0604 Год назад

    Great timing! i was recently finding a service that make it easy to upload and store files. I found imagekit last week but after announcement of UploadThing, Im surely gonna use it.

  • @losi47
    @losi47 Год назад

    2 days ago I was googling the best way to store user uploaded images in a nextjs site, great timing theo

  • @akosbalint3485
    @akosbalint3485 Год назад

    Nice and generous service, thank you.
    Only the possibility of directories, that I am missing.

  • @froxx93
    @froxx93 Год назад +3

    This is giving me goosebumps. Setting up a file server always was a pain point for me, and this is just so handy to use.
    Big thanks to you Theo, and all the other people helping make web development so much easier

  • @northdakota6
    @northdakota6 Год назад +1

    No you didn't. You reinvent the wheel

  • @crowlsyong
    @crowlsyong Год назад

    I friggin love what you are doin right now with this and with t3. amazing.

  • @josefelbez5691
    @josefelbez5691 Год назад +1

    Hey Theo, thanks four your amazing job and content as always.
    It would be great if, instead of redirecting to your documentation page in the same tab, you could open a new tab. This way, users wouldn't have to go back to the panel if they need to access the documentation for some reason.
    Wish you the best!

  • @wlockuz4467
    @wlockuz4467 Год назад

    This looks good for a starter product. The biggest missing piece I notice however is access control. File upload is one problem but who, why and when someone can acces the file is another.

  • @LukePighetti
    @LukePighetti Год назад +1

    Acquired by Vercel for $20m in 3... 2...

  • @codemonument
    @codemonument Год назад +2

    This thing looks a
    Amazing, but I've one request: Do you have an architecture diagram to answer questions like: What runs in my app and what runs on your server? Basically a diagram about the "Lifecycle" of a file upload?
    I'm not really deep in the next ecosystem, so I've not enough info to definitively understand the parts here.

    • @t3dotgg
      @t3dotgg  Год назад +3

      I made this diagram and I have not published it. This comment has inspired me to consider doing that

  • @faizanahmed9304
    @faizanahmed9304 Год назад +1

    Thumbnail is hilarious 😂. Salute to editor

  • @kf5268
    @kf5268 Год назад

    So... What about the details?
    Where the data are actually stored, what is the object size limit, what about reliability?
    Because it's nice that it's easy to add file handling to application, but there are still the boring things which are important for ie. law compliance

  • @cody_codes_youtube
    @cody_codes_youtube Год назад +9

    Very cool. Clean demo and straight to the content!

  • @manoku9421
    @manoku9421 Год назад +2

    I wonder if this covers secured GET endpoints that requires an access token to access (like presigned URLs from S3)*

  • @excalibur2417
    @excalibur2417 Год назад

    Image optimization would make this a 10/10, good job.

  • @ilijanl
    @ilijanl Год назад +2

    First of all, the callback webhook approach is a very good design choice especially if you can guarantee exactly once delivery (at least at sdk level?). However, looking at the upload code it is really in early phase and probably not suited for large files (JSON.stringify({files, ...})) or even stable. Additional mechanism like resuming the upload are just not there.

  • @kaynkayn9870
    @kaynkayn9870 Год назад

    I was looking for something like this an hour ago and got this in my recommended.

  • @henriquematias1986
    @henriquematias1986 Год назад +10

    Would be great to provide Dropbox / Google Drive / Etcs / integration so if users have their files on the cloud they don't have to use their own bandwidth!

    • @Disorrder
      @Disorrder Год назад +1

      And all other uploadcare features lmao

  • @coreyarch123
    @coreyarch123 Год назад

    Amazing. I can't wait to use it for my new app.

  • @cowslaw
    @cowslaw Год назад +11

    AWS killer? Where are you guys storing the uploaded files? lol

  • @thund3rd3v72
    @thund3rd3v72 Год назад

    THANKS, I was just looking for this you are great!!

  • @joelayoub2774
    @joelayoub2774 Год назад +1

    looking forward to trying this tonight. thanks

  • @christianohlzon
    @christianohlzon Год назад +2

    How does delivery work? Is it all stored in the same place?

  • @SpaceChicken
    @SpaceChicken Год назад +5

    Theo doing Theo things, making cool stuff. Thanks for this, man. Between this and Vercel Blob, it looks like we can continue to focus on the things that make our apps cool.

  • @paulmurray3244
    @paulmurray3244 Год назад

    Wow, awesome. Looking forward to trying it soon.

  • @palyanytsia
    @palyanytsia Год назад

    That would be super handy, not only for my pet projects, but client apps as well, thank you so much!

  • @Mariiius53
    @Mariiius53 Год назад +4

    But what about the price? One of the advantages of the S3 is its low price.
    It could also be interesting to host it yourself, if it is not planned.

    • @RajikaImalNg
      @RajikaImalNg Год назад

      He just reinvented S3, change my mind 🙂

    • @Mariiius53
      @Mariiius53 Год назад

      @@RajikaImalNg Totally, just, as I think he mentioned, he made it more convenient in terms of API and UI.
      More recently, Vercel Blob was announced, so yeah...

  • @riolly
    @riolly Год назад

    I thought it was vercel/blob, but it's something much better. Proud to be part of Theo's community

  • @m1thrandir
    @m1thrandir Год назад +1

    The dashboard looks very inspired by Clerk

  • @thegrumpydeveloper
    @thegrumpydeveloper Год назад +1

    What keyrolling built in? This feature alone makes me happy.

  • @quentinlintz
    @quentinlintz Год назад

    Heavily inspired by Clerk's dashboard? Very nice!

  • @llblumire
    @llblumire Год назад +1

    Is this next/react only or is there a vanilla js + rest way to do it?

  • @RachidBoudjelida
    @RachidBoudjelida Год назад +2

    How is this better than S3 ? I am not seeing it.

  • @jacoblockwood4034
    @jacoblockwood4034 Год назад

    Thanks for finally making file uploads easy

  • @KrishnaGupta-cv7ix
    @KrishnaGupta-cv7ix Год назад

    Thanks for everything ❤

  • @xDELTAGIx
    @xDELTAGIx Год назад

    I think a useful feature for video would be a encoding option in the future. And for now a needed feature is video length limit option. Most places charge by the minute for video file encoding so it’s useful to not have a 96 hour live stream uploaded

    • @everyhandletaken
      @everyhandletaken Год назад

      96 hour live stream.. lol
      and yes, great suggestion!

  • @sm6758
    @sm6758 Год назад

    It would be good to have the documentation for Javascript as well. Also, is the styling customizable?

  • @josemfcheo
    @josemfcheo Год назад

    Great job man, cheers from Venezuela!

  • @RupluttajaGames
    @RupluttajaGames Год назад +1

    What if we want to allow our client to define their own file server, or define access control so only certain users can access a file?
    This seems cool and all but as far as sensitive data is concerned, this won't make the cut.

  • @chrschoeni
    @chrschoeni Год назад

    Thank you very much for your brilliant video. Integrating is really quick. However, I haven't yet figured out how to integrate the upload into a form. Do you have a tip? I work with Prisma and API.

  • @ulrich-tonmoy
    @ulrich-tonmoy Год назад

    really a great thing finally a simple file uploading

  • @mehulsharmamat
    @mehulsharmamat Год назад +1

    OMFG I LOVE YOU FOR THIS!

  • @jeffreytgilbert
    @jeffreytgilbert Год назад +17

    We use uploadcare for our media uploads which comes with a slew of handy widgets for connecting to social file stores. It also has very useful rest api conventions for manipulating images and it handles all the caching and cdn work. It would be tough to beat all the bells and whistles it has for image hosting, but i can see where this would be useful for moving large zips around when needed

    • @joelwoolhead3006
      @joelwoolhead3006 Год назад +1

      I just checked this out thanks looks very interesting

    • @mhaidarhanif
      @mhaidarhanif Год назад

      Also Uploadcare's experience perform much better than the current competition such as Cloudinary, ImageKit, etc

    • @jeffreytgilbert
      @jeffreytgilbert Год назад

      @@mhaidarhanif it’s not perfect or as intuitive as it should be for users, but it’s leagues better than what it replaced on the site code i’m retrofitting.

    • @mhaidarhanif
      @mhaidarhanif Год назад

      @@jeffreytgilbert yes, even the new uploader docs can be confusing while in beta
      well each person's experience could vary, but at least it's the easiest to solve all upload issues I had

  • @haiffy
    @haiffy 4 месяца назад

    Would have been amazing if this can be self hosted

    • @t3dotgg
      @t3dotgg  4 месяца назад

      🤐 perhaps this is coming soon...

  • @Pscribbled
    @Pscribbled Год назад +1

    Very cool product. I think I’ll try it out! Although as primarily a backend engineer, I’m a bit nervous of how the code is collocated in builder of that file router. Feels dangerous to the uninformed… like myself

  • @yannm6348
    @yannm6348 Год назад

    Thank you.

  • @jkbrodotdev
    @jkbrodotdev Год назад

    I went with supabase for my company's project for the reason that they had storage solution. fuck that, im using uploadthing now.

  • @JohnNickname
    @JohnNickname Год назад

    I love the channel and the solutions being built but as a sysadmin/backend dev it really feels so weird to see my job wither away more and more with serverless services...

  • @lilililliilil
    @lilililliilil Год назад +1

    Thanks for a great invention Theo! I just wonder does it support any kind of caching methods? Cloudfront integration maybe?

  • @evanskwofie2443
    @evanskwofie2443 Год назад

    woulda beenn great if you did with page router too..on the docs, i'm not sure where the files go. are they both in the api dir too?

  • @DeveloperTrent
    @DeveloperTrent 7 месяцев назад

    Now please do it, in production not locally :D

  • @bansh3ee
    @bansh3ee Год назад

    dark VSCode and the rest is light? muh eyes!

  • @Pptruenoz
    @Pptruenoz Год назад

    I'm definitely going to use this in my project

  • @mihai10stoica
    @mihai10stoica Год назад

    Last night I was looking for file upload solutions and today I wake up to this 😂

  • @_kadirmetin
    @_kadirmetin Год назад

    Thanks for the amazing solution!!!

  • @manaspaul
    @manaspaul Год назад

    Amazing 😍. But one feedback the primary colour seems deprecated docs

  • @hansiboy5348
    @hansiboy5348 Год назад

    This looks amazing. Great job Theo

  • @aghileslounis
    @aghileslounis Год назад

    I love it! great ideas Theo !

  • @LEGnewTube
    @LEGnewTube 2 месяца назад

    Looking at the documentation for this. Bit confused. Can I use this with my react application? In the docs I'm seeing "React" under Api Reference, but not under "Getting Started"

    • @t3dotgg
      @t3dotgg  2 месяца назад

      You need a server to use this. That’s how you authenticate users. You need something like Express or Next

  • @omri9325
    @omri9325 Год назад +1

    Wait, how safe is it that the client injects functions to the server?

  • @real-oppenheimer
    @real-oppenheimer Год назад +1

    The „onUploadComplete“ is what I always wanted when integrating presigned URLs. Would be really interesting to know how it is implemented!

    • @Fixeish
      @Fixeish Год назад +1

      It probably is a fetch call to upload the file via the uploadthing API. When the fetch call completes (the file was uploaded successfuly), the onUploadComplete function gets called.

    • @Disorrder
      @Disorrder Год назад

      xhr event

    • @81NARY
      @81NARY Год назад

      Also, for presigned URLs (on S3 at least), you can set up a SQS queue which will fire the event on successful upload (or even other changes) and listen for that in your backend.

    • @real-oppenheimer
      @real-oppenheimer Год назад

      @@Fixeish Nah, whole point of presigned URLs is that you upload from the client, not the server.

    • @Fixeish
      @Fixeish Год назад

      @@real-oppenheimer uploadthing first uploads from the client to your website's backend and then from your website's backend to uploadthing
      OnUploadComplete is called on the your website's backend when it finishes uploading to uploadthing. If it uses a presigned url for the transfer to uploadthing or not is irrelevant (either way, the server knows when the upload is complete)

  • @CTBell-uy7ri
    @CTBell-uy7ri Год назад +1

    Thank you for undoing your top button. I breathe easier ;) Love you Theo!

  • @davidb.6271
    @davidb.6271 Год назад

    You're awesome, but what have you solved? Seems very similar to upload with R2 with a react dropzone.

  • @DihCpsPsy
    @DihCpsPsy Год назад

    do you have a video teaching how to create that initial config of T3 Stack (prisma + trpc) ?

  • @himabimdimwim
    @himabimdimwim Год назад +1

    Phew, 4gb of free uploads per user, i hope you are ready with a few TB of storage drives ready!

  • @lostarrows27
    @lostarrows27 Год назад

    just wonder if uploadthing have rules on file size limit or request limit per second

  • @niomeda
    @niomeda Год назад

    Good Job and Thank you!

  • @jameshonour7661
    @jameshonour7661 9 месяцев назад

    I used Uploadthing to upload my pdf files in my SaaS application on next js 14 and it worked fine locally but not after deploy.

    • @canra245
      @canra245 5 месяцев назад

      Me too. image is uploaded, but the callback just return "still waiting"

    • @blasttrash
      @blasttrash 3 месяца назад +1

      its not a proper product. Their docs suck. For all the hype of making dev experience better, it makes it worse with too much abstraction and its not even easy to get started. At least that was my experience. Do you guys have any other suggestions for similar products?

    • @canra245
      @canra245 3 месяца назад

      @@blasttrash alternative, u can using uploadcare instead uploadthing

  • @DerberAlter
    @DerberAlter Год назад

    wow thats awesome! thanks man

  • @colton923
    @colton923 Год назад +1

    I finally found my reason to subscribe. Making a really useful tool, and explaining how it works immediately is the most engineer thing. Glad you didn’t cut the video after selling me on an awesome idea.

  • @swarajbachu
    @swarajbachu Год назад

    want to know more about pricing plans

  • @lightninginmyhands4878
    @lightninginmyhands4878 Год назад +1

    File stuff?
    We got got S3 things made I think… 😅

  • @swarajbachu
    @swarajbachu Год назад

    daamn!! you are just amazing dude

  • @FilmonGEMZ
    @FilmonGEMZ 9 месяцев назад

    Theo, don't do anything else. This needs to be the model for your youtube channel. Find a Dev Experience that sucks(they are not few) and vlog about how you're working on making it better. Then we will give you our money. I'm using uploadthing for every project.

  • @spacepacehut3265
    @spacepacehut3265 Год назад

    But I guess Vercel Blob is gonna kill S3 🚀 that seems pretty impressive

  • @thekwoka4707
    @thekwoka4707 Год назад

    Does it allow presigned URLs? So that the user can upload directly to upload thing without passing that data through our server?

    • @t3dotgg
      @t3dotgg  Год назад

      That's the only way we support uploading, it's handled under the hood so you don't have to worry about it. You're required to run code in your backend to sign the post URLs, not to actually handle the files

  • @asadjamilbuledi8574
    @asadjamilbuledi8574 6 месяцев назад

    How do I set content-disposition to attachment in uploadthing?

  • @tiagoernst5167
    @tiagoernst5167 Год назад

    Do you plan having clients for other languages ? If no is/will the npm package have a public github repo so we could make our own ?

  • @omagadavid9923
    @omagadavid9923 3 месяца назад

    Is there a way to delete files programmatically

  • @ThePrician
    @ThePrician Год назад

    Off-topic: your audio seems to have lowered in quality/volume as of late.

  • @saurabhgore266
    @saurabhgore266 Год назад

    I have tried this with t3 stack it is not working properly> may be I am missing something. can you create full tutorial for this?

  • @mormantu8561
    @mormantu8561 Год назад

    Is there a reason, beside potential capitalization, for not publishing this is a library or integrating it with the T3 stack? Just curious, I don't mind you wanting to earn something from your hard work. :)

    • @JoRyGu
      @JoRyGu Год назад +1

      I kind of doubt it would be super easy to make something this streamlined if it were a lib that required you to spin up a server. Plus, money.