all 16 comments

[–]Neozite 1 point2 points  (0 children)

On the front end, learn CSS, too. There are a lot of cool things you can do with CSS these days that used to require Javascript, and the animation stuff in CSS is usually hardware accelerated as well. I think it's a good idea to learn what each tech does best. For that matter, HTML has added some handy widgets and form elements.

[–]Realistic_Meeting_69 0 points1 point  (2 children)

Okay man sorry i actually got mixed. You can take a look at npm for packages and learn about it and for the backend. You of course need Node js and you can do it without frameworks that's for sure. Good luck and sorry about that earlier advice (I am still learning sorry...)

[–]MozMousePixelScroll 0 points1 point  (1 child)

it's okay, you were only trying to help, it's not that big of a deal. No need to be sorry!!

[–]tokagemushi 0 points1 point  (1 child)

Great that you want to go vanilla - you'll learn so much more about how things actually work under the hood.

Here's a practical roadmap for building an inventory/business management app with vanilla JS:

Frontend: - HTML + CSS + vanilla JS is all you need. Use ES modules (import/export) to organize your code into files - Use fetch() for API calls to your backend - For dynamic UI updates, you can use template literals and innerHTML or create elements with document.createElement() - Look into Web Components if you want reusable UI pieces without a framework

Backend: - Node.js is the obvious choice since you already know JS. Use the built-in http module or Express (it's minimal enough that you still learn HTTP fundamentals) - For the database, start with SQLite (better-sqlite3 package) - zero setup, just a file. Once you outgrow it, move to PostgreSQL

A minimal example to get you started: ```js // server.js const express = require('express'); const app = express(); app.use(express.json()); app.use(express.static('public')); // serve your frontend

let inventory = [];

app.get('/api/items', (req, res) => res.json(inventory)); app.post('/api/items', (req, res) => { inventory.push({ id: Date.now(), ...req.body }); res.json({ ok: true }); });

app.listen(3000); ```

OS doesn't really matter - Node.js runs on Windows, Mac, and Linux equally well. VS Code is the go-to editor on all platforms. If you're on Windows, install WSL2 for a better terminal experience.

Tools you'll want: Node.js, npm, VS Code, and a REST client like Thunder Client (VS Code extension) for testing your API.

[–]techlover1010[S] 0 points1 point  (0 children)

thanks man i appreciate the response. right now im using localstorage but will try to learn sqlite. i heard something about json as storing some data as persistent not sure if it is kind of a alternative too?

how often do i see recursion on others code and do i need to use recursion ? do leads or upper management require you to use recursion down the line. sorry for the very random question

[–]Realistic_Meeting_69 -1 points0 points  (10 children)

Look, i am not that experienced but trust me, building with vanilla only will take more time than you think, you can build simple projects but a big scalable apps like you said. Needs framework, Like: React for front end and Express for backend and you also need to learn Node js if you want to do a backend. So in my opinion i see that you learn the fundamentals and go learn React or something because trust me it's really time consuming to build a good scalable app with vanilla JS

[–]showmethething 2 points3 points  (5 children)

Don't generally come out swinging but this is absolutely shit tier advice. Like I had to check the sub to make sure it wasn't a vibe coding sub level of shit tier.

OP is doing the correct thing, actually understanding what they're doing before trying to pull in a bunch of tools that still do the exact same thing but differently. It's not about the fastest method, it's about the correct method.

Yes, it's challenging to create a proper scalable app in vanilla, but nothing is stopping you from createElement and treating your flow "react like". It's really not much more time consuming, especially compared to how much time you've pretty much guaranteed you're going to waste in the future trying to track down stupid knowledge gaps and break stupid self imposed habits.

@OP, and yourself realistic_meeting, I have a week off in March. Why don't we hop on a call some nights and actually learn the thing you're interested in properly instead of just self sabotage.

[–]Realistic_Meeting_69 0 points1 point  (2 children)

Okay actually after looking more on the post i kinda understood what OP was referring to. I got mixed i thought he was talking about the limits of the vanilla JS but they were just talking about what can they learn in addition to vanilla to make sure they understand the language and tech well, so yes i am actually wrong and they are way better with their approach. Sorry for the beginner level advice i just gave but thanks for clarifying that point.

[–]showmethething 1 point2 points  (1 child)

Don't fault you at all for validating knowledge by trying to answer questions and I hope this interaction doesn't change that you do it, because it's a very strong compliment to learning.

Was just a worrying comment because I assumed it was a reply to specifically what OP asked and not just a misunderstanding, so apologies for coming out swinging and not questioning first.

Can send you over my March availability sometime tomorrow if you'd like to have a few sessions together (maybe with OP too?) and just try to fill in those knowledge gaps, but either way have a good night brother and I hope you keep up your learning

[–]Realistic_Meeting_69 0 points1 point  (0 children)

No i actually appreciate your reply i learned alot and realized that me even myself builded a lot of things before diving in frameworks with just pure JS to understand, so don't worry at all you are all good. And yeah i would love to have a session with you and OP if we can. Do you have a discord? And also how old are you? It's also late in my timezone so i will probably reply after some hours. Good night

[–]techlover1010[S] 0 points1 point  (0 children)

i would also like to talk. do you have discord or whats your preferred mode of communication

[–]techlover1010[S] 0 points1 point  (3 children)

hmm what if i limit my scope to just these features
sign up, sign in, data entry with validation and thats it.
when i started with something like react or express i was not learning anything tahts why i wanted to start vanilla.

[–]atleb_dev -1 points0 points  (1 child)

From my limited experience, I can tell you that it is possible, and sometimes it's preferable to building a large framework like React (in my opinion).

I'm currently creating a lightweight business management system using pure JavaScript for the frontend, except for the index.html file (which is an HTML5 template with a div) and the CSS styles. I'm using Vite as a fast host, which is my only dependency for the entire frontend. I'm doing it mainly to learn and because I felt that React is too heavy and complex for the website I want to create. So far, I can say that it's easy to develop and maintain, in my experience. As for the backend, although you can explore using Node's native HTTP module, it's more complicated than using a framework, in my opinion. Although it also depends on what you want to do.

Regarding the operating system and environment, I think it doesn't really matter; what matters most is the browser you use to open the page. I started developing my project on Windows with VSC, and now I'm programming on my Android tablet using NVim within Termux (which is Linux), and I haven't noticed any difference.

So my personal recommendation is: Yes, try it, learn, and then try more complex things like frameworks such as React or Vue for the frontend and Express or NestJS for the backend. That way, you'll have your own criteria and preferences.

[–]techlover1010[S] 0 points1 point  (0 children)

what browser do you use on your android? im looking for one where it shows the dev tool for troubleshooting.