Skip to content

Checking access...

FAS Repository Map

This document maps each repository in the Frontend Application Split project to its purpose, key exports, and relationship to other repos.

Repository Overview

RepositoryTypePurposeKey Exports / Features
apiPackageIC canister client utilitiescreateActor, ApiResponse<T>, ERROR_CODES, checkServiceHealth
authPackageAuthentication context & hooksAuthProvider, useAuth, ProtectedRoute, AuthContextValue
uiPackageShared UI components & Tailwind configButton, Card, Modal, ErrorBoundary, cn, Tailwind base config
suite-templateTemplateBase template for new suitesGitHub template repo -- use "Use this template"
think-tank-suiteSuiteThink Tank productivity appMission Control, Workspace, Chat, Fleet, Backlog, Capture, Settings
governance-suiteSuiteGovernance & voting UIProposals, Voting, Discussions, Deep Links
marketing-suiteSuitePublic marketing site with SEOLanding page, waitlist, i18n, pre-rendered HTML, sitemap
otter-camp-suiteSuiteOtter Camp game UIPhaser.js game, character creation, multiplayer, combat
dao-suiteSuiteMember dashboard (DAO portal)Dashboard, proposals, voting, treasury, membership, settings
dao-admin-suiteSuiteAdmin dashboard with RBACKYC review, member management, governance oversight, treasury
.github (dot-github)InfraReusable CI/CD workflowspackage-publish.yml, suite-deploy.yml, shared-test.yml

Detailed Repository Descriptions

@hello-world-co-op/api

Clone path: ~/git/api/

IC canister client factory and response types. All canister communication goes through this package.

DirectoryPurpose
src/Source: createActor, ApiResponse, ErrorCodes, healthCheck
tests/Vitest unit tests

Run locally: npm install && npm testPublish: Push tag v0.x.x -> triggers package-publish.yml

@hello-world-co-op/auth

Clone path: ~/git/auth/

Authentication provider, hooks, and route guards. Depends on @hello-world-co-op/api.

DirectoryPurpose
src/AuthProvider, useAuth, ProtectedRoute, token storage
tests/Vitest unit tests

Run locally: npm install && npm testPublish: Push tag v0.x.x -> triggers package-publish.yml

@hello-world-co-op/ui

Clone path: ~/git/ui/

Shared UI component library built on Radix UI primitives with Tailwind CSS. Depends on @hello-world-co-op/auth.

DirectoryPurpose
src/components/Button, Card, Modal, Input, Select, ErrorBoundary, etc.
src/utils/cn() class name utility
tailwind.config.jsBase Tailwind config that suites extend
tests/Vitest + React Testing Library tests

Run locally: npm install && npm testPublish: Push tag v0.x.x -> triggers package-publish.yml

suite-template

Clone path: ~/git/suite-template/

GitHub template repository for creating new suites. Not published as a package.

FilePurpose
README.mdTemplate documentation
USAGE.mdStep-by-step new suite guide
MIGRATION_GUIDE.mdGuide for migrating existing suites
TEMPLATE_CHECKLIST.mdPost-creation checklist

Use: Click "Use this template" on GitHub, or git clone and reinitialize.

think-tank-suite

Clone path: ~/git/think-tank-suite/

The Think Tank productivity application. Largest suite with 4,642 tests.

PropertyValue
Tests4,642 unit
Canister IDwnfjk-biaaa-aaaao-a6dhq-cai
Staging Domainstaging-think-tank.helloworlddao.com
Production Domainthink-tank.helloworlddao.com
Auth PatternBridge (AuthProviderBridge)
Packages@hello-world-co-op/ui, auth, api
DirectoryPurpose
src/pages/MissionControl, Workspace, Chat, Backlog, Fleet, Capture, Settings, Admin
src/components/Suite-specific components (11 directories)
src/services/API clients, canister service wrappers, apiHelpers.ts (re-exports from @hello-world-co-op/api)
src/stores/Nanostores state management (auth, capture, workspace, etc.)
src/hooks/Custom React hooks (useAuth bridges to shared interface)
.github/workflows/ci.yml, deploy-staging.yml

Run locally: npm install && npm run dev (port 5174) Deploy: Push to main -> CI -> deploy to IC canister wnfjk-biaaa-aaaao-a6dhq-cai

governance-suite

Clone path: ~/git/governance-suite/

DAO governance and voting interface. 867 unit tests + 69 E2E tests.

