Need help on deciding a web stack

I am currently in highschool, and pretty decent in javascript and python, and I need to build a website that will have users, and levels for a quiz. While I have looked around and the general consensus is using firebase for the backend with either vue or react, I was wondering what would be the easiest and most beginner friendly path to choose as someone new to back end web development
18 Replies
WillsterJohnson
It really depends on why you're building a site. If it just needs to work then the tools you might use will be different than for a site you want to maintain for several years. In any case as you gain more experience you'll find your own preference, for me that's SvelteKit, Svelte, and MongoDB, for others it's XAMPP, for others still it's Express, React, and a PostgreSQL Docker image (or any combination of dozens of technologies). I'm not expecting you to understand what half of those names are, to be honest I barely understand more than a few of them myself. Anyway, we can argue about what's best for what all day and end up at "it depends" so I'm just going to give some suggestions; You want something you can set up now with basic JS/Python knowledge This likely requires using a service such as AWS (difficult) or Heroku (easy but paid) because we'll need to execute code directly rather than through magic that some newer systems use. Your backend will be in python, using the flask library. Flask is great for beginners as you can just get to business logic, but scaling it to larger applications can be a pain and you shouldn't start here if you want to build a large, long-term project. Your frontend will be in JavaScript. You can use plain ol' vanilla or pretty much any assortment of libraries if you want to put in additional time. Your database will be MongDB because it's remote, has a library to make things easier, and it's great at just handling unoptimized crap (proof: my code doesn't blow up daily) so you don't need to learn much. You want something which develops skills that are desirable by employers This doesn't require any special knowledge or services, just push to GitHub and create an account on Vercel then their magic will handle most of it. Your backend will be NextJS, your frontend will be React, and you can choose any remote DB provider you like. You could also use NuxtJS and Vue, or SvelteKit and Svelte, however these are less popular careers-wise, though they're objectively better to develop with and result in faster applications, plus 99% of the concepts are directly transferable. You want something which will be maintainable for years and is robust No you don't. You're in highschool, you're gonna do what everyone else here did and jump from technology to technology all the time for a few years (some folks will deny it - they're liars. We all do this, it's a rite of passage). Find something that's easy to use and is fun to use, it doesn't matter what as long as you can enjoy using it. I recommend giving Svelte a try as it's very easy to use and has plenty of growing room when you need it.
ErickO
ErickO2y ago
also, "general consensus is using firebase" who the frick has been feeding you these lies
SneaX
SneaXOP2y ago
A lot of articles I've seen, and a few of the seniors I know so firebase isn't that good? I will need user authentication in my website I hear firebase makes that easy
ErickO
ErickO2y ago
now THAT's important info firebase can make it easier but idk about easy, there are other options
SneaX
SneaXOP2y ago
any suggestions?
ErickO
ErickO2y ago
do you need authentication AND authorization?
SneaX
SneaXOP2y ago
What's the difference I'm sorry I am new to all of this from the one liner I found on google for this, yes I would need authorization Basically a user logs in/creates an account and they get a level on the quiz level 1 if its a new account or whatever the level it was already on if its a sign in Hmmm, I think the Nuxt and Vue path will work for me, I dabbled around a bit between vue and react and found vue to be more appealing
ErickO
ErickO2y ago
ErickO
ErickO2y ago
that's not necessarily authorization anyway I'll give you some info and once you are building it out you'll see what it needs
SneaX
SneaXOP2y ago
thank you
ErickO
ErickO2y ago
I'll add a different point of view to Willster: Money, Usability, Security: Money or: can you afford to host it? Take into account that any server logic needs to be hosted somewhere that isn't free, are there free options? few of them, most you see are scams and the few that are free are limited to very basic apps the price range will vary depending on the 2nd point that I'll comment on as well as the requirements of your app for example: - If your app needs a front-end and a back-end your FE can be static and hosted entirely for free and the backend can be hosted on a small VPS for a couple of dollars a month - your app needs FE/BE AND a database, same deal but now you have to add a DB, which one? something like Mongo is easy to learn and they offer free hosting that is very basic but will likely be enough, if it isn't enough the price can go up very quickly and that is not exactly great if you don't make money out of it (plus Mongo isn't the most popular DB to hire for), something like SQLite is a bit harder to learn but included in all devices so you could just use it in the VPS you are already paying for and as you grow you can grow your VPS and get a lot more resources for much less cost. Usability or: do I really want to do all this? How comfortable are you with VPS or Linux, do you know how to deploy something from scratch? are you ok at using the terminal, at setting up hooks so your backend gets deployed on every push to main? How much work you have to do on the backend can relate to how much you spend, a VPS is cheap because there's very little that goes into giving you one it is not managed at all and whatever you want to do with it you do it alone. You either learn how to deploy your API and link it to a domain name as well as setting up your database, or you download tools that help you with it but the downside is that they might not be as flexible and they take more resources out of your VPS. Services like: - Supabase (firebase alternative that you can self host) - Coolify - CapRover Or you want something that takes the least amount of effort to setup/host/configure, these are managed services and they tend to be more expensive services like: - Supabase (their managed version) - Railway.app - Fly.io Security or: do you know what you're doing? In general you should take into account security ALWAYS but...you can definitely afford to think of it less with managed services, if you were to host MongoDB on your own VPS you BETTER make sure you understand how to secure it and access it safely, because if you don't...Within 1 day your DB will be hacked and that is talking from experience. But if you worry you don't know how to secure it or really don't want to get into all that then a managed service like Mongo Atlas will handle that for you but once again...more expensive service (tho they have a nice free version) And this goes for everything, your VPS? also included in that, for the most part a good SSH password is all you need but extra security is not bad at all...or...use a managed service. For the API this doesn't apply cause the API is your responsibility at all times anyway so you'll have to secure it no matter what service you use. if you ask me the easiest path for what you want is probably: NextJS Supabase Host the NextJS in something like Vercel or Fly.io Host supabase with them if the free version is good enough, otherwise VPS
SneaX
SneaXOP2y ago
Can you link me to an article about servers, our sponsor has offered a free server to us; though I am not exactly sure what type they have offered as for server deploying, I've hosted minecraft servers if that counts but I am pretty comfortable with the cli
ErickO
ErickO2y ago
I don't really have many resources but: https://youtu.be/YiwBkRukugw
Tony Teaches Tech
YouTube
A Very Simple VPS Server Tutorial for Beginners
Learn how to setup a VPS server running Linux that you can use for website hosting or any number of other use cases. Don't know what a VPS is? What this first https://youtu.be/GQwBzdYRS_c Get a VPS server for free 👉 https://tonyflo.com/VultrPrivateServer ($100 free credit applied after sign up) Find more at https://tonyteaches.tech Check out m...
ErickO
ErickO2y ago
that is a good intro as far as servers go there's basically two types: VPS (virtual private server) which is sharing resources with other VPS because it is all one big server broken up into smaller ones Bare metal which is the actual server so no sharing resources but a lot more expensive
SneaX
SneaXOP2y ago
Makes sense Also would NuxtJS have a similar path to this As I'm more comfortable with Vue, just seems easier on the surface Though I haven't dabbled too much into vue or react at this point
ErickO
ErickO2y ago
Supabase has a specific tutorial for Vue so yes I've no idea where one hosts NuxtJS projects tho can't tell you if there's free options or not
SneaX
SneaXOP2y ago
I just checked and railway has nuxt seems like it'll be no problem then Thank you for all your help Back end web dev is way too intimidating to go into empty handed phew
ErickO
ErickO2y ago
oh yeah, it really is tis a scary place
Want results from more Discord servers?
Add your server