So I completed this video and I took my sweet sweet time, around 1 week. I absolutely loved this, and Cody just has a great talent. For anyone working on this, I also recommend adding extra features in-between, not just following the tutorial, but also add things like messaging & more based on what you learnt to double the chance of it sticking in your mind. Anyways this was great and I never, ever felt so confident adding new features
I don't usually leave comments but this tutorial was fantastic. I really appreciate the unedited version since I can see you debugging in real time and go over your thought process. Honestly, it's been super helpful. From manually dropping tables in SQL and troubleshooting Drizzle, to handling the file uploads PUT requests to the R2 bucket. I felt like I was pair programming with a senior eng. and it was awesome. Also, learned a bunch of new stuff.
1:25:00 Amazing tutorial, I did some small research on the images and there is no need to create a new formData only for the image, you can have your code something like this: const handleFormSubmit = async (e: React.FormEvent) => { e.preventDefault(); const form = e.currentTarget as HTMLFormElement; const formData = new FormData(form); const formImage = formData.get("image") as File; const uploadUrl = await createUploadUrlAction({ key: formImage.name, type: formImage.type, }); await fetch(uploadUrl, { method: "PUT", body: formImage, headers: { "Content-Type": formImage.type, }, ... });
Thanks for commenting this. The way it was done in the video was causing issues with the file upload. Edit: Wow he fixed it in the video 2 seconds later 💀
Great video! The reason why the database auto import doesn't work is the global database variable. I always change the exported database variable name to be different than the global one, so importing it works correctly.
Hey guys a question, we are using R2 for file storage but the setup still requires s3 setup from aws. If we are using S3 setup why dont we just use S3 for all the process and skip the 'middle man'? Whats the benefit of using R2 with comparsion of S3 and vice versa? Danke :))
hey Cody, in one interview one guy aksed me, there is file upload api like a google drive file upload, the upload failed how do u handle if 50% of file is upload and then failed and also how can u resume file upload
Have you used Knock for any production level notification needs? The prices look pretty insane after the first 10,000 notifications... do u have any alternative library u recommend for notifications ?
Hey Cody, loved the content but I was just curious as to why are we not using more shadCN components like form, cards and also dark mode, since we already have it installed for this project?
I just have one question - Why drizzle? Why not prisma? Why you always have to hope from one tech stack to another? Don't you think if you were using prisma then it would have saved you atleast 1 hour?
In the sponsor link, youtube is not considering link after "?", so utm marketing link is not working! You might want to use link shortner. Btw, thanks for the video.
I don't think cloudflare has that same issue that S3 has do they? From their FAQ R2 Docs "You are not charged for operations when the caller does not have permission to make the request (HTTP 401 Unauthorized response status code)."
@@WebDevCody That's good to hear - I'm still not a fan of sharing secrets (like the API key) or account ids, but at least it probably won't affect your other buckets and/or charge you money.
I have a project idea.. But not having proper knowledge and confidence of building project... Can I share you my idea so that you can create project with some improvements and more features
Use supabase to get a free Postgres database, point vercel to your repo, setup your env variables, run your db push against your Postgres db to setup tables
So I completed this video and I took my sweet sweet time, around 1 week. I absolutely loved this, and Cody just has a great talent. For anyone working on this, I also recommend adding extra features in-between, not just following the tutorial, but also add things like messaging & more based on what you learnt to double the chance of it sticking in your mind. Anyways this was great and I never, ever felt so confident adding new features
I’m Glad this helped!
I don't usually leave comments but this tutorial was fantastic. I really appreciate the unedited version since I can see you debugging in real time and go over your thought process.
Honestly, it's been super helpful. From manually dropping tables in SQL and troubleshooting Drizzle, to handling the file uploads PUT requests to the R2 bucket.
I felt like I was pair programming with a senior eng. and it was awesome. Also, learned a bunch of new stuff.
The best of this tutorial is aws s3 file storage I love cody's tutorials
awesome as always - love live coding format
Thanks man
Project video from Cody on a Monday - week made 💪
like someone said: damnn sonn didn't expect this gold content!
i was like .. cody is busy with his SaaS project.
anyways, thanks for this $100 course.
Just switched to drizzle over prisma too. It’s so much better with the SQL like functions
Currently following this by working on a different project idea. Loving this
1:25:00 Amazing tutorial, I did some small research on the images and there is no need to create a new formData only for the image, you can have your code something like this:
const handleFormSubmit = async (e: React.FormEvent) => {
e.preventDefault();
const form = e.currentTarget as HTMLFormElement;
const formData = new FormData(form);
const formImage = formData.get("image") as File;
const uploadUrl = await createUploadUrlAction({
key: formImage.name,
type: formImage.type,
});
await fetch(uploadUrl, {
method: "PUT",
body: formImage,
headers: {
"Content-Type": formImage.type,
},
...
});
Thanks for commenting this. The way it was done in the video was causing issues with the file upload.
Edit: Wow he fixed it in the video 2 seconds later 💀
I love it babe!!!! Good job!!!❤
he is amazing giving free content that we should pay for
thanks sexy
@@ricorico222 he is ❤️❤️
AMAZING
this is gold, you just got a new subscriber man!!!!
your tutorials are always the best
thanks buddy
Really appreciate your work Cody. Keep up the good work. and Keep going.🚀🚀
You are my idol cody, amazing content 💖
your videos are gold my friend! Thank you 🚀
Everything looks so easy when watching him doing stuff 😅
Now this is the content I’m subscribed to this channel for
Crazy dude that you sharing this!! ❤
Great video! The reason why the database auto import doesn't work is the global database variable. I always change the exported database variable name to be different than the global one, so importing it works correctly.
Hey guys a question, we are using R2 for file storage but the setup still requires s3 setup from aws. If we are using S3 setup why dont we just use S3 for all the process and skip the 'middle man'? Whats the benefit of using R2 with comparsion of S3 and vice versa? Danke :))
hey Cody, in one interview one guy aksed me,
there is file upload api like a google drive file upload, the upload failed how do u handle if 50% of file is upload and then failed and also how can u resume file upload
Looking forward to this 😀 👌
Very clear and useful. But how do you run your migration? I got an error with node: packages when importing them from drizzle?
BTW, what is the tool name that you're using while highlighting things? the target icon i mean
Have you used Knock for any production level notification needs? The prices look pretty insane after the first 10,000 notifications... do u have any alternative library u recommend for notifications ?
Hey Cody, loved the content but I was just curious as to why are we not using more shadCN components like form, cards and also dark mode, since we already have it installed for this project?
is it safe to import database on client side and call findMany? I thought drizzle orm is supposed to run inside API handlers. Pls clarify.
I just have one question - Why drizzle? Why not prisma? Why you always have to hope from one tech stack to another? Don't you think if you were using prisma then it would have saved you atleast 1 hour?
so after bidding ends, isn't the highest bidder asked to pay for the item?
In the sponsor link, youtube is not considering link after "?", so utm marketing link is not working!
You might want to use link shortner.
Btw, thanks for the video.
Thanks for pointing that out.
Why you have used docker..? Is it really needed to use docker..?
Please tell me.. docker is used for big multi National projects..?
@@ramendrasoni3368 witihout the docer image it woould be complicated to setup postgres
Any project on react?
you are the best & beast cody 🎉
thanks , where it will be deployed ? and why ? plz
sorry where did you get the database url from?
Anyone got a link to their completed git? I made a similar project independently and would like to compare w/o spending 3.5 hours on the video.
Can you please create just stock register app next. Js multiple roles admin and user
I like the tutorial. Thanks🎉
You should censor your cloudflare access info, dont want someone to spam you with invalid put requests. The account id would be ideal to hide imo
I don't think cloudflare has that same issue that S3 has do they? From their FAQ R2 Docs
"You are not charged for operations when the caller does not have permission to make the request (HTTP 401 Unauthorized response status code)."
@@WebDevCody That's good to hear - I'm still not a fan of sharing secrets (like the API key) or account ids, but at least it probably won't affect your other buckets and/or charge you money.
@@Wundero oh i always delete any keys I used when I publish a video, so those api keys shouldn’t be usable as well
Great video! Can you drop another convex tutorial por favor? Thanks
Yes one coming this month
How can one upload multiple images instead of only one per item...when i try to do it the upstream image response fails as the url is spoiled
You should be able to generate multiple urls and upload to them concurrently
Okayy thanks a lot…later on went that route and it worked
Are you storing files in R2 with the only key being the file name?? So if the same file name was uploaded its going to conflict?
Yes I’d recommend generating a uuid to store the file name instead
It actually happens in the video! 1:37:11
sir what is the databse used in this project??
postgres
could you do the bidding in WebSocket somehow? cause i find it faster than a http request doesn't it or i'm delusional?
That’s an option for sure
You forgot the / in the knock url in the description
Thanks just fixed it
Can you use MERN Stack to create this and post video
I don’t use mongo
I have a project idea.. But not having proper knowledge and confidence of building project... Can I share you my idea so that you can create project with some improvements and more features
😁😁
thanks for the video
Very nice video,
Awesome!
how you we can deploy!??
Use supabase to get a free Postgres database, point vercel to your repo, setup your env variables, run your db push against your Postgres db to setup tables
👍👍👍
🔥
How long it took you to make it? Was this the first try? Be honest.
I mean I typically just record myself live coding / building this from scratch then I go back and clip out the parts I messed up.
Someone deployed?
Im the first
Moore John Jackson Christopher Martin Elizabeth
You should learn more UI and improve it
i found deleting everything in the schema.ts and pushing also works instead of manually dropping tables