Build a File Storage App with Role Based Authorization (Next.js, Shadcn, Typescript)

Поделиться
HTML-код
  • Опубликовано: 12 июн 2024
  • This might be my longest tutorial to date. We will be building a full stack file storage application with organizations, file upload, management, role based authorization. authentication, cron deletes, favorites, trash feature, including many UI components including dialogs, modals, toasts, dropdown, etc.
    Link to repo github.com/webdevcody/file-drive
    Note: in the video at 46:01, you can import a library directly from clerk instead of the clerk-sdk-node library like so
    import type { WebhookEvent } from "@clerk/nextjs/server"
    Be sure to checkout Convex here: convex.dev/c/wdc
    Be sure to checkout Clerk here: dub.sh/A2JQT7h
    00:00:00 Overview
    00:04:55 Next + Convex Setup
    00:08:15 Clerk Setup
    00:11:48 ShadCN
    00:13:40 Clerk Components
    00:16:35 First Convex Mutation
    00:20:27 Convex Query
    00:23:54 Auth in Convex
    00:25:55 Header
    00:31:03 Scope Files using OrgId
    00:42:17 Clerk Webhooks
    01:02:45 OrgId Authorization
    01:12:55 File Upload Dialog
    01:29:18 Toast Component
    01:36:01 Button Loader
    01:39:09 Styling Homepage
    01:44:20 Delete File Dropdown
    01:54:50 Empty States
    02:00:26 Page Spinner
    02:03:12 File Types
    02:17:30 Download Button
    02:18:21 Search Bar
    02:29:55 Side Nav
    02:33:57 Refactor Layout
    02:38:56 Active Link Style
    02:41:27 File Browser
    02:43:43 Mark as Favorite
    02:54:31 Favorites Page
    03:00:21 Favorite Star
    03:12:33 Role Based Authorization
    03:27:02 Delete Cron
    03:32:09 Restore Item
    03:39:22 Upload User
    03:54:06 Minor Tweaks
    03:58:39 Table
    04:11:28 View Toggle
    04:22:44 Personal Account Bug
    04:29:44 Footer & Landing Page
    This video was sponsored by Convex and Clerk.
    My Products
    📖 ProjectPlannerAI: projectplannerai.com
    🤖 IconGeneratorAI: icongeneratorai.com
    📝 ThumbnailCritique: thumbnailcritique.com
    Useful Links
    💬 Discord: / discord
    🔔 Newsletter: newsletter.webdevcody.com/
    📁 GitHub: github.com/webdevcody
    📺 Twitch: / webdevcody
    🤖 Website: webdevcody.com
    🐦 Twitter: / webdevcody

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

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

    After making this tutorial, it came to my attention that I used the incorrect way for showing the images and this can cause an error stating you need to use a uuid to access storage entries.
    Instead of pointing to the /api/storage/:id endpoint, you should be using an action with ctx.storage.get method outline in this documentation: docs.convex.dev/file-storage/serve-files.
    The updated commit can be here: github.com/webdevcody/file-drive/commit/0e31fcd44134d65ab95d4de95f3454f1383871b0

  • @wafiqhosain5713
    @wafiqhosain5713 3 месяца назад +53

    You've also entered into to the "Project making" arena. Cool, atleast some production like coding practice can be learnt.

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

    Learning so much from you Cody thank you very much, please keep using convex! much love from Canada

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

    FCC released serverless course, and you released this, now I gotta learn it all. Love you man for your generosity

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

      FCC????

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

      @@animeshbiswas2905 freecodecamp yt channel

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

      @@animeshbiswas2905 free code camp

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

      @@animeshbiswas2905 FreeCodeCamp i guess...

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

      @@animeshbiswas2905 freecodecamp

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

    Next level content and code! Good work

  • @insensibility
    @insensibility 3 месяца назад +6

    That's it! The GOAT with code along video! Keep up!

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

    I like the way you are presenting. Thank youso much.

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

    one or two a month like this would be insane

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

    It looks like a cool application. Thank you for sharing with us your effort.

  • @JH-bb8in
    @JH-bb8in 3 месяца назад +89

    Sidenote: Don't use Clerk. 1) they use dark patterns to prevent you from cancelling & migrating data later (I got burnt recently) 2) their UI elements have subtle bugs that create hydration / refresh issues

    • @daphenomenalz4100
      @daphenomenalz4100 3 месяца назад +14

      Also, you have to setup webhooks. I don't want to do that extra work lmao, just use next auth and make fast ui with Chadcn

    • @johnpaulpineda2476
      @johnpaulpineda2476 3 месяца назад +10

      NextAuth > Kinde > Clerk

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

      @@johnpaulpineda2476Amen to that

    • @user-qq7yc1qp8z
      @user-qq7yc1qp8z 3 месяца назад

      @@johnpaulpineda2476I’ve been using firebase auth for all my personal projects for 5 years, so would recommend

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

      @@johnpaulpineda2476 lucia a good option too

  • @eshw23
    @eshw23 3 месяца назад +5

    Fire, fire, absolute fire!!!

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

    Wow, Nice thank you so much for sharing the knowledge

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

    More of this. More of the usual. More of web dev cody !!!!!

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

    Nice Job Cody

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

    THANK YOU CODY AS ALWAYS 🎉👌

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

    Awesome tutorial thank you! I think as a next step I will try to build this in Angular as well to strengthen my Angular skills.

  • @abdirahmann
    @abdirahmann 3 месяца назад +17

    add malware scanning, adult/cp content detection and also a summary of what files might be related to the current open file, This will really ramp up the value of this project from being a relatively "bare bones" crud to MADNESS

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

    Awesome, great project

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

    wonderfull project. thankyou for sharing

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

    Thank you I will watch this tonight on the couch

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

      feel free to give feedback

  • @user-lx9xf2gc7p
    @user-lx9xf2gc7p 2 месяца назад

    Glad to be here Cody. As I learn from your videos, do you have plans to do a dedicated video on Convex at any point in the future? Keep up the great work 🙂

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

      I have a couple of convex tutorials on my channel

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

    Wonderful video! I'm trying to re-create it with extra features like malware detection, adult-content detection and darkmode...also got these ideas from comment section 😅

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

    Love it ❤
    How you stay motivated for coding?

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

    Brother, it's amazing and I am thankful to you for sharing such helpful videos. I have one wish: can you create a full-stack college website?

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

    @WebDevCody, Amazing tutorial. Loved it. I have a doubt about how do I let the user upload a file type other then the once we specified.

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

    WOW subscribed

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

    thanks for all of this, i have a question: Do I need to pay money to DB or any other service for this project when i deployed?

  • @SeibertSwirl
    @SeibertSwirl 3 месяца назад +7

    Good job babe!!!!

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

    Love your tutorilas would love to know how you create such beautiful thumbnails?

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

    Wow. Thanks.

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

    Awesome video sir🤩, can you please also make RBAC with zitadel ?

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

    Is there a way you can show us how to deploy this project? or if anyone in here has successfully deployed it in Vercel, because I'm having a difficult time deploying it and I keep getting an error on the webhook.

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

    Hi Cody, can you create even a simple tutorial to use Authjs (next-auth version 5) with convex, using different providers, like credentials, github, google, discord, etc.
    I saw your repo you used google exclusively.
    I find it hard to figure out how to configure different providers apart from auth0 and clerk, in auth.config.
    Thanks buddy

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

    Could u do a full project like this but using aws stuff with next js? Preferably with sst

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

    What type of font and them are you using on your vs code setup?

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

    love this type of videos.u didn't added dark mode?

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

      nah, but it takes like 5 minutes to wrap your app in a dark mode provider

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

    Congrats

  • @Cyber-Bison
    @Cyber-Bison 3 месяца назад +1

    Really enjoyed this video thanks Cody. I have a question though as to why you stored the orgIds with both the orgId and role as an object on the users table? What if we wanted to query for users by an orgId with the role of admin, I'm not sure if Convex supports this type of nested filtering? But I would have thought to have a separate Orgs table alongside an userOrgRoles table, and remove the role from the users table and only storing the orgIds of which they belong to, or simply just the userOrg tables. Not sure if this makes any sense lol just a thought/issue Im facing myself

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

      I think I was more of showing how convex support json like data structures. A separate table would also be fine, it would just require an additional query for all auth checks since we have to first get the user, then get the org table. Org table is probably more scalable

    • @Cyber-Bison
      @Cyber-Bison 3 месяца назад

      @@WebDevCody gotchya, i figured you were just prototyping quickly. Eitherway this video helped me a ton, your explanations simplified the process for me. Thanks again

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

    why should we chose traditional backend instead of Convex?

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

    That's good thanks for sharing your experience with us can you please create a inventory management system using Next.js. Your tutorials are always top-notch.

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

      What type of inventory? Like grocery store?

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

      @@WebDevCody stock register for a university or and add a also adjustment of new items and grocery stores also same idea. Can you do that please sir.

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

    Nice one, btw whats your vscode theme?? I ve been bored with my 2 years theme

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

      Bearded theme stained blue

  • @matthewsimon-ol4kb
    @matthewsimon-ol4kb 2 месяца назад

    Cody, what's the easiest/ simplest way to add Folders to the project?

  • @northerncoder
    @northerncoder 25 дней назад

    Can you talk to the strategy in this app to make the file-browser component a client component vs building this app to be server rendered?

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

    Wow Awesome, I would like to request that if you can extend this video to Upload file to AWS S3 bucket using Lambda functions. like in real world app that would be great

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

    I'm currently on minute 50:00 of this exciting project. However, I'm not sure if it's too complicated for me. I've been following along, but I don't think I fully understand what's going on.

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

    Shadcn/UI is a wonderful storage that people come and take away the components they want.
    But there are stuff we can't, input mask, phone input, date picker (with allowing typing), multi select, ...

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

    pay attention to 58:14, the dynamic return data fixing caused me an half hour to figure out

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

    Broooo plzzz create a Production grade e-commerce app(not like the current RUclips ones :)) a single vendor app.
    You can make a landing page to showcase 3- models of the main stream items of the store.
    To make it more in quality and unique you can add a 3d Model of every product along with the normal images and the main challenge will be then optimizing it.
    With roles(user and admin which will be the store owner), full fledged admin panel having inventory, and other business functionalities, Beautiful UI, review system, tracking system, Product recommendations, full fledged search, COD and online payment gateways 2-3, product page with detailed product descriptions with images etc and similar products.
    An e-commerce app that the internet has never seen before.
    :))

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

    Nice project. Thanks for sharing. I would like to learn more about PDF documents and electronic signatures to incorporate into your project. Any tips for me?

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

      there are libraries such as pdfjs which you can use to overlay images onto the PDF and you'd have to build out a UI which allows user to place the image where they want. I don't have much more info on that though

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

    can you make a video that how to host this web app

  • @Mirislomovmirjalol
    @Mirislomovmirjalol 3 месяца назад +9

    I dont really wanna use Baas services such as supabase or convex. It would be very interesting for me, if you could make a video about full stack development without BAAS and less third party platforms

    • @kalilbarry3773
      @kalilbarry3773 3 месяца назад +4

      why not Supabase, you can host it yourself anywhere you want

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

      That's too hard. And also no sponsor money.

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

      you can always use next.js, find a postgres database host, and use next-auth. the moment you need email logins, password reset, forgot password flow, you'll kind of wish you just used a third party auth service.

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

    0:35 you haven't clicked Dismiss, me too, I won't click that button

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

    hey, are u using the following theme and its variant? :
    Bearded theme- stained blue.

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

    excuse me sir due to this new next js I am not able to use public routes in the case of middle ware part and due to this I am not even able to get clerk auth!!! what can I do ???😞

  • @user-yb8mx3yz6p
    @user-yb8mx3yz6p 2 месяца назад

    Can we make this project in a way in which we can add audio files .

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

    Hello there, I spend the last four days binge watching your videos; consider in this video, how can we protect someone to access or view the uploaded files outside the application?
    I found out that if you put the file url in a browser it loads the file just fine, how to prevent that?
    Before I was using Edgestore, they broke file access outside the application, which is good to my opinions; But your video made me switch to convex, because it's easier to manage files.
    Thanks buddy :)

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

      The id of the image is mathematically impossible to brute force, but yes I think the url is all public so you need to make sure to not accidentally leak image ids or anything like that.

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

      @@WebDevCody thanks buddy

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

    bro How to deploy this application on vercel can u tell me the steps

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

    Also what are the extensions that you're using?? For the intellisense and ect

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

      I was using copilot for a bit on this video, but also using typescript and a tailwind auto complete extension

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

    Please create a video to deploy it , I've been getting some errors

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

    Can you make a tutorial for how to implement subscriptions in a web app like this that allows pay per user pricing for businesses?

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

      I already have one; ruclips.net/video/Vjtn9pWAZDI/видео.html

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

    file popup not open when i click in input file field

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

    Trying to follow along using Clerk core 2 ... they have a new middleware using clerkMiddleware() instead of authMiddleware() ... so confusing now.

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

      I have a new tutorial coming soon using core 2

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

      @@WebDevCody That would be awesome especially if you tie Clerk multitenancy with Convex because nobody else has anything useful

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

    Mate I couldn't understand a thing for the whole Clerk Webhooks part. Can I skip it and still go through rest of the video?

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

      Yeah just copy the code from my repo and try to understand it later.

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

    Hi Cody. In the part OrgId Auth, I have exac the same code as u before the commit, but, I think it is not working fine. Before that commit, I should see in the Home component the files of Personal Account + Files of organizations. Here I have the error, I am seeing only the files associateds to Personal Account. If i go to organization I see the files there, but I mean, In Personal Account I must see Personal Files + Orgs Files, is it right? What may be the error?

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

      I’d say look through my repo code and compare to yours

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

      @@WebDevCody I think it is exactly the same. Is it supposed that in personal account u should see only personal files or personal with org files that user is in?

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

      No in a personal account you only see your files, not every org files plus your personal ones

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

      @@WebDevCody Thanks for answering Cody! Are you going to add the part to deploy the app ?

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

    Hi there! To anyone who may be trying to follow along has anyone gotten the error “This convex site does not have http actions enabled”? This is when trying to create the user thru the webhook. I’m sure it’s something I did wrong. Thanks and great video so far!

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

    Did convex change anything regarding their file upload or display ?? Cant seem to display images and it is always showing bad getaway

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

      is this next? did you update your next config to allow displaying images from the convex url?

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

      Yes sir , i did this but i cant view the images in my uploaded website and even the pdfs and such@@WebDevCody

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

      yes i did and it was working fine until today when my other project also started showing the same error in displaying the image . It is leading me to a url with the storage id and not the actual address in the convex database download option@@WebDevCody

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

    What does „use node” directive in clerk.ts file? 45:53

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

      allows the function to run using the normal node runtime instead of their v8 isolate runtime. When you run a mutation, action, and query, by default it uses a runtime with a faster boot time but it doesn't have access to many node_modules. If you need to bring in a third party library, sometimes you need 'use node' at the top of the file so convex knows how to package your dependencies and use them. In most cases, you won't need 'use node'

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

    @WebDevCody What if i want to store files in folders?

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

      You could probably just put a directory path attribute on the file table and then use that to change the perceived path

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

    div classname= grid grid-cols-4 hap-4 // is it shadcn or tailwind? Or just bootstrap??

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

    Uploading file is generating error

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

    I cant seem to display my images or the pdfs as it is showing bad getaway and the URL is coming wrong.Cody is their any way to contact or share the code

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

      My code repo is in the description

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

      I'm not certain, but typing along this is where I have gotten stuck. It looks like that perhaps convex changed something and that /api/storage/{fileId} is no longer the correct path (verify by opening download in a new tab, you will see path does not match) and that they now require an additional storage.generate(fileId) step.

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

      @@WebDevCody A workaround for the above. It works on screen with

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

      Actually

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

    can we deploy it ?

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

    can this be followed by beginners and if not what would you recommend instead ?

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

      define beginners? it's probably geared towards people who somewhat already know next / react a bit.

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

      @@WebDevCody that makes sense. I am brushing up on my react and very much looking forward learning from your project . Thank you for making this available 🙏

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

    Hi I'm trying to learn Nextjs, is this possible for me to do even if I only have free version of Clerk and Convex?

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

      yes, both provide free tiers

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

      @@WebDevCody thank you so much! I hope you can create more of this content where you dev from scratch. More love and support to you man!

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

    how to fix This Convex deployment does not have HTTP actions enabled. error? on webhook

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

      I’ve never seen that error, join the convex discord to ask for help

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

      @@WebDevCody thanks for answer

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

    Which browser are you using?

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

    any thoughts on Supabase vs Convex ?

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

      I already made a video on that

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

      @@WebDevCody glad I found your channel. Cheers,

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

    u think i need to have a better knowlege on convex before this tutorial i am understading the project but idk i am still confuesed abit and is learning convex can help we with mu resume

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

      I have another video walkthrough another convex I’d recommend ruclips.net/video/vaQZYRSiimI/видео.htmlsi=60AAfTtvgnHGwFBy

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

      @@WebDevCody no i understood in this project itself thz, and i like the way u degub on spot excepting more vidz like this really differnt from other creators

  • @adityaraj-zm7zk
    @adityaraj-zm7zk 2 месяца назад

    sir when i click download button it shows 404 error

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

      same Problem where you able to solve it....

  • @mr.zombie8425
    @mr.zombie8425 Месяц назад

    Im sorry, what have you done on 2:15:18

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

    Hey Cody, why didn't you use clean code for this project?
    It would have been great if you had build this project using clean code similar to that you have used in pantry management app before.

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

      Too much added complexity for a tutorial

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

      @@WebDevCody how much is it feasible in order to use convex and clerk to be implemented using clean code pattern?
      Are you planning to make videos on this anytime soon?

  • @90-bhaveshsutar66
    @90-bhaveshsutar66 3 месяца назад

    Is this complete and free project

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

      the demo at the start demos everything I build, so idk what you mean by complete.
      yes, it's free to follow along; both convex and clerk provide free tiers

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

    is there any thing that will require money.

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

      no they have free tiers

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

    bro this video is so amazing it's helpful for me if you can add blueprint for the dotENV file that will be helpful for us

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

    This was a great tutorial and I always like your videos. Me personally I don't like Next.js and prefer not to use it.

  • @adityaraj-zm7zk
    @adityaraj-zm7zk 2 месяца назад

    sir i have a error in this

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

      Ask in my discord if you need help

    • @adityaraj-zm7zk
      @adityaraj-zm7zk 2 месяца назад

      @@WebDevCody sir i post the problem with screenshot my id is adityaraj3645 sir you taught in image alt not show image in card

    • @adityaraj-zm7zk
      @adityaraj-zm7zk 2 месяца назад

      @@WebDevCody sir in when i tab on download error show wrong storage path issue please help me sir

    • @adityaraj-zm7zk
      @adityaraj-zm7zk 2 месяца назад

      @@WebDevCody sir i have already asked but no any response

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

    i like your tutorials but i dont know why in this one I couldn't follow up and got lost after 1 hour

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

      Sorry to hear that, what parts did you find confusing? I’ll try to improve for future ones

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

    please help me asap sir!! I would be very thankful for you!

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

    deployment

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

    Make a frontend for S3 is not trivial task, definitely needs 4 hours tutorial 😂😂😂😂

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

    pleaseeeeeeeee stop Clerk

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

      🤔

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

      @@WebDevCody Next Auth v5 is better and easier to accept API request, Clerk blocked by default

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

      @@luanscar6371 show me the MFA docs for next auth

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

    Thanks bro. But please can you use next auth , not clerk. Clearly no one likes Clerk

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

      I like it

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

      @@WebDevCody I meant your followers, but hey it’s your channel you can do what you want and ignore your followers inputs

  • @v.demchenko
    @v.demchenko 3 месяца назад +2

    Can you maybe prepare in some way before code writing??? You spent 20 minute just to figure out how to manage orgId key... Man, are you Junior dev?

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

      that's not the style I use to code

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

    SIr i have been stuck on an error around the parts where we use the webhook around 48:10 and it is constantly showing
    ConvexError: [CONVEX Q(files:getFiles)] [Request ID: lH1NqL757gebWcm8] Server Error
    Uncaught ConvexError: expected user to be defined
    at async hasAccessToOrg (../convex/files.ts:89:13)
    at async handler (../convex/files.ts:137:8)
    Called by client
    i have been stuck at this for the past two days . what can i be doing wrong and if there is anyway to help please do it . also we only have to run this in 2 terminals right ? one for convex and other for the client side ?

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

      have you looked at the code in my github repo to compare what I have against your code? link in description

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

      sure sir ..will reach you out incase it persists@@WebDevCody

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

    everything is good except for that clerk auth. now every single next tut is married to clerk auth.

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

      Clerk has a lot more functionality compared to next auth, including the most basic auth feature of email registration and login. No one likes magic links

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

    I got this error :
    ⨯ InvalidCharacterError: The string to be decoded is not correctly encoded.
    at atob (node:buffer:1347:11)
    help me to resolve this

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

      this is a 4 hour 30 minute tutorial. if you provided maybe around what part or feature this bug happened, that would be useful; otherwise, I can't help you.

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

      it is showing this error after installation of clerk/nextjs around 10 mins of video
      ,which unable to decode the data