Just to clarify: I’m sending emails to the frontend for showcase reasons, I’m not going to be exposing them like this in the actual app. Emails are considered personally identifiable information. Never expose them on the frontend.
I get the intention, giving realtime feedback is nice. But, please don't do it. All requests will be exposed on the Network tab. Even if you encrypt/decrypt the content, you're already opening the door for anyone with malicious intent to exploit, given they put the effort to crack it. Also, always aim to minimize requests to the server, the only time not to, is when it is money making feature. Best of luck & keep on growing!
@@muhawenimanajanvier6280 I generally agree.. but there is some convenience in not having to use the enter key and seeing it narrow down results as you type. What I had come to the conclusion was using a timeout to send the request if the user isn't typing for 2 seconds or so.. like start the timer every time a key press happens.. and if it times out.. the user paused/looked away/etc.. that way you're making a lot less calls.
Sorry for saying something different here, but I love the way you add the UA-cam ads to your videos. They don't disturb the content. Whatever you're saying or about to display doesn't get disturbed or cut-off with the ads, so it's easy for anyone to continue understanding what you were doing or about to do before the ads. Many youtubers just place ads anywhere in between contents and it just disconnects the viewer from whatever information he/she was trying to get at that moment. Thank you so much for what you're doing and also, thanks a bunch for sharing with us this beautiful journey of yours. I believe it will excel!
Hey!! If I do add them manually (which is something I started purely based on the fact that the automatic ads have been cutting me short of what I was about to say) - like you said, I do try and place them so that you don’t get disturbed. I personally hate it myself when that happens, so I’m trying to get the best of both worlds. Make little income to buy me a coffee, and not disturb my awesome watchers ! 😜 Anyway, thanks for the awesome words, and your support! Another video coming shortly! We will dive deeper into the code and the whole authentication process. 😎
Building your own company and being your own boss is an incredible dream to pursue. It's inspiring to see you sharing every step of the way, including the ups and downs, in this amazing tech journey.
What a great idea to film your process and a coincidence for me to stumble upon this video. I myself am in the last week of finishing a GTM edition of my SaaS product. I developed it the past 2 years 100% alone and felt like living on an island, missing many social events and solving pieces of code in my head, while on a holiday with my girlfriend. The first year was making it work for my own company while learning to develop and the second was knowing how to develop and focused on the first market edition. I closed the first 5 recurring customers and that's a proud moment living and breathing it for such a long time. It's a life changing journey. Even if it will not become successful, the journey is amazing. Might be still a fun idea to share the story like you, but then from GTM onward :-)
@@developerfilip Hey! I developed it as a tool for my eCommerce business, which allowed me to improve with real feedback from me and my colleagues whom using the app. This can be tricky though, because at one point I was fixing feedback issues for employees on an individual level, and not working on the bigger picture anymore. This held back a GTM version. Now I added a "Help us improve" form and collect the feedback in a folder which I work on fixed moments in the month. I try to work on it every day for the compounding effect. Some days I can work full-time, others I have to be very creative. I remember being on a week long festival and just fixed one little functionalities or UX stuff in the mornings, before the party started just a few minutes out of the day. It's a good habit to stay in touch with the project, but friends called me mentally ill ;-) My biggest mistakes along the way are many. Below a few I just remember from the top of my head. - In the beginning I thought too big, so everything felt overwhelming and over the years I learned to break every feature down to the bare basics and build just that. I increment upon it later. - Another one was just a few months back I updated some database models without unit testing (which I still not do...). The whole app crashed big time, but luckily I was able to fix it, recovering the database a few hours earlier. My own business relies on the app heavily, so very stressful. In the end I learned a lot. Can you imagine when you host many high paying businesses... - From the last mistake I decided to connect with corporate freelancers and help them out once in a while. This bring me a lot of knowledge in return. They work on enterprise projects for the government. Everything goes slower, model are written out in flowcharts and every line of code is unit tested (which is not my habit, building a SaaS alone as quickly as possible). It's fun working a few hours a week with these guys and implement great stuff back in my project. - Another big confrontation which feels like a mistake is every line of code I wrote in the past feels like I could have written it better. It's a constant confrontation, because in a process like this you're constantly developing your skills.
Positive: I really like the UX of the password insert. It's very reactive, and the user can clearly see which conditions are met. I also agree that you should go at it the way that feels good to you. There are always more "correct" ways of doing stuff, but sometimes you gotta do it your way. Negative: I think the proposal is lacking. You justified the idea by giving 2 examples of existing problems but did not showcase actual solutions. How will your platform make it easier to learn? how will it encourage students' engagements, considering every course owner today has a dedicated discord? These are the core concepts of your product and should be defined before writing any code. Also be wary that this is a community-based product, aka an egg and a chicken problem. Creators won't spend time on a platform with no students, and students won't pay money for courses in a low-activity site, or even check it out, considering they have such cheap existing options.
Great feedback! Thank you! I do realise there is a lot of stuff I need to cover, and things to discuss, and deeper information about the proposal. I definitely didn’t want too go too deep into detail as this video would have ended up like an hour long! Everything should clarify itself as we move on through the series! As per the community based product, this is also a reason why I want to make it a platform for me to host my own courses, get users to come over and start being active, and then continue expanding to attract external creators!
Also, I love the confetti that appears when you sign up. You should do something similar after each user completes a course module. Something to celebrate the progress. That's one thing I think Udemy is lacking.
I know, I am a little late, but since you asked for feedback, here you go: I really like this project but I just want to remind you that if you consider offering your service in the EU, the GDPR needs to be considered. Many people would argue it is too early to think about legal stuff but I would consider it now since the GDPR regulations greatly affect the user experience for new users. They have to accept cookies and they have to be informed on how you use their data and so on. If you manage to integrate that into the login process early on, it will not break the user experience so much. Anyways, great project and I am looking forward to seeing more videos 👍🏻
Never late!!! Really great advice! I’m not good with Legal so definitely need to read up on it! If you have any other advice, I am super happy to hear more. Thank you!! I will make sure I get a grasp on this!
Good project. Saving Card info imply you should be PCI compliant which imply a bunch of stuff to setup. Maybe you should better store them in another system like Stripe (if you use it as a payment processor).
"easier" & " more efficient" is relative to the person. Example: I find learning human languages very easy -I am fluent in 9 of them and multi tasking being more efficient for me -I get the projects I love doing and the necessary business tasks done to satisfy both sides of my life needs, without getting burnt out and bored on one task. My way of learning and doing things aren't favorable to most ppl. But they still see me as successful, funny how that is. :)
great idea filip. I love community where you can ask question without fear of criticized by others. for the authentication and password, it better to use third party than hashing by yourself.
Great video Filip! And a great idea to document your journey. The information that you are going to will be share really helpful for the people willing to start their own SaaS, like me. Best of luck man.
WoooooW, what an awesome 😎 UI & UX it it really motivated me, i also have a dream to start just my own Company, thanks filp, and as i wait for Avengers new release, i will wait for your new Video,
Just wanted to come back here and say this video is what made me (and probably other people too) subscribe with notifications and incredibly excited for the coming up videos
Hi Filip, it is an interesting video. I have build my own startup in the past that already failed. I have aspiration to build another startup as solo founder. Hopefully I can learn many things from your journey. Thanks for sharing !
Preparing to do something like this in a couple years(the saas startup and making yt videos about building a variety of stuff from scratch) . Let's gooo ... actually thanks for this, glad to have discovered the series! I think viewers would leaarn a lot.
I'm looking forward to seeing what you do, I subscribed. By the way - that feature to check previously used emails is cool, but it's also an easy way to leak user data. It makes more sense to do the check in the backend instead of the frontend. I wouldn't even risk loading it in memory with an API call to the client. Backend is definitely the way to go for a feature like that. I might also be concerned with processing that when there are a lof of users; so using a data structure like a map might be a good call there.
To be honest I just fucking love this idea! and it WILL work because it's too good! And maybe I'll be buying this course if it is worth (I think this is gonna be!) and very much excited for this to get wrapped up! OMG I'm super happy about this I don't why ^_____^ (maybe because I love coding and tech) I really need to know more about like say about Data Base, Cloud, Frameworks like Next.js, stuffs like that! Maybe I'm asking you too much because I'm too excited for this to get completed and I'm a beginner learning JS for the past whole year and just gonna be introduced to know about What is an API is! so kindly bare with me for these requests And I hope this comment will make you happy! And I really like the idea of the UI and the backend works It's looking soo simple and efficient for me... So, yeah if you're reading this comment pls share your opinion on my comment...and hope it'll be great! Love from India! (REALLY LOOKING FORWARD TO SEE THIS TO GET WRAPPED UP!)
You are awesome dude! Thanks so much for this comment! Your excitement is what really motivates me to keep grinding! The whole idea will evolve and definitely become something even more exciting than this! And hopefully my courses will be very much enjoyed by people 😜 As per the tech, I will be showing a lot of stuff of why I use this, why this is important and so on and so forth, so even if it’s not a tutorial you will definitely benefit from watching this! Thanks again dude!
Very best luck to you fillip! I like your content and the way you express your content with great humor! As for the idea - I think that the fact that you are building something with this scale is a great step! I dont understand what is uniqe about your idea but there is a lot you havebt told us probably.... Way to go and good luck!
Hi Filip, It has been great to see your idea and you executing it, it is true that there are other platforms BUT I always thought they were incomplete, I am glad to see that I am NOT the only one who thought the same I've been wondering all summer and you wouldn't know what could help me with your answer. I would like to have your point of view 1. Final September- October I start classes again, I will be combining my work as a Computer Programmer with my Computer Engineering career with 60 credits (a complete course) 2. Even with everything I am determined to give it almost 100% of my time, yes, including a minimal social life. I WANT TO START AN ENTREPRENEURSHIP, and I am choosing between these 2: -- I could get about 3 hours a day, possibly the weekend some more -- 2.1. E-COMMERCE 2.1.1. drop shipping 2.1.2. Ecommerce with physical material I am doubtful between those 2, because with Dropshipping I know that someone can have faster results than with Ecommerce and if someone gets a winning product they can make a lot of dough and quite quickly, BUT it would be me learning with courses and that's it, not mentoring. BUT On the other hand, with Ecommerce it would be with AMAZON FBA, I bought a course in December 2021, I am also in a TELEGRAM group in which they hold meetings to resolve doubts. 2.2. SaaS (Software as a service) This Saas model comes to me because since I was a teenager I would like to create a successful Start up, I am working as a full-time programmer and my career is Computer Engineering- That's why I thought of FOCUSING COMPLETELY ON IT, it would help me improve my skills as a programmer, NOT only earn more with my work but also be able to make my Software's as a business model and create a Start up, and if done well, be quite lucrative. I have a vision that I could set it up quite well, earn money with Software BUT I know that it would take me a lot more time in principle than Ecommerce.Also mention that YES OR YES I want to be related to the software industry and I would not want to be separated from this part either, I think that software and I have to be together, I think it is an industry that can be very lucrative and at the same time in the that I can offer a lot over time • In the event that in the next 2 years, I don't obtain the substantial benefit that I want, in any case I would have a piece of my portfolio and could enter into dumb companies, FAANG with a good pocket money. Also mention that YES OR YES I want to be related to the software industry and I would not want to be separated from this part either, I think that software and I have to be together, I think it is an industry that can be very lucrative and at the same time in the that I can offer a lot over time CONLUSION : I don't know which one to focus on now, Ecommerce or SAAS. Having explained the whole scenario, I wonder WHAT DECISION, WHICH WAY TO GO? Thanks in advance Filip and anyone else who contributes their respect
I personally like how you're thinking through every possibility of a security or system breakdown and proactively working against it. I think with the help of this video, I've gotten some new insights on how I should validate and secure user inputs and simplify the user experience at the same time.
First of all: A really great initiative to build a saas and let us follow your process and be part of it! Loved the idea and instantly became a subscriber! :-) I am a full-time web developer myself and also have a dream of starting my own company! I noticed one thing. When signing up for an account using an email that was already taken I noticed that your API response was that the email has already been taken. It's great user feedback, but my question is: Do you really want to reveal that detail, if the web application is going to be secure. Thinking about that you just revealed half the user credentials of an existing user. This way you can sit and potentially figure out emails of existing users and afterward crack the passwords to gain access to their accounts. If you instead just said something went wrong or gave a specific error code, the user wouldn't know that the email already existed in the database. I know it's small shoes, but questions like these are asked many times during my 9 to 5 hours. PS: I really loved your way of handling password validation. It's a nice twist instead of the traditional boring message telling you to add a special character or a number.
Came to say the same thing. Flip, you're giving up your entire user database. I wasn't going to make this comment until I got to the 13 minutes mark and heard you also plan to store credit card numbers... Even if "hashed" this is a huge responsibility which has quite a few legal requirements in various countries. With that said I'm looking forward to the rest of the series focusing on the business aspects of your project.
Great video! I would love to take a look at the code because I work with NextJs and React for my current job and saw a few things that could be improved upon! No criticism though because it if works it works!
I really like your video. I have also been thinking on starting the same type of video series for my journey. One honest feedback as a Test Engineer, you should never revel the list of user id, right now any one get the list of all user data - email id which can easily be sold off or used for any digital marketing. There should be some other way so just showing the complete list of users to the open world
A suggestion for the community, when the students complete a course let them answer queries put by newer students.under the supervison of the teacher or course experts/creator.let them earn points and make money on the side if possible.
Take care with all emails being returned from the api for the email validation. It could allow someone to easy enumerate all emails from your platform.
Hey Filip! Great content! Keep it up. I have a small question regarding the email checking functionality. More specifically checking whether or not the email has already been used. This makes for a great user experience, but isn't this some sort of a security risk? If someone looked at the network tab, they would be able to identify user email addresses stored in your backend.
Thank you! This is absolutely correct, I’ve already had someone just before you leave a message about this. This is an awesome aspect of having a whole community engage, so thank you. I think I will either have to remove the message, or change the error message to something much more ambiguous. Would you have any suggestions? ☺️
@@developerfilip I don't really know of a way that would be as fluent as yours. Every other way I can think of will require an additional call to the backend when the user has finished typing. The trick would be to make that call as fast as possible to minimize the delay in the validation. Something like cached data or a collection optimized specifically for email lookup. Something like that. I think it might be difficult to find a proper solution, but I am looking forward to the rest of the series and seeing how your software progresses :)
Great question! At some point in the future I want to extend this to live coding help: e.g you connect to a tutor, he helps you live, you chat, you pay some small amount for this, and the tutor makes money. It’s basically a version of a SaaS, you get a service from the platform 😜
Super random, but I really like how you added the 4 guides below the input for how to create a valid password. Very sexy 🏆😂. I'll probably use that pattern for my UIs in the future, and point people to your channel and inspiration
Hey Flip I really liked your solution .. days ago I started my own SaaS project which is different the one you are working now & fortunately I choosed Nextjs too. QUESTIONS Will you share or showcase your code in the upcoming series? Can you share me all the technology stack you are using. My tech stack I use for my project Nextjs.. Tailwindcss.. Redux.. Node.. Express.. Mongodb
Awesome that you are joining me on the journey! As per your questions, yes, I will be diving into the code in the upcoming videos! As per my current stack, I'm using nextjs, tailwind and mongodb, but I will probably end up coming awsay from mongo onto something better. Keep up the great work!!
Hey Filip, I really like the way you validate e-mails! Regarding payments, I think Stripe has a built-in method that automatically saves card details for later payments. Since you'll probably be using Stripe anyway, it might be a good option. How do you solve the problem with concurrent connections limit in MongoDB Atlas? Next.js functions are serverless, so every time a function needs something from the database, it'll make a separate connection to MongoDB, and you can exceed the limit very quickly. I like the idea, though! Good luck, mate! 🤞
Gotta make sure nobody gives me invalid details 😜 Yeah, I’ve used Stripe previously, and it’s definitely something I will be using here. I do agree with most comments, that the idea of doing that myself is too risky and not necessary when it can be achieved with Stripe. So that’s how I will do it moving forward! Yes, I’ve already run into exceeding the connection limit. I definitely always want to close a connection when I don’t need it anymore. Also if I plan to leave a connection open, I will definitely give it a timeout to make sure it closes after a while. I do need to restrict these connections. Still have not figured it out fully. Ha ha Thanks for supporting! Hope you enjoy the series and thanks for the input!
So excited to be part of this journey, I think this app is a great idea to create a programmers only course platform, and I also like the whole community idea. Great Job man. keep Going 👍
Great video! I would be careful about the request to prefetch users full email addresses based on the @ sign. That is a huge cybersecurity concern. It gives attackers a way to phish for valid user accounts.
Could I ask you how long you’ve been coding? I’be currently began my journey to become technical with a goal of building my own SaaS as well. I’d love to know if you furthered your education with a career in tech after your initial courses, or if you got right into building your own tech as soon as you learned? Sorry if this is a confusing question
"Firebase is not as secure as MongoDB"? This is the first video from your channel I'm watching and I kinda like the content, so I will give you the benefit of the doubt (and maybe a chance to explain this affirmation). Otherwise, we already started off on the wrong foot. Sorry, but when someone makes affirmations that can't be backed up by example, I start to question everything they say and don't really vibe with such people :)
I don't like that request to get all emails from the DB starts with "...@". This is the security and personal info reveal question. I guess if you have no authorization (as this is a login page) and no ip request limits for that request - makes this endpoint easy manipulate with crawlers to fetch all user emails from your database.
Nice although I think you're overkilling it. You should look into Firebase or AWS Amplify as a back-end as a service, they take care of auth, routing, db, functions, apis, etc. Also, I would STRONGLY suggest you use some API (namely Stripe) for processing payment and not store the info on your backend! That's just asking for trouble.
I’m using NextAuth within Next.js to handle my authentication stuff. I’m not writing the authentication myself. That would be overkill for sure, and very prone to my errors. As per cards, yes, I was intending to use stripe anyway to handle payments, but I wasn’t sure if they had the option to just collect card details without processing a payment, turns out they do, so that’s great. 😀
Just discovered your channel and being a former (failed) founder myself, I can say that any startup, to succeed, business skills are of the utmost importance, (atleast for us since we failed cause of that). Though it looks very awesome , Best of luck in your journey :)
Hey man!! First of all, I’m sorry that your startup had to result as a fail, I can only imagine how heartbreaking that is, especially knowing how much effort one requires to build something. I do think that every fail is a great lesson to prioritise in the next one (and I do hope that is what you are working towards!). I know I’m not great at business myself, I think marketing is also of extreme importance that I will definitely dedicate a lot of though and time into. Thank you for the heads up, I appreciate every bit of guidance and help I can get! Thanks for watching and the wholesome wishes!! ☺️
@@developerfilip Thank you for the kind words but yeah definitely man, I loved every minute of it and I did learn some amazing things which I wouldn't have as a dev and tbh no harm done since the startup did help me land a top job :p. Single piece of advice, for every product you use, just ask for free credits, we ran entirely on free credits, companies are quite generous to offer even more to keep you on their platform, even startups will offer good amount of free credits
the way you are checking the presence of the entered email in the array of emails that you fetched from the backend might have bad effects on the performance since if its an array of thousands of emails, the page will lag as it searches through the emails
Great point! Considering the emails that are returned are regex matched with what was typed already, it’s very unlikely I will ever get more than 10 results returned. Even if it’s 100, you won’t see any performance drop. Only if millions of people decide to use the same starting emails then we will have problems - and that case is almost impossible!
I agree stackoverflow is toxic. It is not a pleasent experience to ask for help there. No matter how much time I spent perfecting my answer someone still critized it in a non constructive way or marked my answer as duplicate or invalid even though it had not been asked in that context before. I rarely post questions there anymore as a result. In terms of the learning platform you are building, I think there should be a lot of focus on a chat community such that people can get their questions answered fast instead of waiting for days for an answer. In addition I think it would be nice if it was possible to be directed to the code block that is being teached in the video just by going to a specific time slot in the video. This would make it much easier to follow the code.
Thanks for this feedback! So I’m planning to have a live question answer tool on the platform, where people get assigned questions, and maybe somewhat benefit from answering them in a prompt manner! There is so much awesome features that could be developed that I have ideas for! Anyway, thank you so much for commenting and sharing your opinion with me! The code block idea sounds great! Everything is possible. How about being directed to a code block from a time slot in the video, and being able to play around with it live? As in the project.
@@developerfilip A live question answer tool could be really nice. Yes I was thinking exactly that with the code block idea. It is something I have missed for a long time while watching development videos, since I prefer watching videos. On that note, I think the videos should be around 5 to max 10 minutes long and have chapters inside them. Time is a precious resource and attention span even so. It should be fast and easy to get the information you intend to acquire and be able to plan consuming videos. An even better addition to this would be to make a learning path that consists of video courses and articles if that is the prefered consumption method for the student.
Just to clarify: I’m sending emails to the frontend for showcase reasons, I’m not going to be exposing them like this in the actual app. Emails are considered personally identifiable information. Never expose them on the frontend.
Okay and where is then the smart solution? When this logic resides in the backend then you have basically what everyone does
I get the intention, giving realtime feedback is nice. But, please don't do it. All requests will be exposed on the Network tab. Even if you encrypt/decrypt the content, you're already opening the door for anyone with malicious intent to exploit, given they put the effort to crack it. Also, always aim to minimize requests to the server, the only time not to, is when it is money making feature. Best of luck & keep on growing!
@@MrFatelessAnon Are you saying do NOT do a real time request to server as the user types.. to show validation of email? I see a lot of sites do this.
@@b3owu1f You're right, but It's a bad practice and a terrible experience for the users with a slow internet
@@muhawenimanajanvier6280 I generally agree.. but there is some convenience in not having to use the enter key and seeing it narrow down results as you type. What I had come to the conclusion was using a timeout to send the request if the user isn't typing for 2 seconds or so.. like start the timer every time a key press happens.. and if it times out.. the user paused/looked away/etc.. that way you're making a lot less calls.
Sorry for saying something different here, but I love the way you add the UA-cam ads to your videos.
They don't disturb the content. Whatever you're saying or about to display doesn't get disturbed or cut-off with the ads, so it's easy for anyone to continue understanding what you were doing or about to do before the ads.
Many youtubers just place ads anywhere in between contents and it just disconnects the viewer from whatever information he/she was trying to get at that moment.
Thank you so much for what you're doing and also, thanks a bunch for sharing with us this beautiful journey of yours. I believe it will excel!
Hey!! If I do add them manually (which is something I started purely based on the fact that the automatic ads have been cutting me short of what I was about to say) - like you said, I do try and place them so that you don’t get disturbed. I personally hate it myself when that happens, so I’m trying to get the best of both worlds. Make little income to buy me a coffee, and not disturb my awesome watchers ! 😜
Anyway, thanks for the awesome words, and your support! Another video coming shortly! We will dive deeper into the code and the whole authentication process. 😎
Building your own company and being your own boss is an incredible dream to pursue. It's inspiring to see you sharing every step of the way, including the ups and downs, in this amazing tech journey.
What a great idea to film your process and a coincidence for me to stumble upon this video.
I myself am in the last week of finishing a GTM edition of my SaaS product. I developed it the past 2 years 100% alone and felt like living on an island, missing many social events and solving pieces of code in my head, while on a holiday with my girlfriend.
The first year was making it work for my own company while learning to develop and the second was knowing how to develop and focused on the first market edition.
I closed the first 5 recurring customers and that's a proud moment living and breathing it for such a long time. It's a life changing journey. Even if it will not become successful, the journey is amazing.
Might be still a fun idea to share the story like you, but then from GTM onward :-)
Thanks for this! It’s very inspiring! Did you work on it everyday, consistently? What were your biggest mistakes? I need to know!! 😁
@@developerfilip Hey! I developed it as a tool for my eCommerce business, which allowed me to improve with real feedback from me and my colleagues whom using the app. This can be tricky though, because at one point I was fixing feedback issues for employees on an individual level, and not working on the bigger picture anymore. This held back a GTM version. Now I added a "Help us improve" form and collect the feedback in a folder which I work on fixed moments in the month.
I try to work on it every day for the compounding effect. Some days I can work full-time, others I have to be very creative. I remember being on a week long festival and just fixed one little functionalities or UX stuff in the mornings, before the party started just a few minutes out of the day.
It's a good habit to stay in touch with the project, but friends called me mentally ill ;-)
My biggest mistakes along the way are many. Below a few I just remember from the top of my head.
- In the beginning I thought too big, so everything felt overwhelming and over the years I learned to break every feature down to the bare basics and build just that. I increment upon it later.
- Another one was just a few months back I updated some database models without unit testing (which I still not do...). The whole app crashed big time, but luckily I was able to fix it, recovering the database a few hours earlier. My own business relies on the app heavily, so very stressful. In the end I learned a lot. Can you imagine when you host many high paying businesses...
- From the last mistake I decided to connect with corporate freelancers and help them out once in a while. This bring me a lot of knowledge in return. They work on enterprise projects for the government. Everything goes slower, model are written out in flowcharts and every line of code is unit tested (which is not my habit, building a SaaS alone as quickly as possible). It's fun working a few hours a week with these guys and implement great stuff back in my project.
- Another big confrontation which feels like a mistake is every line of code I wrote in the past feels like I could have written it better. It's a constant confrontation, because in a process like this you're constantly developing your skills.
Positive:
I really like the UX of the password insert. It's very reactive, and the user can clearly see which conditions are met.
I also agree that you should go at it the way that feels good to you. There are always more "correct" ways of doing stuff, but sometimes you gotta do it your way.
Negative:
I think the proposal is lacking. You justified the idea by giving 2 examples of existing problems but did not showcase actual solutions.
How will your platform make it easier to learn? how will it encourage students' engagements, considering every course owner today has a dedicated discord?
These are the core concepts of your product and should be defined before writing any code.
Also be wary that this is a community-based product, aka an egg and a chicken problem. Creators won't spend time on a platform with no students, and students won't pay money for courses in a low-activity site, or even check it out, considering they have such cheap existing options.
Great feedback! Thank you!
I do realise there is a lot of stuff I need to cover, and things to discuss, and deeper information about the proposal. I definitely didn’t want too go too deep into detail as this video would have ended up like an hour long! Everything should clarify itself as we move on through the series!
As per the community based product, this is also a reason why I want to make it a platform for me to host my own courses, get users to come over and start being active, and then continue expanding to attract external creators!
These are valid comments but I just want to say that I'll definitely make a course on your platform when it's finished! Keep it up, Filip!
Also, I love the confetti that appears when you sign up. You should do something similar after each user completes a course module. Something to celebrate the progress. That's one thing I think Udemy is lacking.
@@CompSciCentral Yeah! Udemy seems too dry.
So glad this came up in my recommendations! first time I've clicked the bell icon too
Thanks man! You are bringing something new to UA-cam. Really appreciate that.
Amazing password selection page, Filip. Just when I was getting interested in SaaS, I get this video recommended
I know, I am a little late, but since you asked for feedback, here you go: I really like this project but I just want to remind you that if you consider offering your service in the EU, the GDPR needs to be considered. Many people would argue it is too early to think about legal stuff but I would consider it now since the GDPR regulations greatly affect the user experience for new users. They have to accept cookies and they have to be informed on how you use their data and so on. If you manage to integrate that into the login process early on, it will not break the user experience so much.
Anyways, great project and I am looking forward to seeing more videos 👍🏻
Never late!!! Really great advice! I’m not good with Legal so definitely need to read up on it! If you have any other advice, I am super happy to hear more. Thank you!! I will make sure I get a grasp on this!
Good project.
Saving Card info imply you should be PCI compliant which imply a bunch of stuff to setup. Maybe you should better store them in another system like Stripe (if you use it as a payment processor).
Excellent Idea Filip, waiting for the upcoming videos and also looking forward to join the community.
Thank you! Should be a fun one! We will dive deeper into the code in the next video!
Great sharing this, the biggest advice I can share is its never all about tech skills for it to be sucessful, business skills are needed too.
This is so correct!
"easier" & " more efficient" is relative to the person. Example: I find learning human languages very easy -I am fluent in 9 of them and multi tasking being more efficient for me -I get the projects I love doing and the necessary business tasks done to satisfy both sides of my life needs, without getting burnt out and bored on one task. My way of learning and doing things aren't favorable to most ppl. But they still see me as successful, funny how that is. :)
r/iamverysmart
Let's gooooo ! I'm also building a SaaS, I like your videos !
Really looking forward to seeing this progress as a mini series. Hopefully it'll give me some inspiration!
Nice video Filip. I am aiming to make something similar to this idea in the future. Right now, I am still doing research.
great idea filip. I love community where you can ask question without fear of criticized by others. for the authentication and password, it better to use third party than hashing by yourself.
I use bycrypt for hashing and next-auth for authentication 😎
Great video Filip! And a great idea to document your journey. The information that you are going to will be share really helpful for the people willing to start their own SaaS, like me. Best of luck man.
Happy I came across this series, I want to create a SaaS as well. This was a great inspiration!!! Thank you!!!
WoooooW, what an awesome 😎 UI & UX it it really motivated me, i also have a dream to start just my own Company, thanks filp, and as i wait for Avengers new release, i will wait for your new Video,
Love your approach man about doing what you want and you care and doing what works for you. Who cares about the "industry standards".
Just wanted to come back here and say this video is what made me (and probably other people too) subscribe with notifications and incredibly excited for the coming up videos
Thank you! I’m glad you are joining me on this journey! I’m working hard to develop this, so updates will be frequent! Thank you again!
your idea is far greater than any , good work man .
The journey begins 🤩 (&& Happy Holi ).
Hi Filip, it is an interesting video. I have build my own startup in the past that already failed. I have aspiration to build another startup as solo founder. Hopefully I can learn many things from your journey. Thanks for sharing !
Cool series, subscribed for the rest of the playlist
That's really good mate. Hope achieving that quality code.
I'm copying that password validation logic. Brilliant and beautiful.
Preparing to do something like this in a couple years(the saas startup and making yt videos about building a variety of stuff from scratch) . Let's gooo ... actually thanks for this, glad to have discovered the series! I think viewers would leaarn a lot.
that password UI idea was lit🔥
I'm looking forward to seeing what you do, I subscribed. By the way - that feature to check previously used emails is cool, but it's also an easy way to leak user data. It makes more sense to do the check in the backend instead of the frontend. I wouldn't even risk loading it in memory with an API call to the client. Backend is definitely the way to go for a feature like that. I might also be concerned with processing that when there are a lof of users; so using a data structure like a map might be a good call there.
Please continue the good work, i'm tuned.
Immediate user email validation looks super cool👌🏻
Very insightful content! Im a solo dev building in public, cheers!
To be honest I just fucking love this idea! and it WILL work because it's too good! And maybe I'll be buying this course if it is worth (I think this is gonna be!) and very much excited for this to get wrapped up! OMG I'm super happy about this I don't why ^_____^ (maybe because I love coding and tech)
I really need to know more about like say about Data Base, Cloud, Frameworks like Next.js, stuffs like that!
Maybe I'm asking you too much because I'm too excited for this to get completed and I'm a beginner learning JS for the past whole year and just gonna be introduced to know about What is an API is! so kindly bare with me for these requests And I hope this comment will make you happy!
And I really like the idea of the UI and the backend works It's looking soo simple and efficient for me...
So, yeah if you're reading this comment pls share your opinion on my comment...and hope it'll be great! Love from India!
(REALLY LOOKING FORWARD TO SEE THIS TO GET WRAPPED UP!)
You are awesome dude! Thanks so much for this comment! Your excitement is what really motivates me to keep grinding! The whole idea will evolve and definitely become something even more exciting than this! And hopefully my courses will be very much enjoyed by people 😜
As per the tech, I will be showing a lot of stuff of why I use this, why this is important and so on and so forth, so even if it’s not a tutorial you will definitely benefit from watching this! Thanks again dude!
Very best luck to you fillip!
I like your content and the way you express your content with great humor!
As for the idea - I think that the fact that you are building something with this scale is a great step!
I dont understand what is uniqe about your idea but there is a lot you havebt told us probably....
Way to go and good luck!
I hope to see the next episode, you just got a new subscriber :D
Omg thank you!
Please get me in your team. Huge fan of you. Want to work with you as well as wanted to work in a startup.
Send me an email! I’m looking for people to help!
I'm going to do this too! Still in the idea phase :)
Hi Filip,
It has been great to see your idea and you executing it, it is true that there are other platforms BUT I always thought they were incomplete, I am glad to see that I am NOT the only one who thought the same
I've been wondering all summer and you wouldn't know what could help me with your answer. I would like to have your point of view
1. Final September- October I start classes again, I will be combining my work as a Computer Programmer with my Computer Engineering career with 60 credits (a complete course)
2. Even with everything I am determined to give it almost 100% of my time, yes, including a minimal social life. I WANT TO START AN ENTREPRENEURSHIP, and I am choosing between these 2:
-- I could get about 3 hours a day, possibly the weekend some more --
2.1. E-COMMERCE
2.1.1. drop shipping
2.1.2. Ecommerce with physical material
I am doubtful between those 2, because with Dropshipping I know that someone can have faster results than with Ecommerce and if someone gets a winning product they can make a lot of dough and quite quickly, BUT it would be me learning with courses and that's it, not mentoring. BUT
On the other hand, with Ecommerce it would be with AMAZON FBA, I bought a course in December 2021, I am also in a TELEGRAM group in which they hold meetings to resolve doubts.
2.2. SaaS (Software as a service)
This Saas model comes to me because since I was a teenager I would like to create a successful Start up, I am working as a full-time programmer and my career is Computer Engineering-
That's why I thought of FOCUSING COMPLETELY ON IT, it would help me improve my skills as a programmer, NOT only earn more with my work but also be able to make my Software's as a business model and create a Start up, and if done well, be quite lucrative.
I have a vision that I could set it up quite well, earn money with Software BUT I know that it would take me a lot more time in principle than Ecommerce.Also mention that YES OR YES I want to be related to the software industry and I would not want to be separated from this part either, I think that software and I have to be together, I think it is an industry that can be very lucrative and at the same time in the that I can offer a lot over time
• In the event that in the next 2 years, I don't obtain the substantial benefit that I want, in any case I would have a piece of my portfolio and could enter into dumb companies, FAANG with a good pocket money.
Also mention that YES OR YES I want to be related to the software industry and I would not want to be separated from this part either, I think that software and I have to be together, I think it is an industry that can be very lucrative and at the same time in the that I can offer a lot over time
CONLUSION : I don't know which one to focus on now, Ecommerce or SAAS. Having explained the whole scenario, I wonder WHAT DECISION, WHICH WAY TO GO?
Thanks in advance Filip and anyone else who contributes their respect
super nice motivating video !! can't wait to see the following
I personally like how you're thinking through every possibility of a security or system breakdown and proactively working against it. I think with the help of this video, I've gotten some new insights on how I should validate and secure user inputs and simplify the user experience at the same time.
Filip Nice UI,
Hope It will be lit hope you get successful.
How to build Applications, SaaS and by using Chatgpt 4 API
First of all: A really great initiative to build a saas and let us follow your process and be part of it! Loved the idea and instantly became a subscriber! :-) I am a full-time web developer myself and also have a dream of starting my own company!
I noticed one thing. When signing up for an account using an email that was already taken I noticed that your API response was that the email has already been taken. It's great user feedback, but my question is: Do you really want to reveal that detail, if the web application is going to be secure. Thinking about that you just revealed half the user credentials of an existing user. This way you can sit and potentially figure out emails of existing users and afterward crack the passwords to gain access to their accounts. If you instead just said something went wrong or gave a specific error code, the user wouldn't know that the email already existed in the database. I know it's small shoes, but questions like these are asked many times during my 9 to 5 hours.
PS: I really loved your way of handling password validation. It's a nice twist instead of the traditional boring message telling you to add a special character or a number.
Came to say the same thing. Flip, you're giving up your entire user database.
I wasn't going to make this comment until I got to the 13 minutes mark and heard you also plan to store credit card numbers... Even if "hashed" this is a huge responsibility which has quite a few legal requirements in various countries.
With that said I'm looking forward to the rest of the series focusing on the business aspects of your project.
Awesome waiting for the next video.
Great video! I would love to take a look at the code because I work with NextJs and React for my current job and saw a few things that could be improved upon! No criticism though because it if works it works!
I really like your video. I have also been thinking on starting the same type of video series for my journey.
One honest feedback as a Test Engineer, you should never revel the list of user id, right now any one get the list of all user data - email id which can easily be sold off or used for any digital marketing. There should be some other way so just showing the complete list of users to the open world
Man you have awesome way to teach something i really like it❤
A suggestion for the community, when the students complete a course let them answer queries put by newer students.under the supervison of the teacher or course experts/creator.let them earn points and make money on the side if possible.
Awesome idea!!!
What you did is beautiful !
awesome...... cant wait for more
Take care with all emails being returned from the api for the email validation. It could allow someone to easy enumerate all emails from your platform.
Id like to do something this cool. Where are you now
Welcome to the club!
Everything you said about stackoverflow is soooo true
I like your idea 💡
just found this channel
Hey Filip! Great content! Keep it up.
I have a small question regarding the email checking functionality. More specifically checking whether or not the email has already been used. This makes for a great user experience, but isn't this some sort of a security risk? If someone looked at the network tab, they would be able to identify user email addresses stored in your backend.
Thank you! This is absolutely correct, I’ve already had someone just before you leave a message about this. This is an awesome aspect of having a whole community engage, so thank you. I think I will either have to remove the message, or change the error message to something much more ambiguous. Would you have any suggestions? ☺️
@@developerfilip I don't really know of a way that would be as fluent as yours. Every other way I can think of will require an additional call to the backend when the user has finished typing.
The trick would be to make that call as fast as possible to minimize the delay in the validation. Something like cached data or a collection optimized specifically for email lookup. Something like that. I think it might be difficult to find a proper solution, but I am looking forward to the rest of the series and seeing how your software progresses :)
Great series Filip
Good luck and keep it up 💯🚀
Thank You!!!
nice video! i like the concept!
Isn't this technically a platform? Idk if this should be considered SAAS. Looks great either way, I can't wait to watch your progress!
Great question! At some point in the future I want to extend this to live coding help: e.g you connect to a tutor, he helps you live, you chat, you pay some small amount for this, and the tutor makes money. It’s basically a version of a SaaS, you get a service from the platform 😜
@@developerfilip Oh, okay I see now. Well I think it's awesome, and I think you're awesome!
Best of luck with everything!
I liked and subscribed to be with you the journey ! wish you all the best
Thank you!!
11:40 jesus christ. Love the timestamp title "smart solution", top kek
Great job Filip. Sounds good. I enjoy your videos, it feels like we're having a conversation, it's like... natural? Idk, but it's so interesting!
That exactly what it is supposed to feel like! 😎
Super random, but I really like how you added the 4 guides below the input for how to create a valid password. Very sexy 🏆😂. I'll probably use that pattern for my UIs in the future, and point people to your channel and inspiration
Glad you liked it dude! 😎
Happy Holi 🌈
Love the idea 👏
I love what you did with the validation and I am looking forward to see the next part of this series! :)
Hey Flip I really liked your solution .. days ago I started my own SaaS project which is different the one you are working now & fortunately I choosed Nextjs too.
QUESTIONS
Will you share or showcase your code in the upcoming series?
Can you share me all the technology stack you are using.
My tech stack I use for my project Nextjs.. Tailwindcss.. Redux.. Node.. Express.. Mongodb
Awesome that you are joining me on the journey!
As per your questions, yes, I will be diving into the code in the upcoming videos! As per my current stack, I'm using nextjs, tailwind and mongodb, but I will probably end up coming awsay from mongo onto something better.
Keep up the great work!!
Totally loved your idea!! &Happy Holi🥳🎉
Hey Filip, I really like the way you validate e-mails! Regarding payments, I think Stripe has a built-in method that automatically saves card details for later payments. Since you'll probably be using Stripe anyway, it might be a good option.
How do you solve the problem with concurrent connections limit in MongoDB Atlas? Next.js functions are serverless, so every time a function needs something from the database, it'll make a separate connection to MongoDB, and you can exceed the limit very quickly.
I like the idea, though! Good luck, mate! 🤞
Gotta make sure nobody gives me invalid details 😜 Yeah, I’ve used Stripe previously, and it’s definitely something I will be using here. I do agree with most comments, that the idea of doing that myself is too risky and not necessary when it can be achieved with Stripe. So that’s how I will do it moving forward!
Yes, I’ve already run into exceeding the connection limit. I definitely always want to close a connection when I don’t need it anymore. Also if I plan to leave a connection open, I will definitely give it a timeout to make sure it closes after a while. I do need to restrict these connections. Still have not figured it out fully. Ha ha
Thanks for supporting! Hope you enjoy the series and thanks for the input!
So excited to be part of this journey, I think this app is a great idea to create a programmers only course platform, and I also like the whole community idea. Great Job man. keep Going 👍
As the series evolves, everyone watching should get a better sense of my vision 🤪
Great video! I would be careful about the request to prefetch users full email addresses based on the @ sign. That is a huge cybersecurity concern. It gives attackers a way to phish for valid user accounts.
I think you'll need relation database later. Maybe change it from now
I think so too, I’m still thinking about it 😂
I would suggest you use OAuth or 3rd party sign up and sign in. Otherwise, the startup is a really good idea. Love it!
I’m using NextAuth!
Could I ask you how long you’ve been coding?
I’be currently began my journey to become technical with a goal of building my own SaaS as well. I’d love to know if you furthered your education with a career in tech after your initial courses, or if you got right into building your own tech as soon as you learned?
Sorry if this is a confusing question
Also, I loved your “it’s because I can” comment in the video haha
Was this website idea launched? I'm watching this video in 2023, curious if there were any updates
You can query the email string inside the server instead of returning all matching emails
Read the pinned comment!!
keep going bud ,love your work :)
Thanks!!!
Thank you for this amazing video.
Great stuff. Wondering how Firebase is not "secure" compared to Mongo?
Well done! Keep it up
Nice implementation, I'd prefer you use super base instead of firebase, it supports SQL and much more 😂
Great video👍🏾
Interested to hear why you think Firebase is not a secure option? (Assuming that you implement security rules)
Why solo? Why not with ur dev/design/business partners?
I don’t have any! 😅
UI is awesome 💟
"Firebase is not as secure as MongoDB"?
This is the first video from your channel I'm watching and I kinda like the content, so I will give you the benefit of the doubt (and maybe a chance to explain this affirmation). Otherwise, we already started off on the wrong foot. Sorry, but when someone makes affirmations that can't be backed up by example, I start to question everything they say and don't really vibe with such people :)
I don't like that request to get all emails from the DB starts with "...@". This is the security and personal info reveal question. I guess if you have no authorization (as this is a login page) and no ip request limits for that request - makes this endpoint easy manipulate with crawlers to fetch all user emails from your database.
If the platform could be also very projects oriented that will be really great ! For information to really sink in
I will be diving into the interesting coding concepts and code!! So yes, it will be!
that password thing is sick
Great video!
Nice although I think you're overkilling it. You should look into Firebase or AWS Amplify as a back-end as a service, they take care of auth, routing, db, functions, apis, etc. Also, I would STRONGLY suggest you use some API (namely Stripe) for processing payment and not store the info on your backend! That's just asking for trouble.
I’m using NextAuth within Next.js to handle my authentication stuff. I’m not writing the authentication myself. That would be overkill for sure, and very prone to my errors. As per cards, yes, I was intending to use stripe anyway to handle payments, but I wasn’t sure if they had the option to just collect card details without processing a payment, turns out they do, so that’s great. 😀
Good Job Filip !
Great UI!!
Thank you!! Should get even better!! I’m only starting 😜
Just discovered your channel and being a former (failed) founder myself, I can say that any startup, to succeed, business skills are of the utmost importance, (atleast for us since we failed cause of that). Though it looks very awesome , Best of luck in your journey :)
Hey man!! First of all, I’m sorry that your startup had to result as a fail, I can only imagine how heartbreaking that is, especially knowing how much effort one requires to build something. I do think that every fail is a great lesson to prioritise in the next one (and I do hope that is what you are working towards!).
I know I’m not great at business myself, I think marketing is also of extreme importance that I will definitely dedicate a lot of though and time into. Thank you for the heads up, I appreciate every bit of guidance and help I can get!
Thanks for watching and the wholesome wishes!! ☺️
@@developerfilip Thank you for the kind words but yeah definitely man, I loved every minute of it and I did learn some amazing things which I wouldn't have as a dev and tbh no harm done since the startup did help me land a top job :p.
Single piece of advice, for every product you use, just ask for free credits, we ran entirely on free credits, companies are quite generous to offer even more to keep you on their platform, even startups will offer good amount of free credits
the way you are checking the presence of the entered email in the array of emails that you fetched from the backend might have bad effects on the performance since if its an array of thousands of emails, the page will lag as it searches through the emails
Great point! Considering the emails that are returned are regex matched with what was typed already, it’s very unlikely I will ever get more than 10 results returned. Even if it’s 100, you won’t see any performance drop. Only if millions of people decide to use the same starting emails then we will have problems - and that case is almost impossible!
MongoDB & MySQL have their own use cases. Comparing how fast they perform is comparing apple & orange.
You mean MongoDB and Firebase? I’ve compared security 😜
I agree stackoverflow is toxic. It is not a pleasent experience to ask for help there.
No matter how much time I spent perfecting my answer someone still critized it in a non constructive way or marked my answer as duplicate or invalid even though it had not been asked in that context before. I rarely post questions there anymore as a result.
In terms of the learning platform you are building, I think there should be a lot of focus on a chat community such that people can get their questions answered fast instead of waiting for days for an answer. In addition I think it would be nice if it was possible to be directed to the code block that is being teached in the video just by going to a specific time slot in the video. This would make it much easier to follow the code.
Thanks for this feedback! So I’m planning to have a live question answer tool on the platform, where people get assigned questions, and maybe somewhat benefit from answering them in a prompt manner! There is so much awesome features that could be developed that I have ideas for! Anyway, thank you so much for commenting and sharing your opinion with me!
The code block idea sounds great! Everything is possible. How about being directed to a code block from a time slot in the video, and being able to play around with it live? As in the project.
@@developerfilip A live question answer tool could be really nice.
Yes I was thinking exactly that with the code block idea. It is something I have missed for a long time while watching development videos, since I prefer watching videos. On that note, I think the videos should be around 5 to max 10 minutes long and have chapters inside them. Time is a precious resource and attention span even so. It should be fast and easy to get the information you intend to acquire and be able to plan consuming videos. An even better addition to this would be to make a learning path that consists of video courses and articles if that is the prefered consumption method for the student.