◆ Guildforce is a guild operations platform for World of Warcraft communities.
It helps guild leaders and officers manage rosters, wishes, polls, and forum discussions in one place.
Live app: https://guildforce.app
- Battle.net-based authentication with Supabase session handling.
- Guild-centric operations: members, ranks, roster access rules, and activity flows.
- Wish workflow with status lifecycle (pending, approved, rejected).
- Advanced polls with sections, question logic, respondent targeting, and result visibility rules.
- Full forum system with moderation, sanctions, and realtime notifications.
- Bilingual user experience (French / English).
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite |
| UI | Tailwind CSS, shadcn/ui |
| Backend | Supabase (PostgreSQL, RLS, Edge Functions) |
| Data Fetching | TanStack Query |
| Testing | Vitest, Testing Library |
npm installCreate .env at the repository root (or copy from .env.example):
VITE_SUPABASE_PROJECT_ID="your-project-id"
VITE_SUPABASE_PUBLISHABLE_KEY="your-anon-key"
VITE_SUPABASE_URL="https://your-project-id.supabase.co"
VITE_POSTHOG_PROJECT_TOKEN="your-posthog-project-token"
VITE_POSTHOG_HOST="https://eu.i.posthog.com"
VITE_POSTHOG_ENABLED="true"npm run devnpm run dev- start Vite dev server.npm run build- build production bundle.npm run build:dev- build in development mode.npm run preview- preview the production build locally.npm run lint- run ESLint.npm run test- run Vitest suite.npm run e2e:install- install Playwright Chromium.npm run e2e:auth:record member- record one OAuth session state.npm run e2e:snapshots- capture authenticated screenshots by role.npm run e2e:snapshots:rolepack- run predefined role screenshot packs.
Role snapshots runbook: docs/e2e-role-snapshots.md
Permissions matrix: docs/permissions-matrix.md
- Migrations:
supabase/migrations - Edge Functions:
supabase/functions - Migration procedure (manual):
MIGRATION_SUPABASE.md
◆ Main test folder: src/__tests__
◆ Run checks before PR/merge:
npm run lint
npm run testDeployment runs through GitHub Actions via .github/workflows/deploy.yml:
- Trigger: push to
main(or manual dispatch). - Syncs repository content to the VPS using
rsync. - Runs
npm ciandnpm run buildon the server. - The build regenerates
dist/env.jsfrom server env values (.envand process env) for runtime Supabase and PostHog config. - Reloads Nginx service.
- Never commit secrets (
.env, service-role keys, tokens). - Keep
.env.examplesanitized (placeholders only). - Respect Supabase RLS-first design for all app features.
◆ This project is source-available and proprietary ("All Rights Reserved").
Public repository access does not grant rights to reuse or redistribute the code.
See LICENSE for full terms.