The challenge
Run client + server together while keeping shared types in sync.
The solution
A monorepo with client (Vue 3 + Vite + TS + Tailwind), server (Express + TS + Mongoose) and a shared types folder, wired with a single npm run dev. The backend exposes REST endpoints for 11 models with JWT auth, Multer image uploads, validation, an email service, and a seed script. The frontend delivers 14+ public pages plus a 12-page admin CMS (Dashboard, Orders, Products, Recipes, Categories, Leads, Custom Cakes, Testimonials, Gallery, Blog, Users, Settings) with RTL Hebrew layout, Pinia stores and a WhatsApp floating button.
Results
14+
Public pages
12
Admin pages
11
Backend models
Hebrew RTL
Primary language
