I wish just one of these tutorials would teach you how to roll your own EVERYTHING (auth, db, etc.) from scratch, so you aren't dependent on 10 different cloud providers just to have an app, and you actually learn. The one exception being Stripe, because payments suck.
Valid point. However, it's difficult to create something exactly like what you're asking for in a free video. If this were a paid video, I'd completely agree with you. But since it's free, I can't use services like Hetzner, which require a credit card. Many viewers of these videos need access to free tiers...
@@janmarshalcoding No, I'm saying don't use ANY cloud services, except for maybe the bare metal prod server (Ubuntu box). Want auth? Here's how to do full auth using psql. Want to use db? Great, here's how to get psql running locally and on prod.
from engineering learning stand point it would be good to learn the fundamental from scratch, but maybe good to break it down in multiple video. I actually enjoy all the external tools like supabase/kinde... I'm trying to build a startup product and recently realize that having these tools significantly help me reach the market quickly and if i find product market fit I will use the money to decouple some of these dependencies. if not, then it's free and quick solution and goes to trash or become a tool project anyways. just my own experience tho.
Thanks so much for the tutorial, it's so thorough and detailed. I even enjoy the repetitive --legacy-peer-deps and "that's because the server isn't running" haha! I run into one issue because of the conform versioning. the problem behavior is that: during working on the edit article component. I want to populate the form using the existing data from db. when I load or reload that page, the db value showed up for a split of a second then is quickly overwrite with the placeholder. I finally found the problem that it's due to conform's version. i think in your code your are using conform 1.1.5 and i'm using 1.2.1. with 1.2.1 conform always overwrite the value already populated by "value" attribute. downgrade the conform to 1.1.5 the value will show up from the db.
One of the most complete content I've seen! Congrats! I'm only on the two hours mark on the video but I can already say that. Just one question: About the user synchronization from Kinde with the database, wasn't better to use Kinde webhooks, to call an API route once a Kinde event (user.create / user.update etc) was triggered?
First of all thank you, glad you like it and it can help you! To answer your question, yes, Webhooks are a good idea and probably something I would encourage for a production build. The reason why I don't do that is that I started using kinde when webhooks weren't a thing, and that's why got used to doing things I do them... But it's very easy to achieve this if you want to learn it by yourself. Here are the docs: docs.kinde.com/integrate/webhooks/webhooks-nextjs/ I will try to show this in my next video
hey Jan, awesome video! I just finished your other SaaS project but will do this soon. Offtopic tho, please, is that mic a SHURE MV7? If yes, that awesome sound, you used some auto settings in the shure app, obs settings, or anything else? I am really curious about it cos I want to buy that mic :D Thanks!
Hey mate, Yes, this is a Shure MV7. I have the white edition, and I like it. I know there are newer versions like the MV7+ or something similar, but personally, I don’t see any reason to upgrade. It works perfectly for my use case. Initially, I wanted to buy the Shure SM7B, but the issue is that you need to purchase a Cloudlifter and other equipment, which I didn’t want to do since I travel with my mic. Plus, I didn’t really want to spend $600 on a mic setup. The only thing that annoys me about the Shure MV7 is that it uses a micro USB port, and it can be a bit fiddly. I’ve never had any problems with recording, but the cable can still be a bit annoying. I know the new version has USB-C, but I’m not sure if paying more just for a different cable and some RGB lighting is worth it. As for settings, I just use the default ones in the Shure app. I have it set to dark sound mode, and I like it. Inside OBS, I haven’t set up anything because, honestly, I don’t really know what to do in there 😂 ahh and also I have added a pop filter from the shure SM7b (20 dollars on amazon). It helps with plosives a bit more.
Hey Jan. While editing the article, why are we not updating the image? Or is it covered somewhere later in the course? Just wanted to know. About the course though, it's great!
Great tutorial - I like Conform for creating forms, but the documentation they provide is minimal. I would like to use a date picker within a form but I am struggling to see how to get it to work. If someone has done this could they point me in the right direction please?
Also, the left side menu of dashboard ( the links for site , dashboard, pricing) are not visible in smaller screen, guess he forgot to add the menu option.
@@janmarshalcoding Thank you so much Jan. I am building the project in my pace. Hopefully you bring the video quickly about the specific hook. By the way thanks for the video I have also made the ecommerce project and it gave me a lot of confidence. Thanks for always creating such content for free.
Valid question. I discussed this in detail in my video for channel members, but I’ll give you a brief TL;DR: 1. Reliance on Supabase/Postgres → Migrating to another database is much harder and more time-consuming. 2. Great for basic queries, but it becomes challenging when trying to run more complex ones (speaking from experience). 3. I don’t quite like the idea of giving it my public keys. 4. I’m not a fan of RLS (for various reasons...).
Copied from a different comment: First off, yes, Kinde is the sponsor of this video. However, even if they weren’t, I would still never use Supabase Auth. Reasons for that: 1. I find the implementation to be more than just buggy. The SSR package needs to be rebuilt, in my opinion, because it works as expected only about half the time. 2. Supabase Auth is very basic and doesn’t offer any user management features. 3. You have to build the entire sign-in and registration forms yourself. You might think it’s easy, and it is at a basic level, but eventually, you’ll need to prevent your forms from being tampered with. At that point, it’s like starting from scratch again. At the end i create my projects with stuff that i have tested in production and can recommend. And Supabase auth just isn't there were i would like it to be.