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/webapps/dashboardapps/docs
Packages
Shared code, UI elements, and business logic.
packages/uipackages/sharedpackages/ai
Bots
External platform integrations running as microservices.
apps/discord-botapps/telegram-bot
Infrastructure
Database, edge functions, and global tooling.
supabasescripts