Тёмный

Build a Complete SaaS Platform with Next.js 13, React, Prisma, tRPC, Tailwind | Full Course 2023 

Josh tried coding
Подписаться 157 тыс.
Просмотров 516 тыс.
50% 1

Опубликовано:

 

10 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 1 тыс.   
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
Making these videos is so much effort but thanks so much for all your nice comments, really makes it worth it
@PeterGriffin-ce4gj
@PeterGriffin-ce4gj 11 месяцев назад
thanks josh gigitty
@reubence_
@reubence_ 11 месяцев назад
Why not use clerk?
@jamesnelson174
@jamesnelson174 11 месяцев назад
You are a great content creator and awesome tutor. Nice work Josh.❤
@ajayravi7870
@ajayravi7870 11 месяцев назад
I dont know Next.js prisma and tailwind can I learn from this
@joker-wr8pt
@joker-wr8pt 11 месяцев назад
thank you sir you're great motivation hy guys i'm kinda confused for my final year project what should i make please give me the idea note i'm backend intern at the company in node js, but id do have basic react knowledge which allow me to become full stack now the thing is it's difficult for me to built anything but i;m confused what should i make saas build project unique one
@codinginflow
@codinginflow 11 месяцев назад
This is insane. People are building this project as their startups and Josh just makes a free tutorial out of it🤯
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
appreciate you man, hell yeah
@codinginflow
@codinginflow 11 месяцев назад
​@@joshtriedcoding Happy to see that you managed to stay under 12h 😁
@mzmarshall2351
@mzmarshall2351 11 месяцев назад
Exactly. This is really cool
@user-pe5qy8sy8z
@user-pe5qy8sy8z 11 месяцев назад
For real kudos man
@garudkardnyaneshwar3426
@garudkardnyaneshwar3426 11 месяцев назад
Seriously people’s building their startups using this source of information. 🫡 to josh
@codewithantonio
@codewithantonio 11 месяцев назад
Absolutely insane!!
@PrabhuKiranKonda
@PrabhuKiranKonda 11 месяцев назад
You guys both are just insane. 🔥
@roguesecurity
@roguesecurity 10 месяцев назад
But your saas-ai tutorial was best😁
@iam_greatful
@iam_greatful 3 месяца назад
😅😅
@shadowslayer2248
@shadowslayer2248 9 дней назад
U know the content is fire if one developer GOD on YT comments this on another person's video
@zjsievers1
@zjsievers1 10 месяцев назад
A true tutorial - The fact that you spent almost an entire chapter explaining why the auth-call back is important/how it works is extremely impressive and helpful.
@muhammadzainmumtaz6036
@muhammadzainmumtaz6036 7 месяцев назад
bro can u tell me which database is useed in this project. im new😒😒
@Nathan-xk3hd
@Nathan-xk3hd 11 месяцев назад
Damn 11 hours Josh! Thanks for working so hard to bring this content to the community and not putting it behind payed JS tutorials and signups. Super clean keep up the good work.
@developerpranav
@developerpranav 11 месяцев назад
🤯🤯 God this is awesome! Auth + PDFs + Stripe + OpenAI Streaming! Josh you're a legend! This will get me a real job by the end of this year 😆 Thank you so much!!
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
Appreciate ya man, that would be awesome
@ahmadalghali
@ahmadalghali 11 месяцев назад
Hopefully you get a good job! However, technologies focusing on the having a REST api and SPA approach rather than tRPC is most likely what you will be doing in a job and that’s what will resonate more with your interviewers, some might not even have heard of tRPC and might pick a candidate that can show they understand the standard web practices betterZ Nevertheless, best of luck with your job search!
@developerpranav
@developerpranav 11 месяцев назад
Thanks a lot for the insight! @@ahmadalghali
@al-ft1ng
@al-ft1ng 11 месяцев назад
Josh you are insane man. Those videos are going to be insanely helpful for people like me who have the basics down but don't know exactly how to proceed efficiently with certain things. Much much love bro.
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
happy to hear that! I've learnt the same way when getting started
@flavioneto1081
@flavioneto1081 11 месяцев назад
can't imagine how much effort went into it, this content for free is just insane. you're killing it bro
@mehdichamiani6838
@mehdichamiani6838 11 месяцев назад
I really like these videos that are unqiue and advanced at the same time, there are always Netflix, Twitter, Amazon clones out there BUT this one rocks. Thanks Josh, really appreciate it man.❤❤
@KalyaElisha
@KalyaElisha 6 дней назад
Thank you for this tutorial Josh. Start to finish tutorials are rare.
@mortenkristensen4541
@mortenkristensen4541 4 месяца назад
Number #1 advise nobody ever gives you: To avoid too many conflicts (usually happens due to new versions of a package). Make sure your package.json file matches Josh's file on github. If you run into issues, align the two and write pnpm up. It will update all your packages to the matching versions of Joshs
@DivyarajsinhGohil14431
@DivyarajsinhGohil14431 4 месяца назад
thanks man
@x-ecutors8601
@x-ecutors8601 4 месяца назад
Hey, sooo, I was doing this. However, I noticed that everytime, I try downgrading the @tailwindcss/typography": ^0.5.12" to the same one with Josh. It just does not downgarde and was still like that.
@edwardchungweb
@edwardchungweb 10 месяцев назад
1:46:38 [React Query issue] As React Query 5 has just been released and the current version of tRPC (v10) still depends on React Query 4, the installation cmd of tRPC would be: pnpm add @trpc/server @trpc/client @trpc/react-query @trpc/next @tanstack/react-query@^4.18.0 zod . And this would be updated in tRPC v11.
@edwardchungweb
@edwardchungweb 10 месяцев назад
2:06:22 React Query 5 has a breaking change that all callbacks have been removed from useQuery. So the use of onSuccess callback here is no longer feasible.
@amardeep6088
@amardeep6088 10 месяцев назад
@@edwardchungweb hey then what would be the new code for this
@bradenstitt4678
@bradenstitt4678 8 месяцев назад
@@amardeep6088Use useEffect if the status is successful or an error
@abrahamgonzalez3167
@abrahamgonzalez3167 8 месяцев назад
@@bradenstitt4678 Hi! what would the code with useEffect be like?
@jacklagrosepiquette-qy3hq
@jacklagrosepiquette-qy3hq 7 месяцев назад
This is my implementation, I use an useEffect for that useEffect(() => { // error code unauthorized : if (error?.data?.code === "UNAUTHORIZED" ) { router.push("/sign-in"); } // success else if (!isLoading) { router.push((data !== undefined && data.success && origin) ? `/${origin}` : "/dashboard"); } }, [data, isLoading]); @@amardeep6088
@_jb5261
@_jb5261 11 месяцев назад
Great video Josh! For those building this, an improvement to this is to validate pdf pages on drag enter or click upload and show the error state in the upload input. Or you could show a message on each upload on the free tier stating that even if they upload a pdf with more than 5 pages only the first five pages will be accepted The second option is more user friendly and would probably work better.
@yashiscoding
@yashiscoding 11 месяцев назад
I'm really looking forward to build this Josh. I'm very happy to find out a great teacher like you. Keep them coming.
@user-pn4go4ml6g
@user-pn4go4ml6g 11 месяцев назад
this video is an absolute gem! 😍 It's incredible to see a complete SaaS platform being built from scratch using such an impressive stack of technologies.
@muaazsarfaraz1067
@muaazsarfaraz1067 7 месяцев назад
You are a gem - 11hrs of straight valuable content with nothing behind paywall
@judevector
@judevector 11 месяцев назад
Whaaaaaat,am I dreaming or what 🤯. Josh thank you so much this will help many of us that has Sass ideas but not very good at building pages like this Kickstart it . Thank you so much ❤
@lochanarathnayake11
@lochanarathnayake11 11 месяцев назад
WTF , This Is Amazing Bro , The Best Saas Project Ever I Seen On The Internet , Thank You For Your Hard Work ....
@snivels
@snivels 11 месяцев назад
Incredible, incredible work man. You're truly a gift to the community.
@universecode1101
@universecode1101 11 месяцев назад
This is the coolest project you did Josh 🚀
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
Cheers dude!
@roberth8737
@roberth8737 11 месяцев назад
Absolutely love these complete project sessions - awesome work Josh!
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
cheers man!
@chessknock17
@chessknock17 11 месяцев назад
This is amazing. Please make more full-stack projects 🎉
@gokulkrishnan7989
@gokulkrishnan7989 10 месяцев назад
Excellent work! A gentle suggestion would be add the following components as part 2. Feature flags/experimentation using posthog etc., event tracking using umami , and headless CMS for marketing. This would be deadly combo. Most of the tutorials do not cover these components with SaaS. These are very important for product optimization. Thank you
@eves.2825
@eves.2825 3 месяца назад
Thank you for such a lovely project Josh, it truly is beautiful. Word of advice for anyone doing this now: a lot of things have changed and it make it really difficult to follow along especially as you're learning, TCRP has updated their docs , the library isn't free and some issue with Pinecone. Maybe do something more up to date.
@gabrielbianchi2246
@gabrielbianchi2246 11 месяцев назад
Josh, you have officially stepped up your game big time You continue to impress me and the work you put into these videos is trully inspiring
@AlphabetAYT
@AlphabetAYT 11 месяцев назад
Found this gem and can't believe you are going to teach all of this for FREE! I am going to watch the whole thing and give an update.
@user-tr7vl7vb3o
@user-tr7vl7vb3o 5 месяцев назад
Great video, In the part of getting the user information at the beginning of creating the dashboard, I realised that you have to use 'await' in front of 'getKindeServerSession' and 'getUser' function, and accordingly make the page an async function.
@WarTornTales
@WarTornTales 5 месяцев назад
hey, my code still doesn't work and your the only one who commented about a potential fix, but when I put await in front of both the functions instead of getting an error under email, I just get one under the "user" (in user.email)
@chinemelumchuba-nwene1503
@chinemelumchuba-nwene1503 4 месяца назад
@@WarTornTales make the function enclosing the "await" keyword an async function by adding it like this: const page = async () => { const { getUser } = getKindeServerSession(); const user = await getUser(); if(!user || !user.id) redirect('/auth-callback?origin=dashboard'); return ( {user?.email} ) }
@liwanshsaini1661
@liwanshsaini1661 3 месяца назад
@@WarTornTales same issue mate. is there any solution? please help
@nitishramaraj
@nitishramaraj 2 месяца назад
​@@liwanshsaini1661 Make the function async then await getUser, should work then!
@JosephChancey
@JosephChancey Месяц назад
@@WarTornTales Also, you may be getting a typescript error because user can be null from KindeUser, so you must add the question mark in front of user like so "user?.email"
@josephdodd4208
@josephdodd4208 11 месяцев назад
Absolutely insane to offer this kind of content for free! You are a true 🐐for doing this Josh! Pushing small business forward is a huge step to tackle the corporate conglomerate landscape we see today. Best of luck to everyone who will start their own side hustles from content like this, let's come up with great ideas 💡
@jaygadhetharia7224
@jaygadhetharia7224 7 месяцев назад
For 2:05:35 this might help u const query = trpc.authCallback.useQuery(undefined, { retry: true, retryDelay: 500, }); // Check for errors in the query result if (query.error) { const errData = query.error.data; if (errData?.code === 'UNAUTHORIZED') { router.push('/sign-in'); } else { // Handle other types of errors console.error("An error occurred:", query.error); } } // Continue with other logic based on the query result if (query.data?.success) { router.push(origin ? `/${origin}` : '/dashboard'); }
@SiddharthKumarGope
@SiddharthKumarGope 6 месяцев назад
can you explain how you came up with this solution.
@jaygadhetharia7224
@jaygadhetharia7224 6 месяцев назад
just searching everywhere google , gpt etc @@SiddharthKumarGope
@zillakamisosmula570
@zillakamisosmula570 3 дня назад
@@SiddharthKumarGope chatgpt
@marcodrone5119
@marcodrone5119 20 дней назад
This is the best tutorial I've seen on RU-vid
@mehulparekh619
@mehulparekh619 11 месяцев назад
Its an amazing project. I was confused about the t3 stack but it is the best stack for me now. Trpc and prisma makes backend so much easier. Thanks Josh for such quality content !
@rohankupate5917
@rohankupate5917 5 месяцев назад
Hey sir I have one problem after deployment on vercel can you help me . Suddenly my upload button stopped working?
@poiozexful
@poiozexful 5 месяцев назад
Your content is amazing! This helped me a lot to build my first SaaS. You inspired me to code with vigor, based on this video. Although I didn't create an AI SaaS, I used the foundation of the project as a starting point.
@oluwaseunladeinde410
@oluwaseunladeinde410 10 месяцев назад
This blew me away. First, it's a fully deployable application, the tech stack used is modern, the teaching was clean and clear, it's very in-depth content; very thorough. Then it's free at the same time. Josh, thank you very much. I have a question though, seems react-query has deprecated onsuccess from their UseQuery and ultimately trpc follows. Would there be an updated tutorial to improve on this as I got stuck at that point? Still reading up on my way around though. Nevertheless, thank you, Josh!
@zjsievers1
@zjsievers1 10 месяцев назад
were you able to resolve this?
@leonvanzyl
@leonvanzyl 9 месяцев назад
This doesn't bode well for the use of TRPC in production applications. Either way, the solution is to use the useEffect hook from React. import { useRouter, useSearchParams } from "next/navigation"; import React, { useEffect } from "react"; import { trpc } from "../_trpc/client"; function Page() { const router = useRouter(); const searchParams = useSearchParams(); const origin = searchParams.get("origin"); const { data, isLoading } = trpc.authCallback.useQuery(undefined); useEffect(() => { if (!isLoading && data) { // User synced router.push(origin ? `/${origin}` : "/dashboard"); } }, [data, isLoading, origin, router]); } export default Page;
@me-yn1mn
@me-yn1mn 9 месяцев назад
Great video josh, if anyone cannot get pinecode working around 7:14:14 , try deleting namespace, cuz that's not for free version anyone
@adarshmehta8983
@adarshmehta8983 6 месяцев назад
I was not getting an error for using namespace though I am using the free version of pinecone, I am getting an error for pineconeIndex in core.ts and importing PineconeClient in pinecone.ts. Is there any fix for this? There is no data reflected on my pinecone database. I am stuck here for days
@mangeshjahirrao
@mangeshjahirrao 7 месяцев назад
At 4:58:30 you might face an upload error, as it might uploading error where you won't be able to see the file uploaded when you try to open it and it will say that the file upload fail. If you face this problem go back to core that ts and modify the existing onUploadComplete to this: .onUploadComplete(async ({ metadata, file }) => { const createdFile = await db.file.create({ data: { key: file.key, name: file.name, userId: metadata.userId, url: file.url, uploadStatus: "PROCESSING", }, }); remember we have changed the url from the aws address to file.url because the aws URL doesn't work and it shows 403 forbidden at the point when I'm working on it. So make this change for URL and you will be able to solve the error. Thanks
@behzad5849
@behzad5849 4 месяца назад
did u get it run , I need some queries , I am facing issue that even the pdf file gets uploaded , and is visible but even the page is 1 or 2 page , the chat side still shows pdf too long ,
@gregfredder8645
@gregfredder8645 8 месяцев назад
Josh you built a complete startup and didn't ask for a penny. You are the real king bro. I want to be like you man
@bytequest1552
@bytequest1552 7 месяцев назад
I don't know whether it's with me or with everyone but, Josh you have made using various technologies extremely difficult here. The order of defining things, using libraries and partial explanation of topics is really creating a barrier for me every time I try to complete it. It's just what I felt. I would really like other opinions too, but only from those who have at least spent 2 hrs completing the coding from this project. Please don't comment if you are just watching it.
@freelancermuhsin
@freelancermuhsin 4 месяца назад
"In nextjs 15 the development starts fast". You are a future teller. Josh said that on minute 35 and 57th second.
@tshiamotodd3644
@tshiamotodd3644 11 месяцев назад
Hey Josh thank you for making this video... Quick question brother... The current free tier of pinecone does not support namespace so it makes it difficult to group vectors to a single file. Do you know of any other tool similar to pine cone that provides namespaces on its free tier?
@razexamvs8756
@razexamvs8756 11 месяцев назад
Facing the same problem
@SoraKokai
@SoraKokai 11 месяцев назад
Woooow, insane man, thank you for the content!
@user-vi6yv5xl7q
@user-vi6yv5xl7q 10 месяцев назад
Hello. It is the 9 of November 2023. I am doing this course. I am at 1:31:29 and the code works only if I will create async Page.tsx component and if I will call the getUser function using await. I don't know why. But may be this comment will help somebody
@parttimer18
@parttimer18 3 месяца назад
thank you bhai❤
@hawksgaming1107
@hawksgaming1107 2 месяца назад
How ? Thanks ❤
@parttimer18
@parttimer18 2 месяца назад
@@hawksgaming1107 getUser is a async method, bcz everytime getUser method is called, kinde make connection with database and fetch the user details, this process needs time, so that's why await is used, hope it helps 💪
@akosnagy3933
@akosnagy3933 18 дней назад
THX bro
@user-db1ue8om7v
@user-db1ue8om7v 11 месяцев назад
Amazing! Congrats on this awesome release!
@jameshonour7661
@jameshonour7661 7 месяцев назад
Hello developers, for anyone having the issue rendering the pdf file, which it does not show up on screen and the network request return a 403 error, this is how you could resolve it, go to core.ts file and under the onUploadComplete change the url from the modified one to file.url, somehow the url that Josh provided is not working, so go with the file.url instead and remember to delete all the files before retrying because the url of the files is already invalid. Hope this help!!
@teenageworrior1634
@teenageworrior1634 5 месяцев назад
still show Failed to load PDF file. and pop up opens to download that pdf
@jameshonour7661
@jameshonour7661 5 месяцев назад
​@@teenageworrior1634 The issue might be with your browser. I get the same issue using Chrome because of the default behavior of the browser when dealing with PDF files; it triggers the download manager instead of displaying it, but even when I change the settings, it does not work. I do not know why, but there is one solution to this issue to my knowledge: using a different browser like Microsoft Edge.
@matarloum2894
@matarloum2894 3 месяца назад
The file.url instead of the Josh url solved the rendering of the file. You saved my mental state. I still have the "Too many pages in PDF" even with small pdfs but probably is another error.
@mostlycoffee7
@mostlycoffee7 5 дней назад
@@matarloum2894 did you find the solution to this "too many pages in pdf" error ?
@christianharris5783
@christianharris5783 5 месяцев назад
Dude thanks for this! Ive been learning coding on my own and have been learning WAY more through this than just random projects. Thanks again!
@christianharris5783
@christianharris5783 5 месяцев назад
also being new to this - how do you change from npm to pnpm? do you use the terminal to change this before you open the code in VSL?
@MuhammadBilal-kj9lp
@MuhammadBilal-kj9lp 11 месяцев назад
I haven't watched the video but thank you so much for this hardwork. Appreciated
@shyamande1761
@shyamande1761 5 месяцев назад
Can i use an alternative for planetScale, as it doesn't have any free plan
@SperaDidiza
@SperaDidiza Месяц назад
Good question
@NuRRRL96
@NuRRRL96 11 месяцев назад
Amazing job Josh! You've been a major help in my learning experience. Imo saving the file after every className would be amazing to show exactly how everything works.
@maby7228
@maby7228 11 месяцев назад
Hello Josh, first of all, I loved the project, so I appreciate your great work. I've been following it, but I'm having an issue with the Pinecone integration. It seems that since you made the video, the way it works has changed a lot. Now, it has a different type of pod, a pod-starter. In your case, you can select the pod-s1, but whenever I try to implement it, I always get an error saying that I exceed the maximum transfer quota. I couldn't find a way to solve it since the documentation doesn't specify how to do this using Lang, as in your video. Besides, I don't understand much about AI things. I wanted to know if you knew of any solution.
@mitol5549
@mitol5549 11 месяцев назад
I spent a lot of time, but I found a solution for pinecone 1.1.1 and pod type starter. in pinecone.ts: import { Pinecone } from '@pinecone-database/pinecone'; export const pinecone = new Pinecone({ apiKey: process.env.PINECONE_API_KEY!, environment: 'gcp-starter', }); in api>uploadthing>core.ts: ... const pineconeIndex = pinecone.Index('quill'); const embeddings = new OpenAIEmbeddings({ openAIApiKey: process.env.OPENAI_API_KEY, }); await PineconeStore.fromDocuments(pageLevelDocs, embeddings, { pineconeIndex, }); ... that works for me...
@SrElmoGamer
@SrElmoGamer 11 месяцев назад
@@mitol5549 I really need help. How you fix the type error in pineconeIdex? Type 'Index' is missing the following properties from type 'VectorOperationsApi': _deleteRaw, _delete, delete1Raw, delete1, and 16 more.ts(2740) pinecone.d.ts(8, 5): The expected type comes from property 'pineconeIndex' which is declared here on type 'PineconeLibArgs'
@michaelfrieze
@michaelfrieze 10 месяцев назад
@@mitol5549 I am still getting a typescript error on pineconeIndex. "Type 'Index' is missing the following properties from type 'VectorOperationsApi': _deleteRaw, _delete, delete1Raw, delete1, and 16 more.ts(2740)" EDIT: Nevermind, the code you shared does work. I just had to update langchain to get it to work. I am using: "langchain": "^0.0.172" "@pinecone-database/pinecone": "^1.1.2", I am still able to use the free starter from pinecone.
@StabilDEV
@StabilDEV 10 месяцев назад
this doesnt partition the index by pdf so every question will always be answered using all PDFs of all users... @@mitol5549
@carpye
@carpye 11 месяцев назад
So that's why you haven't posted for 2 weeks. Can't wait to start building this. Great product!
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
yep, wanted to make this the best project possible
@Nishanth_S
@Nishanth_S 11 месяцев назад
@@joshtriedcoding Hey, did you completely build this from scratch in just 2 weeks?... If That so, Absolutely awesome dood. ❤
@riodjajoesman4989
@riodjajoesman4989 5 месяцев назад
Hey josh, in 2:04:38, you used onSuccess in the useQuery function but as of now it’s deprecated and cannot be used anymore. Can you suggest a workaround to this? Thanks
@joesuss4669
@joesuss4669 5 месяцев назад
did you get a workaround? im facin the same issue.
@zillakamisosmula570
@zillakamisosmula570 3 дня назад
same issue with me , have you find any solutions yet ??
@mohamedbenjdira7729
@mohamedbenjdira7729 2 дня назад
@@zillakamisosmula570 check this code const query = trpc.authCallback.useQuery(undefined, { retry: true, retryDelay: 500, }); // Check for errors in the query result if (query.error) { const errData = query.error.data; if (errData?.code === "UNAUTHORIZED") { router.push("/sign-in"); } else { // Handle other types of errors console.error("An error occurred:", query.error); } } query.data?.success && router.push(origin ? `/${origin}` : "/dashboard");
@ahbarajaib2357
@ahbarajaib2357 3 месяца назад
Hi Josh, thank you for making this, i watched the intro to the course. Its amazing what you are doing.
@LongBoy.0
@LongBoy.0 2 месяца назад
I've gotta say, I was excited until the first 2 hours of the video felt like copy pasting classnames. You really have to find a way to avoid that in tutorials. If I could re-design this experience, I'd start with the backend functionality first because its the most exciting part and the main reason why people will pick this up
@movocode
@movocode 7 месяцев назад
Hello Josh, Thank you for making this tutorial. Can you also make a tutorial where customers can set custom domains in SaaS (multi-tenant system) in Next.js
@teenageworrior1634
@teenageworrior1634 5 месяцев назад
Complete wast of time 😢. Due to pinecone and open ai api 🤬
@srinathjayachandran7203
@srinathjayachandran7203 5 месяцев назад
why?
@joesuss4669
@joesuss4669 5 месяцев назад
why?
@Lol69HahaFuni
@Lol69HahaFuni 5 месяцев назад
Why?
@joesuss4669
@joesuss4669 5 месяцев назад
@@Lol69HahaFuni hey are you building this app?
@Lol69HahaFuni
@Lol69HahaFuni 5 месяцев назад
​@@joesuss4669 I am yes. Why?
@abderrahimelayadi
@abderrahimelayadi 10 месяцев назад
thank you so much ;from you effort that tend you to bring us this awesome project as much of knowledge you let us know also understand how nextjs work as a full stack SAAS Plateforme thank you again💻💻💻💻💻💥💥💥💥💥💥💥💥💥🧑‍💻🧑‍💻
@abderrahimelayadi
@abderrahimelayadi 10 месяцев назад
i get this error related to cors ?????? Access to fetch at 'uploading-prod.s3.us-west-2.amazonaws.com/ebe45169-7581-4016-80ef-a897056151cc-vdhpga.pdf' from origin 'localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
@samislam2746
@samislam2746 7 месяцев назад
I'm just amazed you made all of this in just 11 hours, if I was asked to make it, it will take at least one month from me to finish it
@akuoko_konadu
@akuoko_konadu 11 месяцев назад
Kinde is really easy to work with, wow it's so cool. And it's good they provided a free version
@shivanshusingh-qy3iq
@shivanshusingh-qy3iq 11 месяцев назад
One of the best tutorials I've come across. Amazing depth!
@LM43243
@LM43243 11 месяцев назад
Only 30 mins in, but I want to thank you Josh - this is amazing! Love that you actually explain everything you do, unlike 99% of other tutorials on youtube. Please stay that way, much obliged :)
@joshtriedcoding
@joshtriedcoding 11 месяцев назад
cheers dude, so happy to hear that!
@wego-k4811
@wego-k4811 11 месяцев назад
Jesus!! Been absent just for some days just to come back and see such amazing content. Love your work so much. 👍👍👍
@yantech.4249
@yantech.4249 11 месяцев назад
Josh you are amazing. You turn a startup project to a free video tutorial. Thanks man you are one of the best on RU-vid
@SAsquirtle
@SAsquirtle 11 месяцев назад
okay this might actually be the greatest project I've seen on youtube
@zxcvbnm-pb1we
@zxcvbnm-pb1we 11 месяцев назад
What a video. Golden content. Everyone watched this content should definitely pay for it. This is insane. Subscribed.
@Yahya_Umar
@Yahya_Umar 11 месяцев назад
"Excellent video! I'm eager to learn and build an inventory management system using Next.js. Could you please consider creating a tutorial on this topic? Your tutorials are always top-notch, and I believe it would be incredibly beneficial for learners like me. Looking forward to more great content!"
@MarceloPlaza
@MarceloPlaza 7 месяцев назад
Thank you so much. It is really a gem, so much information available that surpasses even entire courses or tutorials.
@mikaelpettersson5916
@mikaelpettersson5916 7 месяцев назад
This is the third Saas tutorial i have seen of the exact same idea/solution/function (even libraries). Guess it is a good concept.
@jamesabasifreke
@jamesabasifreke 6 месяцев назад
Not surprised. I actually think despite all the hype in the comments that this was a poor tutorial. 40 mins in and it's mostly magic (css hardcoding everywhere). I just keep hearing "I promise, this is the last time", but it's not been the case so far. No depth in explaining what's happening and the alternatives, or even a link to go learn more. Tailwind looks like magic here too. I guess that's a prerequisite and I wish it was mentioned at the start. So far it feels like a "follow after me" guide, rather than a tutorial, which is more of a "teaching" session. Right now, I'm following blindly and that doesn't sit well with me.
@luisloyola3591
@luisloyola3591 11 месяцев назад
you're an animal, a beast, the final boss. Thx for this great tutorial.
@mayanksh219
@mayanksh219 6 месяцев назад
Hey Josh, Amazing Lecture bruh. You taught such good concept about Authentication Systems, Next.js. I'm sure you have no idea how good you taught in this lecture. Thank you very very much.
@YouS4ckIt
@YouS4ckIt 11 месяцев назад
Gotta say first 10 minutes and learned already 2 new very useful hotkeys great
@swapnilharpale-ic5fq
@swapnilharpale-ic5fq 11 месяцев назад
Woahhhh what an effort to teach us end to end saas building. Thank you josh
@dragosmorozan1841
@dragosmorozan1841 11 месяцев назад
I really appreciate your style. The way you explain things is very clear, which is a significant advantage when learning something new like this. Thank you for this excellent tutorial!
@AztkSmooth
@AztkSmooth 9 месяцев назад
Currently laid off and studying for my cka exam but once I’m done I’ll be working on this while applying for jobs. Thanks man.
@falcan7752
@falcan7752 7 месяцев назад
Mate, You seem good lad. I gonna watch and build my own. You are good with it mate! After building my own, I gonna call it MINE! You are doing good mate!!!!! Cheers 🍻
@backonbring
@backonbring 11 месяцев назад
Just discovered your channel, and I must say, you create some of the best content out there! Keep going at it, I will definitely recommend your videos and I will for sure keep watching!
@tomich20
@tomich20 11 месяцев назад
Awesome Josh, im subscribing. Keep it up!
@_aryan_570
@_aryan_570 11 месяцев назад
🙂Man, I'm speechless, I am learning so much here. Thank you so much.
@hashblast3r
@hashblast3r 11 месяцев назад
Great job Josh. Love how you add explanations and side comments instead of just writing the code. You are great at teaching man! We will now expect one of these full projects every week 🤣🤣🤣🤣🤣
@paul-ochieng
@paul-ochieng 11 месяцев назад
Bro you literally hold my freelancing career 🤗. Never stop the value is unmatched
@koltuz
@koltuz 11 месяцев назад
Just finished the similarity project like in 8 days, this will take me a month! Thanks you Josh, learning a lot with you, greetings form Chile
@razexamvs8756
@razexamvs8756 11 месяцев назад
Have u done with the pinecone??
@adityakunwar1524
@adityakunwar1524 11 месяцев назад
hey josh you can use ALT + Z to wrap the content and fit accordingly to your vscode width, like you mentioned the className was too big and you were scrolling. thanks for the video! Greate stuff!
@user-lp7oy8di4t
@user-lp7oy8di4t 11 месяцев назад
"Great video! Looking forward to more tutorials on Next.js projects, especially ones related to inventory management. Your content is always top-notch!"
@omereker8824
@omereker8824 11 месяцев назад
thanks for this huge effort. A shortcut for you and my fellow foreigners that are using multiple keyboards, Windows key + space quickly changes the keyboard locale :)
@itsliquidistic8239
@itsliquidistic8239 11 месяцев назад
Bro this tutorial is FIRE🔥 Josh can you make a Perplexity AI clone in the next video, and with subscription model etc. Thank you :)
@adnanamin3666
@adnanamin3666 11 месяцев назад
3:40:38 - into the video and I'm speechless! How much you can learn in one video? A lot lot!!! 👏❤
@goatslayer5957
@goatslayer5957 6 месяцев назад
Love you Josh this is awesome!!! Thanks for making the web better!
@charliesta.abc123
@charliesta.abc123 11 месяцев назад
11hrs of great content??? What is going on here? Josh brother man, I have no words for what you do for your community ❤
@robertm4934
@robertm4934 11 месяцев назад
I've began working on a lot of Next side-projects for my work, and although I follow a lot of the best practices that I've seen and read up on thus far, this video will cement a lot of things, I'm sure of it. I plan on watching this and re-creating it this weekend, thank you Josh! You and Web Dev Cody are saints 🙏
@rohankupate5917
@rohankupate5917 5 месяцев назад
Hey sir I have one problem after deployment on vercel can you help me . Suddenly my upload button stopped working?
@abhilashm5236
@abhilashm5236 11 месяцев назад
I am following all your videos , it’s very informative ❤️. Can you also make one video about micro front end architecture with next 13.4+
@J1MKAKA1N
@J1MKAKA1N 10 месяцев назад
Thanks a lot! Instead of duplicating PdfRenderer and its state for a fullscreen mode, I would suggest using browser's natvie FullscreenAPI either directly or via libraries like react-fullscreen. This method shares the state between full screen and normal mode and renders selected components without any dialogs/modal windows. Cheers :)
@joejiang8353
@joejiang8353 10 месяцев назад
Great tutorial! Josh, you are a legend, so attentive to details and cover a wide range of topics!
@53Queijos
@53Queijos 6 месяцев назад
much love and success for you bro, i do not have words
@mobythereal
@mobythereal 11 месяцев назад
You really outdone yourself on this one. Congrats man what an amazing tutorial! Please keep these kind of videos up.
@jeffkyengofficial754
@jeffkyengofficial754 4 месяца назад
Instant subscribing. To the up and up!!
@rawazmahmood
@rawazmahmood 11 месяцев назад
What a legend! Keep it up, Josh. This is insane!
@TechMagic204
@TechMagic204 4 месяца назад
I am madly impressed! Cheers mate!
@user-fs8dd6pt4t
@user-fs8dd6pt4t 11 месяцев назад
Thanks for this I was about to start a project I wanted to use TRPC but I was waiting for your video since I don't understand the docs the perfect time Thanks so much
@elcontrastador
@elcontrastador 11 месяцев назад
Your content is stellar. We appreciate you, Josh!
@felixchukwu9133
@felixchukwu9133 11 месяцев назад
Thanks for all the effort you have put in creating this project. These features are rare to find,even in paid courses
@raphaelbridi
@raphaelbridi 11 месяцев назад
In the src/app/auth-callback/page.tsx, this code will never reach the onError function because the retry will never end. You have to set the retry param to a number. Eg: 5. After 5 retries, the onError function will get called. Also, the route path of line 22 is not correct. It should be something like /api/auth/login. For some reason, I had to replace line 22 with that (window.location.href = '/api/auth/login?') to get the login flow work. Thanks a lot of this video. You are an excellent teacher
@AJEDUTALK
@AJEDUTALK 11 месяцев назад
Hey bro please give me the auth call back code
@mindfuel2193
@mindfuel2193 10 месяцев назад
Thank you for that. It works perfectly now. For those who are struggling, just copy the below code onError: (err) => { if (err.data?.code === 'UNAUTHORIZED') { window.location.href = '/api/auth/login?'; } }, retry: 5,
@Isaac-gz8wx
@Isaac-gz8wx 7 месяцев назад
@@mindfuel2193would you mind providing your whole code for this auth-callback/page.tsx file??? the onSuccess was not working for me either
@mindfuel2193
@mindfuel2193 7 месяцев назад
@@Isaac-gz8wx How can I contact you?
@kanhakesarwani971
@kanhakesarwani971 2 месяца назад
@@Isaac-gz8wx any resolution? please tell
@GuiZeroUm
@GuiZeroUm 10 месяцев назад
Bro... this is insane!!!!! I build and use this in my college right now XD Say hi to Brazil
Далее
Growing fruit art
00:33
Просмотров 1 млн
Как подписать? 😂 #shorts
00:10
Просмотров 192 тыс.
The Better Way to Load Images
8:46
Просмотров 46 тыс.
How I use Reddit and AI to find winning startup ideas
21:20
Fetching Data Doesn't Get Better Than This
6:58
Просмотров 114 тыс.
Front-end web development is changing, quickly
3:43
Просмотров 999 тыс.
A Sneaky Way to Make $40k+ From SaaS
14:34
Просмотров 226 тыс.
So, you want to build apps & websites?
9:34
Просмотров 159 тыс.
Growing fruit art
00:33
Просмотров 1 млн