Hey everyone! 馃憢
鈥婭'm building a tournament management platform (start.gg clone for fun) using a Turborepo generated by the shadcn/ui project creator (the command : "pnpm dlx shadcn@latest init --preset b0 --base base --template next --monorepo")
I'm using pnpm and the following stack:
鈥媋pps/web: Next.js 16.2.2 (App Router - Main Site)
鈥媋pps/admin: Next.js 16.2.2 (App Router - Admin Dashboard)
鈥媝ackages/ui: Shared shadcn components
鈥婦atabase/Auth: Supabase
鈥婼ince shadcn already set up the workspace for me, I want to make sure I'm integrating Supabase the right way:
鈥婼hared Supabase Package: Should I create a packages/supabase to handle the client and types, or just install @supabase/ssr directly in both web and admin apps?
鈥婽ype Generation: How do you handle Supabase CLI gen types in a shadcn-style monorepo? Do you output them to the shared UI package or a dedicated data package?
鈥婽he "Bail Out" Question: Honestly, is managing two Next.js apps with shared shadcn components worth the overhead, or should I just go for a Monolith with an /admin route group? 馃槄
鈥婭 really want a solid architecture that won't feel "shaky" or over-engineered 3 months from now. Any advice or repo examples using this shadcn/turbo setup would be amazing! 馃拃
鈥婽hanks in advance 馃槄
The user is building a tournament management platform using a Turborepo setup with Next.js and Supabase. They seek advice on integrating Supabase correctly within a shadcn/ui monorepo structure, specifically regarding shared packages and type generation. They also question whether managing two Next.js apps with shared components is worth the complexity compared to a monolithic approach.
I can't speak for all the question but /admn route seems like the way to go, keeps you nimble and also if you need an admin app later that shouldn't be too much work to set up.