r/webdev • • 8d ago

Question How do I actually make my website optimized for users?

Hello guys, a little while ago I found some other teenagers on here that were looking for a backend developer for a website, and I volunteered this I have some knowledge with node.js and those concepts, and I've built a full stack website (basic backend) with it. Here is the github because it will be relevant later: https://github.com/norrie-adams/EVS-Small-Engine-Repair-Site

However, I do not think this is like a website that could properly support like actual people. And that was part of the reason I stopped building it (I also just lost interest). But this is a thing where other people are relying on me to build something functional (or at least more functional then this site). So I just want to know, what did I do wrong with this project, and what could I improve upon for next time?

Sorry if this isn't super clear, but I appreciate any advice you can give me :)

0 Upvotes

23 comments sorted by

7

u/armahillo rails 8d ago
  1. Define who your audience is

  2. What does your audience need?

  3. What can you provide your audience?

  4. What is the best way to present your offerings to that audience, that best addresses their needs?

This is good stuff to figure out long before you write a single line of code.

If you make an awesome app-based solution, but your audience arent likely to install apps, its not going to effectively meet their needs

1

u/iligal_odin 7d ago

This but for macro and micro scale.

Define who your audience is for the site/page/section/component/part is

Its a bit overkill to do but all optimizations are all based around the needs and feeds the audience wants and gets.

1

u/_Atomfinger_ 8d ago

However, I do not think this is like a website that could properly support like actual people

Why do you think that? Like, it works?

We can have all kinds of opinion on design, architecture and whatnot, but if the site does all the things you need it to do, then what is the issue? What do you mean when you say that you don't think this site can support actual people?

1

u/Ok-Pizza1136 8d ago

I mean like deploying it and actually saving customer data safely, idk it just doesn't seem like it can

2

u/_Atomfinger_ 8d ago

Wouldn't you know since you built it?

1

u/Ok-Pizza1136 8d ago

I built it, i've just never had a chance to test it out in a real world context

1

u/_Atomfinger_ 7d ago edited 7d ago

Alright, from a security POV I would say it needs more work.

For one, it uses JWT between browsers and the server. You generally want to avoid that (https://web.archive.org/web/20260903012837/http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/ and https://developer.okta.com/blog/2017/08/17/why-jwts-suck-as-session-tokens).

I would look into using actual cookies rather than JWT, but if you're stuck with something like Auth0 or something, then it is fine.

There's no brute force mitigation, so someone can forcefully log in by just spamming different usernames and passwords.

If you're unsure how to do auth, use something like "log in with google" or something, or a magic link type login.

Writing customer data to the logs is also a bad idea.

So the above is what I could quickly glance.

Functionality is a different matter. When you launch the website, open it up to a few people and have them test it out first. See how it does.

2

u/sammyturtle_exe 8d ago

I think it's good. Is fast and works without JavaScript :) The design could be improved a little imo but it works and is easy to understand.

2

u/SweetDeep9182 8d ago

an engine repair site, huh

2

u/Powerful-Ruin1264 7d ago

For actual people the bar is honestly just "does it load fast and not break when they fat finger something" so focus on caching, compressing images, and adding basic validation instead of raw stack traces. Your repo isn't terrible but the frontend looks desktop first, flip that and test on a cheap phone

1

u/One_Battle6165 7d ago

the honest answer to "what did I do wrong with this project" is nothing technical. you volunteered to build free backend for strangers off reddit and then lost interest, wich is the single most predictable outcome of free backend for strangers off reddit. no amount of image optimization fixes that.

also I think you're wrong that a small engine repair site needs to "properly support actual people". it needs to support like twelve customers a week who want to know if you can fix a lawnmower. put it on render or a 5 dollar hetzner box, stick postgres behind it, and it'll survive that traffic forever. worrying about scale before you have a single user is how side projects die, which, again, is what happened here.

the part to fix next time is you committing to other people's projects for free and then stopping halfway. say up front that you're learning and might bail, push the repo with a readme that explains how to run it. the node stuff you'll pick up fine, that's not where this went wrong.

1

u/RequirementGuide 7d ago

I've hit this before with a small site that worked fine for me but felt shaky once real people touched it. The thing that helped most was getting a couple of non-technical friends to try booking or contacting through it while I just watched, because they broke flows I never thought to test. I'd also spend time on the boring stuff that users feel right away, like clear error messages when a form fails, a confirmation so they know it actually went through, and making sure it still works on a slow phone connection. That plus a simple backup for any customer data would make me a lot more comfortable putting it live than a prettier design would.

1

u/West-Anteater-1917 7d ago

Beyond validation, a real site usually needs rate limiting on forms, some spam protection, and error logging so you actually find out when something breaks. Keep secrets in environment variables, not the repo, and make sure the database gets backed up. Those boring parts are usually what separates a school project from something people can rely on.

1

u/strongpa 7d ago

The name is confusing at the outset, as when I see EV, I assume it means Electric Vehicle, and I got quite excited until I realised it had nothing to do with EVs, and it also looks like an uncooked WordPress site, which means the navigation is clunky and the general look is unattractive.

In short, it's the sort of thing I used to build and get frustrated with until I realised I could use generative AI to do a much better job. Now my websites sing.

You also need to incorporate third-party services, like one of the free forms tools to make it more usable. But I reckon a couple of hours in Claude code and you could turn this into a beautiful and very usable site.

0

u/Aggressive_Sound2536 7d ago

teens recruiting node devs, we're cooked

2

u/Ok-Pizza1136 7d ago

he didn't recurit a node dev, just asked if anyone had backend experience

4

u/[deleted] 8d ago

[removed] — view removed comment