PropertyValue
Tests867 unit, 69 E2E
Canister IDwkep6-mqaaa-aaaao-a6dha-cai
Staging Domainstaging-governance.helloworlddao.com
Production Domaingovernance.helloworlddao.com
Auth PatternDirect (nanostores, no bridge)
Packages@hello-world-co-op/ui only
DirectoryPurpose
src/pages/ProposalsPage, VotingPage, DiscussionsPage, DiscussionDetailPage, ProposalDetailPage, MyVotesPage
src/components/governance/VoteSelector, VoteConfirmationModal, VoteBreakdownBar, ProposalCard, etc.
src/stores/Nanostores (authStore, proposalStore)
e2e/Playwright E2E specs (voting, proposals, discussions, app)
.github/workflows/ci.yml, deploy-staging.yml

Run locally: npm install && npm run dev (port 5174) Deploy: Push to main -> CI -> deploy to IC canister wkep6-mqaaa-aaaao-a6dha-cai

marketing-suite

Clone path: ~/git/marketing-suite/

Public marketing site with SEO pre-rendering. Standalone suite -- no auth dependency.

PropertyValue
Tests83 unit
Bundle Size358KB
Canister IDd5fe6-hqaaa-aaaao-a6t5q-cai
Staging Domainstaging.helloworlddao.com
Production Domainwww.helloworlddao.com
Auth PatternStandalone (no auth)
Packages@hello-world-co-op/ui (UI only, no auth dependency)
DirectoryPurpose
src/components/HeroSection, AboutSection, LaunchContent, SEO, InterestForm, VerificationCodeForm, LanguageSelector
src/pages/LaunchPage (landing), PrivacyPolicy
scripts/prerender.ts (build-time HTML generation), generate-sitemap.ts
src/utils/crypto.ts (AES-256-GCM), validation.ts (Zod), i18n.ts
.github/workflows/ci.yml, deploy-staging.yml

Key features: SEO pre-rendering via ReactDOMServer.renderToString(), sitemap.xml generation, react-helmet-async, i18n (EN, ES, FR, PT), client-side PII encryption.

Run locally: npm install && npm run dev (port 5173) Deploy: Push to main -> CI -> deploy to IC canister d5fe6-hqaaa-aaaao-a6t5q-cai

otter-camp-suite

Clone path: ~/git/otter-camp-suite/

Otter Camp game UI built with Phaser.js. Standalone suite -- no shared packages.

PropertyValue
Tests2,115 unit, 7 E2E
Bundle Size58KB initial (Phaser lazy-loaded: ~340KB)
Canister IDdzt3i-sqaaa-aaaao-a6uaa-cai
Staging Domainstaging-ottercamp.helloworlddao.com
Production Domainottercamp.helloworlddao.com
Auth PatternStandalone (reads localStorage passively)
PackagesNone (fully standalone)
DirectoryPurpose
src/game/scenes/BootScene, CharacterCreation, CampHub, Combat
src/game/entities/Otter, RemoteOtter, NPC, Building, Fragment
src/game/systems/MultiplayerSystem, CombatSystem, VotingSystem, etc.
src/game/services/Game services (voting, treasury, combat)
src/game/ui/Phaser UI overlays, minimap, HUD
src/game/bridge/GameBridge React-Phaser integration
.github/workflows/ci.yml, deploy-staging.yml

Key features: Phaser.js extracted to standalone chunk, character creation, camp exploration, multiplayer via WebSocket (oracle-bridge), combat system, tutorial system.

Run locally: npm install && npm run dev (port 5176) Deploy: Push to main -> CI -> deploy to IC canister dzt3i-sqaaa-aaaao-a6uaa-cai

dao-suite

Clone path: ~/git/dao-suite/

DAO member dashboard. Auth-integrated suite using bridge pattern.

PropertyValue
Tests806 unit
Bundle Size348KB
Canister IDd6s54-7iaaa-aaaao-a6uaq-cai
Staging Domainstaging-portal.helloworlddao.com
Production Domainportal.helloworlddao.com
Auth PatternBridge (AuthProviderBridge + cookie SSO)
Packages@hello-world-co-op/ui, auth, api
DirectoryPurpose
src/pages/Dashboard, Proposals, Voting, Membership, Treasury, TokenBalance, Escrow, MemberDirectory, Settings
src/features/proposal-creation (AI-assisted), proposals, voting, settings
src/components/ProtectedRoute, ErrorBoundary, Toast, UI bridge components
src/stores/Nanostores atoms for state management
src/services/API and canister service clients
.github/workflows/ci.yml, deploy-staging.yml

