Shop Catalog Restaurant Menu & Ordering Platform
Ericko Wicaksono
Published
A full-stack restaurant menu and ordering platform. Restaurant owners manage menus, branches, discounts, and orders. Customers browse menus, customize items with modifiers, and check out with Stripe payments.
Link: https://www.twine.net/signin
Tech Stack
Layer Technology
Monorepo Turborepo, npm workspaces
Backend Express, TypeScript
Database PostgreSQL, Drizzle ORM
Frontend React 18, TypeScript, Vite
Server State TanStack React Query
Routing TanStack Router
Tables TanStack Table
Forms Zod (validation)
State Zustand (cart)
Payments Stripe (Payment Element)
File Storage AWS S3 (presigned URLs)
Email Nodemailer
Auth JWT (access + refresh), bcrypt
Testing Vitest, Supertest
Project Structure
packages/
db/ Database schema, migrations, and seed data
shared/ Zod schemas, enums, business logic utilities
api/ Express REST API server
web/ React SPA frontend
Authentication
JWT-based auth with access/refresh token pair:
Access token — 15-minute TTL, stored in React memory, sent via Authorization: Bearer header
Refresh token — 7-day TTL, stored in httpOnly cookie
Silent refresh — API client intercepts 401 responses, refreshes the access token, and retries the request
Rate limiting — Login endpoint rate-limited to 5 attempts per 15 minutes per IP