From 0 to Production - The Modern React Tutorial (RSCs, Next.js, Shadui, Drizzle, TS and more)

Поделиться
HTML-код
  • Опубликовано: 28 май 2024
  • The Modern React Tutorial is FINALLY done. This one took awhile.
    Shoutout to ALL the awesome sponsors who made this possible:
    - Vercel
    - Clerk
    - Posthog
    - Sentry
    - Upstash
    NOTES I MENTION DURING VIDEO
    "Nextgram": github.com/vercel/nextgram/tr...
    "useUploadThingInputProps": gist.github.com/t3dotgg/0464c...
    GITHUB REPO github.com/t3dotgg/t3gallery
    TIMESTAMPS (TY EMBED ❤️)
    00:00 - Intro + Sponsors
    03:30 - Scaffolding the project
    06:12 - Creating our todo list
    08:39 - Creating repo & pushing to GitHub
    10:23 - Linking our repo to Vercel
    12:07 - Deploying to Vercel
    13:32 - Setting up uploadthing for images
    15:40 - Displaying our mock data
    17:35 - Next.js Layouts Explained
    19:45 - Scaffolding our UI
    21:47 - Tidying up builds & enabling turbo
    24:18 - Setting up our Database
    35:14 - Dynamic Routes
    37:40 - Changing our database schema
    43:00 - Adding authentication
    54:04 - Setting up image uploading
    01:04:10 - Connecting users to images
    1:09:41 - server-only & React Taint
    1:17:18 - The next/image Component
    1:22:58 - Error management w/ Sentry
    1:32:07 - Image page w/ Parallel Routes
    2:04:15 - Fixing the upload button
    2:11:05 - Setting up toaster w/ shadcn/ui
    2:26:40 - Adding analytics w/ PostHog
    2:38:21 - Delete button w/ Server Actions
    2:49:52 - Adding rate limits w/ Upstash
    2:56:44 - Locking down uploads
    3:00:59 - Challenges for the Viewer
    3:02:35 - Outro
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏
  • НаукаНаука

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

  • @t3dotgg
    @t3dotgg  Месяц назад +137

    UPDATES:
    - create-t3-app now uses latest Next, which should fix some bugs with hot reloading on parallel routes
    - MAKE SURE YOU USE THE DEFAULT PREFIX WHEN SETTING UP VERCEL POSTGRES
    - Clerk Core 2 is no longer in beta! If you just `pnpm install @clerk/nextjs` you will have this version now :)
    Oh also - GITHUB REPO IS HERE: github.com/t3dotgg/t3gallery

    • @shivammishra1980
      @shivammishra1980 Месяц назад

      Should I use dependency injection with posthog? if in case I want to migrate to something like mixpanel?

    • @zxcaaq
      @zxcaaq Месяц назад +1

      ur a legend

    • @mazwrld
      @mazwrld Месяц назад

      💜

    • @kingjune6685
      @kingjune6685 Месяц назад

      when will the t3 stack updated

    • @georgepetroff2364
      @georgepetroff2364 Месяц назад

      Thanks Theo, amazing tutorial as always ❤Recently you are bringing back the vibes of the time when pokemon roundest was around 😁would be amazing bringing new updated version of it tho'. UPLOADTHING is a game changer, finally something more about it too

  • @qwerasdfhjkio
    @qwerasdfhjkio Месяц назад +283

    "primeagen still had a job"🤣

  • @lukem121
    @lukem121 Месяц назад +507

    Wow nice, I have been looking forward to a video that isn't you reading an article or documentation. It's nice to see some actual programming 😁 Thank you for the vid!

    • @Amruth
      @Amruth Месяц назад +14

      Honestly, this is the kind of content I subscribed for. Really respect Theo for putting out content like this for free that's extremely useful and especially targeted towards intermediate devs. A lot of the content is only for beginners.

    • @RobertMcGovernTarasis
      @RobertMcGovernTarasis Месяц назад +1

      Indeed, only came across Theo a little while back and only ever seen him as a talking head. Not an actual coder, so this was quite informative

    • @Joseph-Codes
      @Joseph-Codes Месяц назад +1

      Watch his lives

    • @good_eats876
      @good_eats876 Месяц назад +1

      Amazing comment !!!!!

    • @crowlsyong
      @crowlsyong Месяц назад +1

      I agree

  • @R0cky0
    @R0cky0 Месяц назад +93

    Yo, I want to appreciate for the amount of work and effort you put into this also by not putting up a paywall and choosing not to take the easy path. Making this available (for free) to the community is truly commendable. Your work is worth so much more than those who charge for courses however are much less informative than this. A million thanks!

    • @carvierdotdev
      @carvierdotdev Месяц назад

      Yes and yes. I completely agree with you. I feel that we are very lucky to have such incredible people in the JS community with such background..

  • @embedyt
    @embedyt Месяц назад +155

    Timestamps
    00:00 - Intro
    00:47 - Who, What & Why
    03:30 - Scaffolding the project
    06:12 - Creating our todo list
    08:39 - Creating repo & pushing to GitHub
    10:23 - Linking our repo to Vercel
    11:00 - Fixing the Environment Variables
    12:07 - Deploying to Vercel
    13:32 - Setting up uploadthing for images
    15:40 - Displaying our mock data
    17:35 - Next.js Layouts Explained
    19:45 - Scaffolding our UI
    21:47 - Tidying up builds & enabling turbo
    24:18 - Setting up our Database
    35:14 - Dynamic Routes
    37:40 - Changing our database schema
    43:00 - Adding authentication
    54:04 - Setting up image uploading
    01:04:10 - Connecting users to images
    1:09:07 - What's next (Take break here)
    1:09:41 - server-only & React Taint
    1:17:18 - The next/image Component
    1:22:58 - Error management w/ Sentry
    1:32:07 - Image page w/ Parallel Routes
    2:04:15 - Fixing the upload button
    2:11:05 - Setting up toaster w/ shadcn/ui
    2:26:40 - Adding analytics w/ PostHog
    2:38:21 - Delete button w/ Server Actions
    2:49:52 - Adding rate limits w/ Upstash
    2:55:05 - Redeploying to Vercel
    2:56:44 - Locking down uploads
    3:00:59 - Challenges for the Viewer
    3:02:35 - Outro

    • @t3dotgg
      @t3dotgg  Месяц назад +38

      THANK YOU

    • @akinoreh
      @akinoreh Месяц назад +2

      @@t3dotgg It'd be nice if this was also a playlist with shorter videos. It's easier to consume that way. Personally, I won't be watching this in one go. While having chapters help, it's still one video.
      Haven't started yet, but I'm curious how beginner friendly this is. While I'm good at JS, I haven't tried any front-end library/framework (although, I keep tabs on them). So I think it requires some kind of leap from plain JS to front-end libraries. I currently have that mental gap. Hope this helps a little.

    • @RogueTravel
      @RogueTravel Месяц назад +11

      @@akinorehI’d be so sad if this was broken up into a playlist.

    • @akinoreh
      @akinoreh Месяц назад +1

      @@RogueTravel Notice the "also". Besides, what's the advantage of a single video (contrary to a playlist)?

    • @JSLegendDev
      @JSLegendDev Месяц назад +11

      @@akinoreh As someone who makes programming tutorials (JavaScript gamedev tutorials), there are big negatives with publishing in multiple parts. Here are the main two :
      - Next parts will always make progressively less views than the first part giving the impression that your channel is dying.
      - It clutters your channel and makes it hard to find content.

  • @woet7891
    @woet7891 Месяц назад +1

    Love it! Was needing this a lot 🙏🙏 Most tutorials out there tend to leave important stuff out that's needed for any decent production application like the error monitoring, event tracking and rate limiting so it was super useful to see how you're tackling this

  • @lasso01
    @lasso01 Месяц назад +7

    Amazing content. I don't usually watch that many tutorials anymore, but this feels exactly what i needed to hone my skills with all the new stuff. Thanks Theo!

  • @wolpumba4099
    @wolpumba4099 4 дня назад +1

    "From 0 to Production - The Modern React Tutorial" - Video Summary
    This tutorial shows how to build a full-stack image gallery app with authentication, image uploading, and other production-ready features.
    *Project Setup & Deployment*
    * *3:30**:* Scaffolds the project using `create-t3-app` with Next.js, TypeScript, TailwindCSS, Shadcn/UI, Drizzle ORM, and Vercel Postgres.
    * *8:39**:* Initializes a GitHub repository and links it to Vercel for automatic deployments.
    * *13:32**:* Uses UploadThing for image hosting and retrieves initial mock image URLs.
    *Basic UI & Database Integration*
    * *15:40**:* Creates a basic UI with a top navigation bar and displays the mock images.
    * *17:35**:* Explains Next.js layout system and implements nested layouts for the app.
    * *24:18**:* Sets up a Postgres database on Vercel and connects it to the app using Drizzle.
    * *35:14**:* Populates the database with the mock images and displays them dynamically on the homepage.
    * *35:14**:* Implements dynamic routes to ensure the page content updates when the database changes.
    *Authentication & Image Uploading*
    * *43:00**:* Adds authentication using Clerk with GitHub and Google sign-in options.
    * *54:04**:* Restricts image viewing on the homepage to authenticated users.
    * *54:04**:* Integrates UploadThing for image uploading with client-side and server-side components.
    * *1:04:10**:* Persists uploaded images to the database and associates them with the logged-in user.
    * *1:09:41**:* Explains and implements the "taint" concept to prevent sensitive data from reaching the client.
    *Production-Ready Features*
    * *1:17:18**:* Replaces standard image tags with `next/image` for automatic image optimization.
    * *1:22:58**:* Integrates Sentry for error monitoring and demonstrates how to capture and view errors.
    * *1:32:07**:* Implements an image details page with parallel routes for a better user experience.
    * *2:04:15**:* Styles the upload button using Shadcn/UI components and adds a loading spinner.
    * *2:26:40**:* Integrates PostHog for analytics and tracks user actions like image uploads and deletions.
    * *2:38:21**:* Implements a delete button using server actions to remove images from the database.
    * *2:49:52**:* Adds rate limiting using Upstash to prevent abuse of the upload functionality.
    * *2:56:44**:* Restricts image uploads to users with specific permissions set in Clerk metadata.
    *Challenges for Viewers:*
    * Fix the page layout for images with different resolutions.
    * Implement image selection on the gallery page with state management (using Zustand).
    * Add infinite scroll to the gallery page.
    * Implement folders or albums to organize images.
    i used gemini 1.5 pro

  • @johnbauer9907
    @johnbauer9907 Месяц назад +4

    Thank you. I dont use any of this stack except for typescript and it is nice to see the start to finish...

  • @oxnull738
    @oxnull738 Месяц назад +8

    Finally, a video where you're not just reading from an article.

  • @CharlieBelvo18
    @CharlieBelvo18 Месяц назад +1

    Incredible tutorial, maybe the best overview I"ve ever seen to build and deploy a webapp. Thanks Theo for showing the rest of us the way

  • @mchisolm0
    @mchisolm0 24 дня назад

    Thanks again for the tutorial. Finally made it through and I feel I have learned a lot. Appreciate your time and the sponsors' willingness to partner with you to make it happen.

  • @madhudson1
    @madhudson1 Месяц назад +12

    haven't watched it yet, but the fact that you've put this out for free is incredible

  • @marvinxu2950
    @marvinxu2950 День назад

    Wow, just started learning t3, very timely update! Thank you so much!

  • @metatronicx
    @metatronicx Месяц назад

    Thank you Theo for this video.
    Thanks for showing us how we should manage and succeed in every project. Y'all dev brothers, never forget to-do lists. They are crucial

  • @julietaparpinelli7162
    @julietaparpinelli7162 Месяц назад

    This video is just amazing! Thank you so much!! I appreciate that we can all see you coding and facing real-life errors and being honest about them. 👏

  • @Fanaro
    @Fanaro Месяц назад +4

    Crazy that a master software engineer such as Theo has infra this accessible and simple.

  • @zilvinas5130
    @zilvinas5130 Месяц назад +1

    Just finished tutorial. Gotta say, gallery app was, in my opinion, an amazing choice for a project to showcase RSCs. For me, handling file uploads, storage, all the authentication that comes with it, was always a stressful experience and seamless integration this project provides is an amazing resource.
    10/10. Keep up the amazing work, Theo!

    • @divyanshrawat2859
      @divyanshrawat2859 Месяц назад

      bro my drizzle sudio is not opening at 4983 instead its showing 404 error , can you help ?

  • @ErikTheHalibut
    @ErikTheHalibut Месяц назад

    Theo, please keep making tutorials like this! This is extremely helpful as a learning dev.

  • @Oseille
    @Oseille Месяц назад +1

    just finished this awesome tutorial, the modal is not closing when deleting the image from the photo modal, but it works from the photo page. very valuable content to kickstart nextjs learning.

  • @jessequartey
    @jessequartey Месяц назад

    Watching this, i realize how much influence Theo has. I use most of these technologies in my production apps. And the startups i build for might keep using them for a long time too. I hope they are paying you a lot of money for the market you bring.

  • @joshuaborseth
    @joshuaborseth Месяц назад +41

    The hair covering your face is giving me OG roundest Pokémon theo vibes

    • @t3dotgg
      @t3dotgg  Месяц назад +18

      This was semi intentional

    • @l-Il.-._.-.lI-l
      @l-Il.-._.-.lI-l Месяц назад +1

      Keeping it real for the nerds

    • @vitorwindberg4212
      @vitorwindberg4212 Месяц назад

      damn the roundest pokemon nostalgia hit me with this comment

  • @user-dm8sw5qn4p
    @user-dm8sw5qn4p Месяц назад

    Theo, just four words: you made amazing tutorial!!! Thank you

  • @alexandermackintosh1755
    @alexandermackintosh1755 Месяц назад

    Thank you so much this is incredibly useful content!! Just as i decided like a week ago to take the plunge to learn a bit about next hahah ❤

  • @jacobvanschenck
    @jacobvanschenck Месяц назад

    What a legend. Thank you sir for all the work you put into this. Something to learn here for any dev of any skill level!

  • @zainraz4
    @zainraz4 Месяц назад +11

    YESSS BEEN WAITING FOR THIS!! Can’t wait to watch and follow along!

  • @desertislanddivs
    @desertislanddivs Месяц назад

    This was so awesome, thanks so much for pouring all the time, blood and syntax into it for us ^^

  • @caiolaytynher5994
    @caiolaytynher5994 Месяц назад +2

    Literally started learning this stuff yesterday, seems made for me

  • @webapple1
    @webapple1 10 дней назад +1

    if any of you having issues with parallel routing - firstly make sure you have the default in the @modal folder , then the page in the [id] folder. secondly , you will need to restart your dev server.

  • @NaranuCS
    @NaranuCS 16 дней назад

    Great tutorial btw, I'm starting to branch out towards next.js and react coming from Java and PHP (not together but from my last two jobs) so is extremely exciting to see how powerful all these tools are!

  • @drunkenpigtnt1359
    @drunkenpigtnt1359 8 дней назад

    Built a blog app with the help of this tutorial. Great vid, Theo.

  • @bbpfreddy
    @bbpfreddy 27 дней назад

    Amazing guide. always learn a thing or 2 by walking through this

  • @23rbnHD
    @23rbnHD Месяц назад +1

    0 to Production with Full Test Coverage. That would be such an interesting follow up. Breaking down how each of the best practices and starting points your tutorial covers would fit into a CI testing stack (end to end and unit). That said, so far, so really really helpful. Thanks a bunch.

  • @christianbauer3417
    @christianbauer3417 Месяц назад

    Wow, you are providing a ton of useful advice! This is awesome. Thanks a lot Mr T3 :-)

  • @AlexanderJuncosa342
    @AlexanderJuncosa342 Месяц назад

    Damn I was actually watching the old tutorial, this came just at the right time :D Great content!

  • @nikensss
    @nikensss Месяц назад +3

    6:23 right! so let's build a todo-list app first! haha Great video, I was actually considering asking somewhere if there were plans for a tutorial after the recent changes in so many technologies and platforms. Thanks a ton for videos like this. Introductory tutorials are nice, but at some point people start needing next level content, and this is about it!

  • @recksonkhiangte1488
    @recksonkhiangte1488 Месяц назад

    Oh wow! This is crazy, thank you for putting this out.

  • @jhkmatthews
    @jhkmatthews Месяц назад

    thanks Theo, great vid!
    at 1:40:45 - another approach that I like for breaking down changes into smaller commits is using VSCode Source Control tab to stage changes file by file (or line by line) for each commit

    • @vitorwindberg4212
      @vitorwindberg4212 Месяц назад

      yeah you can use terminal for that but I also use vscode interface for that, super useful and a lot easier to visualize

  • @dehrk9024
    @dehrk9024 Месяц назад

    idk what it is but theos videos make me so ready & awake & never give up never back down

  • @xyz66z
    @xyz66z Месяц назад

    I love this guy! Teaches so natural. I'm yet to become the dev this video is meant for but I'd be soon! I'd be coming back that time ❤.

  • @kevinattinger9293
    @kevinattinger9293 Месяц назад

    Awesome Tutorial! Thank you so much. Going to build a full blown recipe - App with that

  • @shubhamprakash2331
    @shubhamprakash2331 10 дней назад +2

    If anyone gets the error during deployment on Vercel :  "ERR_PNPM_BAD_PM_VERSION. This project is configured to use v9.1.1 of pnpm. Your current pnpm is v9.0.4"
    Put the code below in your environment variables and redeploy, it should work again.
    ENABLE_EXPERIMENTAL_COREPACK=1
    COREPACK_ENABLE_STRICT=0

    • @staticwasabi
      @staticwasabi 6 дней назад

      Thank you!
      I was getting this error and adding these environment variables to vercel fixed it.

  • @MrMazvaz
    @MrMazvaz 29 дней назад

    Quick tip using as a modal. To style the backdrop, just use the ::backdrop pseudo-class. In tailwind it would be className="backdrop:bg-zinc-900/50". This way you dont have to worry about the margins and having it cover the entire screen etc. The backdrop is already there for you

  • @chadcummings4600
    @chadcummings4600 Месяц назад

    Congrats on the React Status Cooperpress newsletter headline mention. Love your channel and the work you do

  • @erickhar
    @erickhar 21 день назад +1

    For people struggling with posthog - just turn off adblock if you get cors error

  • @cariyaputta
    @cariyaputta Месяц назад

    Quality tutorial. Added this to my knowledge base.

  • @Osirisdigitalagency
    @Osirisdigitalagency Месяц назад

    2mins 57 secs in and I already know this is going to be crazy. One time for Theo. U re the man. ❤

  • @joeljededemekong5628
    @joeljededemekong5628 Месяц назад

    This is a blessing fr
    I’m so thankful that this exists

  • @AbdulRafay-vi6hz
    @AbdulRafay-vi6hz Месяц назад +5

    As a former web developer who now develops Android and iOS applications, I've noticed that web development has become more complex than ever.

    • @harshthakur1444
      @harshthakur1444 Месяц назад +1

      which shows how much flexible and a bitch JavaScript is 😂😂😂😂😂😂 , I think why some people decide to js instead of ts

    • @AbdulRafay-vi6hz
      @AbdulRafay-vi6hz Месяц назад

      @@harshthakur1444 🤣🤣

  • @prickitt
    @prickitt Месяц назад +2

    This is great, thanks for making it!

  • @JohnSmith-gu9gl
    @JohnSmith-gu9gl Месяц назад +1

    you really have to give Remix a try!
    less overhead and feels like a simple express middleware.

  • @ustav_o
    @ustav_o Месяц назад +2

    thats amazing. im doing it tomorrow and will come back here when i finish

    • @loryhoof
      @loryhoof Месяц назад +1

      Have you started yet

    • @ustav_o
      @ustav_o Месяц назад +2

      ​@@loryhoofjust finishes now, really great tutorial. one of the best we have here at youtube.
      really cool stuff, very well explained and would totally recommend

    • @loryhoof
      @loryhoof Месяц назад

      @@ustav_o I found it to be pretty ass but okay

  • @warricksullivan
    @warricksullivan Месяц назад

    Thanks Theo. Loved this video. Nice work and very much appreciated. You hinted at your thoughts on trpc uses. Do you have any more detailed content on your use cases for trpc with nextjs app router? Keep up the great work. :)

  • @keithjohnson6510
    @keithjohnson6510 Месяц назад

    Just started using Drizzle, gets a thumbs up from me.
    Of course the typing's are a real +, but what I really like is that you can use composition to build your query's. eg. lets assume you have a complex sub query you want to say do an `inArray` with, you can then create a function and re-use in other query's, you could say it's a bit like Views but been able to use props, and of course still have strong typing's. Nice!!!!

  • @MilindMishra
    @MilindMishra Месяц назад +1

    Thank you for the honest video, really helpful!

  • @NoelmineZockt
    @NoelmineZockt Месяц назад +6

    My Go2Stack currently:
    React (RSCs), Next (App Router), Tailwind, react query, Shadcn, Drizzle, Lucia, (TS, pnpm). Hosting: Vercel, Turso, Railway
    Last year:
    React, Next (Page Dir), Tailwind, tRPC (with react query), Prisma, NextAuth, (TS, npm). Hosting: Vercel, Planetscale

  • @SebastianGrantElKiva
    @SebastianGrantElKiva 26 дней назад

    Far away our best tutorial since

  • @user-vh3xr2cj8b
    @user-vh3xr2cj8b Месяц назад +1

    Thank you very much for the tutorial, Can you please make a tutorial about how to elegantly organize and maintain folder structures and files according to industry standard?

  • @JEM_GG
    @JEM_GG 23 дня назад

    It was all worth it for the biscuits at the very end

  • @subhranshudas8862
    @subhranshudas8862 Месяц назад +1

    Thanks Theo. You are a gift.

  • @jamesgphillips91
    @jamesgphillips91 4 дня назад

    Hey, I just wanted to thank you for this video. I've been working with react for almost 5 years, next for 3. I know a lot of what you've covered in this video already but it was really nice having such a thorough and comprehensive refresher. I was laid off about a year ago and I became really skeptical of the value of my React skillset after not being able to find a job for sometime and have been somewhat a drift in my personal projects and coding. I just want you to know you reignited a bit of my spark and love for React/Next and that I genuinely appreciate you content. Side note... from boston... can kickflip... but does he hardcore?

  • @user-cf3ls6es2b
    @user-cf3ls6es2b Месяц назад

    I love when Theo teach, i just follow and finish it

  • @dian_youtubes
    @dian_youtubes Месяц назад

    This was amazing! Thank you Theo!

  • @codewithantonio
    @codewithantonio Месяц назад +48

    Lets goooooooooo

    • @t3dotgg
      @t3dotgg  Месяц назад +27

      I think you released 20 tutorials since I started planning this one 🙃

    • @Blade_Dhruv
      @Blade_Dhruv Месяц назад +5

      Thanks to both of you, I was able to learn coding because of you guys, thanks my real teachers🙇🏻‍♂️

  • @petarozretic6140
    @petarozretic6140 Месяц назад

    Was waiting for this, tyvm :D

  • @josef-stampede-ai
    @josef-stampede-ai Месяц назад +3

    Fantastic, cant wait to get stuck in !!!

  • @timeforrice
    @timeforrice Месяц назад

    This is such an amazing tutorial!

  • @Sammysapphira
    @Sammysapphira Месяц назад +4

    great video. There's such a lack of intermediate videos like this.

    • @orvvro
      @orvvro Месяц назад

      There are plenty, they're just not free, and hosted on sites like Coursera and Udemy

  • @JoctanNeves
    @JoctanNeves 24 дня назад

    Thanks Theo, this video are amazing!

  • @supriyomonndal6199
    @supriyomonndal6199 Месяц назад

    Absolutely love this man.

  •  13 дней назад +2

    The sponsor stack

  • @saidyeter
    @saidyeter Месяц назад

    phenomenal tutorial. thanks theo

  • @t1m3__
    @t1m3__ Месяц назад

    Thanks Theo, it's a great tutorial!

  • @Goglarnik
    @Goglarnik Месяц назад

    I rarely comment on any videos at all, but felt the need to say: "Thank you". Thank you :)

  • @113bast
    @113bast 28 дней назад

    Thanks for the very detailed tutorial ! Just curious, how would you deal with the improving the ids ? Because I think incremental is not that great

  • @Fanaro
    @Fanaro Месяц назад +1

    This tutorial is just so good.

  • @pavelstastny7892
    @pavelstastny7892 Месяц назад

    Thanks for this. This is the MVP move.

  • @sonalita_
    @sonalita_ Месяц назад +2

    I had a warning after adding the @apply rule at 17:02 - VSCode said "Unknown at rule @apply". The fix is to install the PostCSS Language support extension. I kinda wish Leo would have gone over the VSCode extensions he uses.

  • @hldfgjsjbd
    @hldfgjsjbd Месяц назад +1

    2:22:27 "This is my life 😐"
    You know, if that's what makes you feel that way, then this's an awesome life.
    Greetings from Ukraine.

  • @dainius84
    @dainius84 Месяц назад +1

    great tutorial, thank you, what's the extension used for autocomplete during this tutorial?

  • @declspecl
    @declspecl Месяц назад

    thank for for this theo 🙏everybody pump up the algorithm RAHHH

  • @erickhar
    @erickhar 22 дня назад

    Hey theo. This is such a great video thank you :)

  • @KjetilYtrehus
    @KjetilYtrehus 26 дней назад

    More of this! More tutorials. More projects. More ShadcnUI component modifications. More interacting with databases and fetching different content. More State management tutorials (Zustand?). More Github Actions....

  • @user-gq6wp2ll2s
    @user-gq6wp2ll2s Месяц назад

    Fantastic tutorial! For someone who has never used TS/TW/analytics/ratelimiting....I managed to follow along just fine, and even understand, (i think) what was going on! Either way it works so thank you @t3dogg for such a great walkthrough

  • @jhimymichel3045
    @jhimymichel3045 Месяц назад +1

    thanks for the tutorial Theo 🥰

  • @chisomoguibe8467
    @chisomoguibe8467 Месяц назад

    Awesome video! I definitely learnt a few things from the walkthrough. One thing that irks me though is when adding new env vars to your local repo and then having to remember to add them into vercel. I use Doppler to have them sync in both places. the dev experience is really nice. wondering what your thoughts are on tools like Doppler?

  • @sovapid
    @sovapid Месяц назад +1

    At the 1 hour 40 minute mark, you can do this:
    const image = await getImage(+photoId);
    with the plus sign to convert the photoId string into a number.

    • @YourEverydayDeveloper
      @YourEverydayDeveloper 21 день назад

      bad practice. make it easy to understand and readable, this is junior code

    • @sovapid
      @sovapid 18 дней назад

      @@YourEverydayDeveloper you confused by i++ ?

    • @YourEverydayDeveloper
      @YourEverydayDeveloper 18 дней назад

      @@sovapid no that is well established in every major programming language in contrast to this implicit type conversion going on in your original code...

  • @Pixelume
    @Pixelume Месяц назад +2

    Theo you are a ROCKSTAR! I can barely contain my excitement to work through this tutorial. Thank you!

  • @lgf-sq9yf
    @lgf-sq9yf Месяц назад +1

    Amazing tutorial Theo! Thought could've complete this 3 hour tutorial in a day but it actually took me 3, and I'd learnt so much from it!
    However I have few questions:
    1. Why did you not use tRPC for this? Is it because it currently doesn't support multipart form for uploading images?
    2. Why did you decided to change to use pnpm from npm, I tried using pnpm too and I'm so not used to the syntax. Is the benefit of using pnpm in the long run be greater than just sticking to npm?

  • @VincentFulco
    @VincentFulco Месяц назад

    Thanks Theo, much appreciated

  • @rohitkochikkatfrancis
    @rohitkochikkatfrancis Месяц назад

    THE TUTORIAL WE ALL NEEDED !!!!

  • @dehrk9024
    @dehrk9024 Месяц назад

    omg i learned so much in this thanks theo

  • @jacobbdev
    @jacobbdev Месяц назад

    Great tutorial. What's the advantage of using UploadThing over Vercel's Blob storage for the image upload?

  • @bro-watch
    @bro-watch Месяц назад

    amazing content
    drizzle seems truly awesome

  • @craigcaski
    @craigcaski Месяц назад

    I was just wishing for this exact video

  • @kvdy
    @kvdy Месяц назад +1

    Thanks a ton man, this is exactly what I have been looking for. I come from strong backend development background and UI sometimes becomes trivial to setup and get it running the first day. But this has helped me to setup and get going in just 15 mins. Awesome..... Bring on more. I would like to explore this with AWS SDK as I need to grab my files from S3 and not uploadthing. Do you have any suggestions? or shall I use my backend api (springboot) to manage the files

    • @corybaker24
      @corybaker24 20 дней назад

      did you ever make any progress on getting files from S3 in this?

  • @omelettttttteeeeeee
    @omelettttttteeeeeee 10 дней назад

    this is sick. thanks!

  • @mbaytas
    @mbaytas 3 дня назад

    goat tutorial, thank you

  • @thegrumpydeveloper
    @thegrumpydeveloper 21 день назад

    Never did I think that modern react would require diving into the taint.

  • @Alivezombie16
    @Alivezombie16 Месяц назад

    I'd also love to see a video where you highlight the modularity - like migrating from Prisma to drizzle in a prod app