Key features: Cookie-based SSO with localStorage bridge, ProtectedRoute guard, AI-assisted proposal creation (Think Tank).

Run locally: npm install && npm run dev (port 5174). Requires oracle-bridge running for auth. Deploy: Push to main -> CI -> deploy to IC canister d6s54-7iaaa-aaaao-a6uaq-cai

dao-admin-suite

Clone path: ~/git/dao-admin-suite/

Admin dashboard with RBAC. Auth-integrated suite using bridge pattern.

PropertyValue
Tests115 unit
Bundle Size93KB
Canister IDdxrwa-jaaaa-aaaao-a6uba-cai
Staging Domainstaging-admin.helloworlddao.com
Production Domainadmin.helloworlddao.com
Auth PatternBridge (AuthProviderBridge + AdminGuard)
Packages@hello-world-co-op/ui, auth, api
DirectoryPurpose
src/pages/AdminDashboard, KYCManagement, MemberManagement, GovernanceOversight, TreasuryManagement, SystemMonitoring, ContentModeration, LoginRedirect
src/components/admin/KYCReviewDashboard, KYCReviewDetail, KYCReviewPage
src/utils/validateReturnUrl.ts (admin-specific open redirect prevention)
src/hooks/useAdminAuth.ts
.github/workflows/ci.yml, deploy-staging.yml

Key features: AdminGuard RBAC component (FAS-7.2 deferred to bl-007), admin-specific validateReturnUrl, KYC review workflow with SLA indicators, desktop-only design.

Run locally: npm install && npm run dev (port 5176). Requires oracle-bridge running for auth. Deploy: Push to main -> CI -> deploy to IC canister dxrwa-jaaaa-aaaao-a6uba-cai

.github (dot-github)

Clone path: ~/git/dot-github/

Organization-level GitHub configuration with reusable CI/CD workflows.

WorkflowPurposeTriggered By
package-publish.ymlBuild, test, publish npm package to GitHub PackagesTag push v*
suite-deploy.ymlBuild, test, deploy suite to IC canisterCalled by suite workflows
shared-test.ymlShared test runner with coverageCalled by package workflows

Also contains the Local Development Workflow documentation (npm link, file references, cross-package dev).

"Where Do I Make Changes?" Quick Reference

I want to...Change in repo
Fix a shared UI component (Button, Card, etc.)ui
Update auth logic (login, session, tokens)auth
Change canister client factory or response typesapi
Add a new Think Tank page or featurethink-tank-suite
Add a new governance page or voting featuregovernance-suite
Update marketing site content or SEOmarketing-suite
Update game mechanics or Phaser.js codeotter-camp-suite
Add member dashboard features (proposals, treasury)dao-suite
Add admin features (KYC, monitoring, moderation)dao-admin-suite
Modify CI/CD pipeline for all packagesdot-github (.github repo)
Create a brand new suiteFork from suite-template
Update this documentationdocs

Understanding Package Dependencies

You can use standard npm tooling to inspect package relationships:

List installed packages

bash
# In any suite directory, show installed @hello-world-co-op packages
npm list @hello-world-co-op/*

Example output (from dao-suite):

dao-suite@0.1.0
├── @hello-world-co-op/api@0.1.0
├── @hello-world-co-op/auth@0.1.0
└── @hello-world-co-op/ui@0.1.0

View package dependencies

bash
# See what a package depends on
npm view @hello-world-co-op/ui dependencies --registry=https://npm.pkg.github.com

Example output:

{
  '@hello-world-co-op/auth': '^0.1.0',
  'tailwindcss': '^3.0.0',
  '@radix-ui/react-dialog': '^1.0.0'
}

Check for outdated packages

bash
# Show available updates
npm outdated @hello-world-co-op/*

Example output:

Package                      Current  Wanted  Latest
@hello-world-co-op/api       0.1.0    0.1.0   0.1.0
@hello-world-co-op/auth      0.1.0    0.1.0   0.1.0
@hello-world-co-op/ui        0.1.0    0.1.0   0.1.0

Inspect package.json

Each suite's package.json dependencies section shows which shared packages it consumes:

json
{
  "dependencies": {
    "@hello-world-co-op/api": "^0.1.0",
    "@hello-world-co-op/auth": "^0.1.0",
    "@hello-world-co-op/ui": "^0.1.0"
  }
}

Check Published Versions

Visit the GitHub Packages UI for the organization: https://github.com/orgs/Hello-World-Co-Op/packages

Each package page shows all published versions, download counts, and linked repositories.

Hello World Co-Op DAO