Hey guys, weird question but am looking for suggestions.
Hey people!
I am starting in web development, and need some suggestions on what technologies I should use for my project.
The project idea is a Restaurant Management Platform
Which you can use a management portal (website) to manage your store, menus, employees and details + multiple branches if you have many locations.
And in-store some desktop-based solution for POS Systems, Kitchen Displays, Customer Displays + more.
I need help figuring out what tech to use for my site and in-store systems.
Currenlty I am using Next.js for my site, and then bun (+hono) for my backend, but I am unsure whether I should probably use Next.js api routes instead.
Also how should I handle in-store communication for real-time order, tracking updates? I may the two options of a dedicated store hub or cloud-based alternative.
Lastly is authentication, I think I like Auth.js, and have had great experience with using that + a database, though am not sure if that'd be suitable for "cooporate" clients.
Thanks guys, I am a complete noob so feel free to give me constructive ideas wherever you see fit :)
71 Replies
Unless it's a scaling issue already, your tech stack is fine
for backend, its fine to use bun+hono
for realtime, you can use direct websockets/sse or use something like socketi/pusher/whatever
authjs sucks for your usecase tho, as you can't really use it outside of nextjs, using something more agnostic and extensive like lucia or paying for a provider can make sure it's better
Thanks for the auth providers that was my main roadblock currently, I did manage to get it working in Hono thanks to some awesome Auth.js library, though will definetly check out Lucia as a better suggestion.
As for the bun+hono part, my main concern was since I'm using Next.js do I make it useless by having it's own backend? Or is next.js still purposeful here?
a.k.a should next.js talk to my backend directly?
or the client talks to backend?
Also how should I pass any authentication along?
Also lucia looks much nicer
nextjs as a api backend is subpar
better to use nextjs to talk to your separate api
any more than that should be specific for your use case
ok that's relieving to hear, i believed I was mis-using /overcomplicating my setup.
I'm also using drizzle and zod for the backend. All that is great and cool?
yeah
unless if you need hyper optimize the code
almost any setup is good enough
just build stuff
Probably not for this project π
What would you do for "hyper-optimzation" though?
is js with zod the fastest? no
if you were to use go/rust/whatever, your request could take 10? less ms, but the time to develop would be greater
oo i see
if you are building something new and not really sure, js is amazing at that
also ill just chuck a few more random probs stupid misc questions.
answer what you like
* for my in-store system, how should i handle authentication on the indivudal systems? like just have some qr-code kind of thing, or manual log-in for each system.
* if I chose a "hub" what should that be using? also a bun + hono system?
* i'm not amazing at databases, so if I had my users as two types "organization manager" vs "branch manager" for scope control, where organization managers handle store data, menus all that, where branch managers can only manage their specific branch/branches with set permissions for different branches. How do you structure such a "permissions-scope" setup. Like how do I specify different permissions, per branch. assume a branchId and organizationId, where branches are under the one organizationId.
sorry for the last one, no need to answer lol
here is an excalidraw that kind of explains the onboarding process
Excalidraw
Excalidraw β Collaborative whiteboarding made easy
Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.
you can ignore most of the comments as idk fully how i want to do it
you should look at design systems interviews
most likely you will learn stuff that you didn't even know you need
where could i find that!
is a common topic to google/youtube