A high-scale community management ecosystem for modern gaming guilds
Built with Next.js 15, Express, and Supabase Orchestration
Valhalla is a production-ready community management hub designed for large-scale gaming organizations. It automates the complexities of guild operations—from member rosters and role-based access to financial transaction ledgers and automated loot distribution.
This project showcases Senior Full-Stack Proficiency, integrating modern web frameworks with cloud-native backend services and real-time community tools.
Valhalla utilizes a Hybrid Backend Strategy: Leveraging Supabase for real-time data, storage, and serverless edge functions, while maintaining a Node.js Express API for complex business orchestration.
graph TD
subgraph "Frontend Layer (Next.js 15)"
D[Dashboard UI]
M[Member Management]
T[Transactions]
R[Analytics/Reports]
end
subgraph "Application Layer"
API[Express TypeScript API]
EF[Supabase Edge Functions]
end
subgraph "Database & Infrastructure (Supabase)"
PG[(PostgreSQL/Supabase)]
RLS[Row Level Security]
ST[Supabase Storage]
AU[Supabase Auth]
end
subgraph "External Integrations"
DB[Discord Bot]
end
%% Flow
D -->|JWT Auth| API
D -->|Direct Data| PG
API -->|Service Role| PG
EF -->|Triggers/Logic| PG
PG --- RLS
API -->|Evidence Links| ST
DB -->|Community Sync| PG
- 📊 KPI Dashboard: Real-time visibility into guild health, monthly revenue, and latest community activity using Recharts.
- 🛡️ RLS-Driven Security: Multi-guild isolation at the database level using Supabase Row Level Security.
- 💰 Financial Ledger: Robust transaction management system with evidence upload support and multi-step confirmation flows.
- 📦 Loot Engine: Advanced distribution engine for guild assets with automated share calculation and validation.
- 👥 Roster Management: Dynamic member management with role-based permissions and active status tracking.
- 📄 Pro Reporting: Period-based financial reports with CSV export capability.
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS + shadcn/ui
- State Management: TanStack Query (React Query)
- Charts: Recharts
- Forms: React Hook Form + Zod
- Core API: Node.js + Express + TypeScript
- Cloud Native: Supabase Edge Functions (Deno)
- Database: PostgreSQL (Supabase)
- Identity: Supabase Auth (JWT)
- Storage: Supabase Storage (Private Buckets)
- Node.js 18+
- Supabase CLI
- Docker (for local Supabase stack)
Initialize and start the local Supabase environment:
supabase start
supabase db reset # Appiles schema, RLS, and seed dataCreate .env files for both the API and Web layers:
api/.env: Supabase URL, Service Role Keyweb/.env.local: Supabase URL, Public Anon Key
# Terminal 1: API
cd api && npm install && npm run dev
# Terminal 2: Web Dashboard
cd web && npm install && npm run dev| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/dashboard |
Fetch guild analytics and KPIs |
| GET | /api/v1/guilds |
List authorized guilds |
| POST | /api/v1/guilds/:id/members |
Add new member to roster |
| POST | /api/v1/guilds/:id/transactions |
Initiate new transaction |
| POST | /api/v1/guilds/:id/loot/distribute |
Launch loot distribution |
Fitry Yuliani
Built for the Next Generation of Communities. 🚀