Create an E-Commerce Store using Next.js 15, Kinde-Auth, Neon, Upstash, Prisma, Stripe

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

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

  • @janmarshalcoding
    @janmarshalcoding  6 месяцев назад +25

    🚀 Almost 11 hours of pure content. This video took way too long to create and should have been released two weeks ago, but hey, at least I am now finished. If you want to support me in creating more of these long videos, then you know what buttons to click. Also, if you want to get access to more videos, consider becoming a channel member.
    Jan Marshal

    • @sriramhegde1994
      @sriramhegde1994 6 месяцев назад +1

      can you do a tutorial on medusajs cms which is opensource and in high demand

    • @sriramhegde1994
      @sriramhegde1994 6 месяцев назад +1

      nobody has done it in youtube

    • @swarnabhamajumder9561
      @swarnabhamajumder9561 6 месяцев назад +1

      Thanks for such great content, one request from my side can you teach us how to make a saas in the next proejct tutorial.

  • @shazeemalichishty7322
    @shazeemalichishty7322 6 месяцев назад +4

    Mr. Jan Marshal is a great tutor he has done real hard work with lots of love in this tutorial. hats off to him.

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

    Your tutorials are one of the best. I have no experience with Next.js, but I have followed your videos and successfully built these projects. I am ready to give this one a go.

  • @NizzyABI
    @NizzyABI 6 месяцев назад +7

    What a video… can’t wait to watch it all!

  • @skverskk
    @skverskk 6 месяцев назад +4

    Absolutely one of the best Next tutorials I have ever encountered!

  • @algobuddy
    @algobuddy 6 месяцев назад +5

    Great stack to build on. Nice one, Jan!

  • @spaceghost166
    @spaceghost166 6 месяцев назад +2

    What a legend! Thanks Jan! 💪

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

    Jan, thank you so much for this!!
    I’ve been enjoying the course not only because it’s an e-commerce store but also because it’s very easy and understandable.
    Thank you so much bro!

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

    Your channel with the best content on RUclips, your didactic is fantastic!
    Thank you very much to share your videos.

  • @Borracho-y-loco
    @Borracho-y-loco 6 месяцев назад +1

    Great work i follow your projects fot long time

  • @markus_dev_cwb
    @markus_dev_cwb 6 месяцев назад +1

    Omg! Amazing project man.

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

    Hey Jan I love your content and thanks for your hard work. A long way to go yet but learning loads already.😀

  • @MarosiMate-sq2wm
    @MarosiMate-sq2wm 6 месяцев назад +3

    Dude, this is the best stack.

  • @swarnabhamajumder9561
    @swarnabhamajumder9561 6 месяцев назад +1

    Amazing thank you for this wonderful project will learn a lot

  • @CarlosTello-h5s
    @CarlosTello-h5s 6 месяцев назад +1

    nice, good work, please more videos of this type

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

    Jan you are great! if you just create the shipping detail page and sizes variation it will helped a lot.

  • @mohammadabbas1623
    @mohammadabbas1623 6 месяцев назад +2

    This will definitely teach alot

  • @lalitsingh-de1md
    @lalitsingh-de1md 6 месяцев назад +1

    thanks, Jan for this valuable content, I subscribed and liked the video, and I just finished the intro and installation, I will be consistent and finish this project. Love from India.❤

  • @smartdriver2990
    @smartdriver2990 5 месяцев назад +1

    Done. Thanks for the tutorial

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

    thank you so much
    i will add this project to my cv now

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

    9:41:59 was working good now get Unhandled Runtime Error: only plain objects, and a few built-ins, can be passed to Client Components from Server Components. Classes or null prototypes are not supported.

  • @brajagopalmukherjee1588
    @brajagopalmukherjee1588 6 месяцев назад +1

    Bro on 🔥,❤ from 🇮🇳

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

    This is great, Thanks for Sharing.

  • @joshbleijenberg4000
    @joshbleijenberg4000 6 месяцев назад +1

    Amazing!

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

    yooo wait this was posted ar the right time maan 😂

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

    filters for the product categories would be a grt help

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

    Thank you for the video, I want to ask, if the user makes an order, can the store manage the order? such as the item being processed etc.?

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

    Hi Jan Marshall, I'm getting an error 500 "something went wrong" when uploading images using uploadThing but I did setup everything correctly .

    • @aditya_gree
      @aditya_gree 19 дней назад

      same here!! did it got resolved then let me know

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

      well i debugged it ... just change your page.tsx of dashboard/product/createproduct add "use client" on top and add api token instead of api id and secret !.

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

    Just started to follow along and ran into a problem @13:18 you show a public folder during my install it did not create one. how do i get it ?

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

      Hey yeah, sadly Next.js changed its default project directory a bit. You have to now manually create the public folder. But it still works as you expect

  • @ADNANEELOTMANI-y3i
    @ADNANEELOTMANI-y3i Месяц назад

    Dude, thanks.

  • @SameerKad-r8v
    @SameerKad-r8v 3 месяца назад

    Jan 😊, I'm creating multi tenant crm in nextjs, prisma and kinde auth but im stuck in authentication flow so can make video on multi tenant authentication ?

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

    I have a questions. Isn't necessary make an relation between orders and products?, to know what products are in each order. For example creating a new entity OrderProduct to make this relationship. Thanks

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

    good tutorial, in my country its kinda standard to be able to buy stuff wihtout registering in this project you need to be authenticated to use shopping cart to do shopping cart wihtout authentication would local storage be used instead of redis?

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

      To answer my own question short ansver if no user login then better use local storage and state management like zustand however if cart requires user authentication then redis might be better choise as its data is more persistent based on user login instead local storage

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

    Hi Jan, Amazing project thank you! If I wanted to use this project to actually sell PDF documents how could I implement that? Through Upload thing? or as a send it via email once a user has made payment?

  • @marumaru296
    @marumaru296 6 месяцев назад +1

    NICE !
    But how add the shipping fees in the product page and stripe checkout?

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

      When doing the stripe checkout in the server action you can add what ever you want(taxes, shipping)

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

    Sir create one real time chatting app using this stack plus new tech

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

    Hi Jan, could you explain how to make an ai saas, I know you have one but in that video the payments do nothing, it would be good if you implemented subscriptions to plans with different uses of some ai functionality, thank you

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

    Project done, thank you i knew something new, but there is a problem, do you know how we can delete images automatically when we delete the product from dashboard or when we upload images and delete one of them for example, it is still in database

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

    Make a copy of H&M website
    Love you videos bro keep making videos I love it

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

    i wish u can create the part two of it cus og getting the user info for shipping the product and then making it look responsive in mobile cus the navbar could not display in mobile view and i don't know how to solve that problem thanks

  • @CoulibalyCheickMohamed
    @CoulibalyCheickMohamed 6 месяцев назад +1

    Thank u for all man you'r the best, but please bro 8 or 10hours is too much

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

    Thanks !

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

    Hey Jan, This tutorial really helped me, Thank you for the effort, I have a question however, Can I just use my local Postgres db instead of Neon for Prisma? does it make a huge difference in the whole project? Also with the authentication do you have any tutorials for creating our own auth system? Or do you recommend kinde and clerk more because of their security ?

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

      Also, I would love to hear your opinion on a system like MedusaJS , Again thank you for your time and efforts

  • @Hugo-bd7wt
    @Hugo-bd7wt 4 месяца назад

    Hello
    Has anyone managed to implement a pagination function for the all products page?
    I really need your help please.

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

    what is your vsc theme name?

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

    i got error after click signup button "kinde attackers might be trying to steal your information from..."

  • @tushar-tech7
    @tushar-tech7 Месяц назад

    Why is the customer address not being collected? Without a proper address, sellers cannot ensure successful delivery of orders.

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

    3:33:45

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

    I have a question, this project have pagination ?

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

    How to add Pay on delivery option

  • @Sid-om2ub
    @Sid-om2ub Месяц назад

    Really good video but i feel like some thing like the switch case for the category was really unnecessary. Hard coding all the categories is bad and you shouldve made it dynamic.

  • @procoding735
    @procoding735 6 месяцев назад +1

    Bro create blog application using MERN stack nextjs with admin panel and filtering option just ❤❤❤

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

    I cannot see the product model on Prisma studio when I create the product . how's that possible ?

  • @OPGAMER.
    @OPGAMER. 6 месяцев назад +3

    🔥🔥

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

    I am from pakistan , no option id there in stripe , how can i follow the video ? i also don't have bank account

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

    Just started - looks good. The link to Kinde does not work. Thanks

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

      Nice 👍🏻. Was probably an outage with dub.co, because right now everything works for me

  • @adrianfelismino4610
    @adrianfelismino4610 28 дней назад

    26:14

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

    i feel lack of some things such as the quantity of products,Admin's order approval function

    • @janmarshalcoding
      @janmarshalcoding  6 месяцев назад +1

      You are right, I forgot quantity selection, but its simple to add... I would not agree though on admin order approval. Why would you want to approve an order...

    • @chauquang55
      @chauquang55 6 месяцев назад +1

      @@janmarshalcoding I got that part wrong

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

      @@chauquang55 All good mate 🤝

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

      @@janmarshalcoding In my country, when customers buy things online and pay, they have to wait for approval from the store owner. If the store owner is ok, they will send an email and you will receive the goods in 2-3 days.

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

      @@janmarshalcoding As for the number of products, you should add a function to display that quantity for customers to see and if the customer buys too much of the product, it will say that the quantity is not enough and after purchasing, the product number should be displayed. In addition, you should do a search feature by date of price and image

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

    where is the upload thing env part?

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

      there is a typo "uplaodthing" also the file name

  • @hhhhhhhhhhhhhhhhhhhhhh
    @hhhhhhhhhhhhhhhhhhhhhh 6 месяцев назад +12

    I will never understand why people want to use 3 paid dependencies, that you could easily self-host/make your self, in their projects that will at some point just skyrocket your operational costs into oblivion.

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

      Could we skip Neon and self-host? Yes. Could we skip upstash and self-host? Yes. Could we skip Uploadthing and do it with R2/S3? Sure! Nevertheless, I will reserve this for paid vids...

    • @hhhhhhhhhhhhhhhhhhhhhh
      @hhhhhhhhhhhhhhhhhhhhhh 6 месяцев назад +7

      @@janmarshalcoding I just think it's bad practice to make junior devs think they need all these things to build their small little toy projects and sets them up for false expectations in the future

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

      @@hhhhhhhhhhhhhhhhhhhhhh Hello my friend, I am curious to know if you could expand a little more on this topic, what do you mean? Where can you host or use not paid dependencies? Thanks

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

      Is there a free tier option for all these dependencies? Will I need to pay for anything if I want to complete this project? Thanks project looks great

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

      @@JustinNg26 Everything in this video has a generous free tier. **Nothing** requires a credit card!

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

    @2:12

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

    You're selling this as done with next.js 15 (see video title) while it's actually done with next.js 14, please either change your title or upgrade your course.

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

      Well, first of all, I'm not literally selling anything since it's free (I understand you're using the phrase idiomatically). In the intro, I clearly mention that I'm using Next.js 14 for the code, but it's fully compatible with Next.js 15. Whenever I use something that works differently in Next.js 14 versus 15, I always point it out and let the viewers know what they need to do if they're using either version

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

      @@janmarshalcoding No, I was not using the phrase like that, I was in lack of better wording, I'm not native English so forgive me for it.
      I was just wondering about it.

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

    Where is source code?

  • @shees143.
    @shees143. День назад

    👍🏻

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

    Are you polish?

    • @janmarshalcoding
      @janmarshalcoding  6 месяцев назад +1

      I often travel to Poland, but I am German. But Poland is great!

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

    make js stop please😢

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

    @jan i really need your help, in id folder that is page.tsx i hovered in the data to get my interface iAppProps i go this "const data: {
    id: string;
    name: string;
    description: string;
    status: $Enums.ProductStatus;
    price: number;
    images: string[];
    category: $Enums.Category;
    isFeatured: boolean;
    createdAt: Date;
    } | null
    and i skiped the null and did exactly what u did
    so in ;
    the error i got from the data is this
    Type '{ id: string; name: string; description: string; status: ProductStatus; price: number; images: string[]; category: Category; isFeatured: boolean; createdAt: Date; } | null' is not assignable to type '{ id: string; name: string; description: string; status: ProductStatus; price: number; images: string[]; category: Category; isFeatured: boolean; createdAt: Date; }'.
    Type 'null' is not assignable to type '{ id: string; name: string; description: string; status: ProductStatus; price: number; images: string[]; category: Category; isFeatured: boolean; createdAt: Date; }'.ts(2322)
    EditForm.tsx(38, 3): The expected type comes from property 'data' which is declared here on type 'IntrinsicAttributes & iAppProps'
    (property) iAppProps.data: {
    id: string;
    name: string;
    description: string;
    status: $Enums.ProductStatus;
    price: number;
    images: string[];
    category: $Enums.Category;
    isFeatured: boolean;
    createdAt: Date;
    }
    and the error i got from my terminal is this
    ⨯ app/components/dashboard/EditForm.tsx (91:36) @ name
    ⨯ TypeError: Cannot read properties of null (reading 'name')
    at EditForm (./app/components/dashboard/EditForm.tsx:152:64)
    digest: "1205680651"
    89 | key={fields.name.key}
    90 | name={fields.name.name}
    > 91 | defaultValue={data.name}
    | ^
    92 | className="w-full"
    93 | placeholder="product name"
    94 | />
    but this is no error in my EditForm.tsx

  • @BamigboyeTemitope-t4r
    @BamigboyeTemitope-t4r 2 месяца назад

    jan need your help pls
    my model on prisma
    model Product {
    id String @id @default(uuid())
    name String
    description String
    status ProductStatus
    price Int
    images String[]
    category Category
    isFeatured Boolean @default(false)
    createdAt DateTime @default(now())
    }
    my actions.ts file
    await prisma.product.create({
    data: {
    name: submission.value.name,
    description: submission.value.description,
    status: submission.value.status,
    price: submission.value.price,
    images: submission.value.images,
    category: submission.value.category,
    isFeatured: submission.value.isFeatured,
    },
    })
    in my actions file (product is under in red) saying [Property 'product' does not exist on type 'PrismaClient]
    pls need ur help on it

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

    Seems like inspired by @codewithantonio

    • @janmarshalcoding
      @janmarshalcoding  6 месяцев назад +2

      Just because this is a storefront + admin dashboard? 😂. The inspiration came from shadcnui blocks, which has templates for an ecommerce dashboard.

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

      @@janmarshalcoding only one thing to know what features are included here that i cant find in that project . If there is something new i would love to do this project too but with only demo i couldn't find much difference in functionality rather i felt this has less.

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

      @@corpsedad7368 I have not watched his video, therefore I don't know what features his has. All I can say that this is a good project with clean code... But at the end of the day it's your decision.
      I won't be mad if you won't watch this video, haha. All the best mate!

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

      @@janmarshalcoding but can you give me the list of features your project use. And do we write backend in repo. or are using something like convex. And sorry for that at first it looked similar and wrote that comment. 😅

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

      All Good, I take no offense 🤝 For the features you can either open the RUclips description where I have a long list of features, go to my twitter or click on the GitHub repo link. There you will see a list of all features in this video... And for the backend everything is done in this project, no external service is used! I mean besides of course prisma(ORM) and neon(postgres)

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

    @5:43