Guildforce
Guildforce is an operations platform for World of Warcraft communities. The application helps guild leaders and officers centralize what often gets scattered across Discord, spreadsheets, private messages and collective memory: rosters, class and specialization wishes, polls, forum workflows, permissions and guild documentation.
This project is not just a "tool for players". It is a coordination product. It treats a guild as a living small organization: people with preferences, responsibilities, availability, access rights, sensitive decisions and a season to prepare.
Product Problem
A World of Warcraft guild has to make recurring decisions with partial information. Who wants to play what? Who is confirmed, uncertain or withdrawing? Which officers can arbitrate? Which poll results should only be visible to specific ranks? How do you keep decisions traceable without turning the community into a cold dashboard?
The problem is not only functional. It is a trust problem. A member needs to understand what is being asked. An officer needs to read signals without juggling ten tools. A guild master needs to delegate without losing control. And the community needs to remain governable without turning every interaction into a rigid rule.
Approach
I structured Guildforce around a guild workspace rather than a collection of separate features.
- Battle.net acts as the identity anchor for importing characters, guild memberships and roster data.
- Rosters and class/specialization wishes form the operational core.
- Permissions separate what a member can do, what an officer can arbitrate and what a global admin can supervise.
- Polls, forum, notifications, guild vault and Atlas treat decision-making, communication, moderation and knowledge as connected workflows.
- Product quality also lives in admin documentation, tests, internationalization and access guardrails.
What I Built
- Battle.net authentication with Supabase sessions, account linking, character sync and guild membership sync.
- A guild workspace with members, ranks, rosters, delegated permissions, activity logs and contextual navigation.
- A class and specialization wish workflow with commitment, validation, locking and roster decisions.
- Advanced polls with sections, question types, respondent targeting, conditional logic and separate result visibility.
- A guild forum with categories, topics, reactions, reports, sanctions and notifications.
- Complementary workspaces such as Guild Vault and Atlas, used to manage operational secrets and guild knowledge documents with adapted access rules.
- An admin back office for users, guilds, moderation, requests, legal pages, patch notes, exports and backups.
The verified stack in the repository includes React, TypeScript, Vite, Tailwind CSS, shadcn/ui, Supabase, PostgreSQL, RLS, Edge Functions, TanStack Query, Vitest and Testing Library.
Product Decisions
The first decision was not to reduce a guild to a member list. Guildforce treats the guild as an operational space: a place where people prepare, decide, communicate and document.
The second was to treat permissions as a product feature, not a technical afterthought. Rank-based and user-based access rules structure trust: they allow delegation without making every piece of information visible to everyone.
The third was to separate poll targeting from result visibility. Being allowed to answer a question does not always mean being allowed to read every answer. That matters in a community where some decisions touch real people.
The fourth was to keep moderation and notifications inside the product scope. A forum is useful only if conversations remain findable, followed and governable.
What This Project Shows
Guildforce reflects how I work on complex systems: start from real usage, identify recurring operations, make responsibilities explicit, then build the workflows that let people act without getting lost.
It is also a maker project. It does not stop at framing: it forces architecture, security, UX, documentation, quality and delivery trade-offs. The public result is not an abstract promise, but a live application turning a community problem into an operational product.
Current Limits
I am not showing public usage or impact metrics yet: they should only be added once they are available, reliable and publishable. The next improvement for this page is visual: a product screenshot or interface composition with dummy data, to show the tool without exposing BattleTags, real guild names or sensitive information.
