ByteBite Docs
Architecture

ByteBite Tech Stack

Current ByteBite tech stack.

Applications

  • Storefront: Next.js + React + TypeScript
  • Dashboard: React + Vite + TypeScript + PWA
  • API: Fastify + TypeScript
  • Docs: Fumadocs

Frontend

  • Tailwind CSS
  • shadcn/ui in Dashboard
  • Storefront uses fixed UX/layout with restaurant-specific branding

Backend

  • Node.js
  • Fastify
  • REST
  • Zod
  • WebSockets
  • DB-backed scheduler for 10-minute pending-order expiration
  • no Redis/BullMQ initially

Data

  • PostgreSQL
  • Drizzle ORM
  • shared database/shared schema multi-tenancy
  • tenant isolation through restaurant_id
  • PostGIS available when needed

Authentication

  • Better Auth
  • e-mail + password
  • roles: RESTAURANT, ADMIN
  • customer account optional; guest checkout supported

Payments

  • BitePay powered by Stripe Connect
  • Direct Charges
  • Manual Capture
  • optional application fee
  • when fee is 0, application_fee_amount is omitted
  • online methods: credit/debit card and Apple Pay
  • offline methods: cash and card-at-door

Address & Delivery

  • Mapbox Search
  • Permanent Geocoding
  • AddressProvider abstraction
  • delivery precedence: STREET > DISTRICT > POSTAL_CODE + CITY > CITY

Notifications

  • AWS SES
  • Twilio transactional SMS
  • sender: ByteBite

Storage

  • Production: Backblaze B2
  • Development: MinIO

Observability

  • Sentry
  • uptime monitoring

Repository & Tooling

  • pnpm
  • Turborepo
  • TypeScript monorepo
  • ADRs
  • Fumadocs from day one

Development

Full Docker Compose environment with:

  • Traefik
  • Storefront HMR
  • Dashboard HMR
  • API watch mode
  • PostgreSQL
  • MinIO
  • .test domains

Production

  • Hetzner Dedicated Server
  • Proxmox
  • dedicated ByteBite VM
  • public IPv4 88.99.0.118
  • Docker
  • Dokploy
  • Traefik
  • NPM not in ByteBite request path
  • Cloudflare DNS for ByteBite-controlled domains

Not Used Initially

  • Microservices
  • Kubernetes
  • Redis
  • BullMQ
  • native apps
  • database per restaurant
  • deployment per restaurant

On this page