Skam Docs

Monorepo Architecture

Skam uses an advanced Turborepo-powered monorepo structure. This allows us to share UI components, TypeScript types, and core business logic across our web storefront, admin dashboard, and scalable Discord/Telegram bots.

High-Level Data Flow

1

Fetch via RSC

React Server Components fetch data directly from Supabase at build or request time zero client JS overhead.

2

Mutate via Server Actions

All mutations go through Server Actions in apps/*/actions. No API routes for form submissions.

3

Stream via Realtime

Supabase Realtime pushes live updates to the client through custom hooks, keeping the storefront in sync.

Workspace Overview

Applications

Next.js frontend applications for different user bases.

  • apps/web
  • apps/dashboard
  • apps/docs

Packages

Shared code, UI elements, and business logic.

  • packages/ui
  • packages/shared
  • packages/ai

Bots

External platform integrations running as microservices.

  • apps/discord-bot
  • apps/telegram-bot

Infrastructure

Database, edge functions, and global tooling.

  • supabase
  • scripts