The IFLA Standards Platform is a comprehensive documentation and vocabulary management system for the International Federation of Library Associations (IFLA). This monorepo hosts multiple standards including ISBD, LRM, FRBR, UNIMARC, and other cataloguing standards.
- Multi-site documentation with individual Docusaurus sites for each IFLA standard
- Next.js admin portal with GitHub OAuth authentication
- RDF vocabulary generation, validation, and distribution
- Nx monorepo architecture with pnpm workspace
- Comprehensive testing with Vitest and Playwright
- Role-based access control with Cerbos
- Multi-environment support (local, preview, development, production)
- Build System: Nx 21.2.2 monorepo with pnpm workspace
- Frontend: React 19.1.0, Docusaurus 3.8+ (documentation) + Next.js 15.2.5 (admin portal)
- Language: TypeScript 5.7 with strict configuration
- Testing: Vitest (unit) + Playwright (E2E)
- Authentication: Clerk + NextAuth.js 5.0
- Authorization: Cerbos RBAC system
- Database: Supabase (operational data)
- Data: Google Sheets API + Git (source of truth) + File system
- Styling: Tailwind CSS, shadcn/ui
- CI/CD: GitHub Actions + Nx Cloud
- Framework: Next.js 15.2.5 with App Router
- Purpose: Administrative interface for managing vocabularies and standards
- Key Features:
- GitHub OAuth authentication
- Role-based access control
- Vocabulary management dashboards
- Cross-site session sharing
- Critical: Uses
/adminbasePath - requiresaddBasePath()for all API calls and assets - Port: 3007
- URLs:
- Production: https://admin.iflastandards.info
- Preview: https://iflastandards.github.io/platform/admin/
- Framework: Docusaurus 3.8+
- Purpose: Central hub for all IFLA standards documentation
- Port: 3000
- URLs:
- Production: https://www.iflastandards.info
- Preview: https://iflastandards.github.io/platform/
| Site | Key | Port | Production URL | Purpose |
|---|---|---|---|---|
| ISBDM | isbdm | 3001 | isbdm.iflastandards.info | ISBD Manifestation |
| LRM | lrm | 3002 | lrm.iflastandards.info | Library Reference Model |
| FRBR | frbr | 3003 | frbr.iflastandards.info | Functional Requirements |
| ISBD | isbd | 3004 | isbd.iflastandards.info | International Standard Bibliographic Description |
| MulDiCat | muldicat | 3005 | muldicat.iflastandards.info | Multilingual Dictionary of Cataloguing Terms |
| UNIMARC | unimarc | 3006 | unimarc.iflastandards.info | UNIMARC formats |
Comprehensive architectural documentation for the platform:
00-executive-summary.md- High-level overview for stakeholders01-system-architecture-overview.md- Technology stack and design principles02-data-architecture.md- Data storage strategy and flow patterns03-configuration-architecture.md- Site configuration and routing04-development-workflow.md- Standards development lifecycle05-api-architecture.md- API design and integration patterns06-testing-strategy.md- Five-phase testing approach07-subsystems-architecture.md- Detailed subsystem specifications08-architecture-evolution.md- Architecture history and decisions09-collaboration-architecture.md- Team collaboration patterns10-implementation-strategy.md- Implementation roadmap11-design-system-ui-patterns.md- Complete design system and UI patterns
- Additional documentation has been consolidated into the core documents above
- Archived documents can be found in
archive-supplementary-docs/ - Topics covered include:
- TinaCMS integration (see Document 09)
- Translation workflows (see Document 04)
- Vocabulary server requirements (see Document 02)
- API specifications (see Document 05)
- Design system and UI patterns (see Document 11)
- MVP timeline and planning (see Document 01)
- Implementation examples (see Document 04)
- Shared Docusaurus theme and components
- Centralized configuration system
- Cross-site navigation utilities
- Common UI components (VocabularyTable, SiteLink, etc.)
- Shared UI components library
- Design system components
- TypeScript interfaces and types
- Command-line tools for managing standards
- Vocabulary processing utilities
- Build and deployment scripts
- Site scaffolding tools (
scaffold-site.ts,page-template-generator.ts) - Build and deployment scripts
- Validation and testing utilities
- Performance optimization scripts
- RDF conversion tools
tools/python/: Language detection, quality assurance toolstools/sheet-sync/: Google Sheets synchronizationtools/typescript/: Site generators, vocabulary tools
- End-to-end tests using Playwright
- Cross-site authentication tests
- Visual regression tests
- Performance testing
- Platform architecture documentation
- API specifications
- Workflow documentation
- Admin portal guides
- Key Documents:
TESTING_STRATEGY.md- Comprehensive testing approachNEXTJS_CODING_STANDARDS.MD- Critical Next.js patternscurrent-scaffolding-plan.md- Site scaffolding systemadmin-architecture-implementation-plan.md- Admin portal architecturesite-configuration-architecture.md- Configuration systemNX_AFFECTED_TEST_OPTIMIZATION.md- Nx optimization guideVITEST_CONFIGURATION.md- Vitest setup documentation
- Technical implementation guides
- Development workflows
- Troubleshooting documentation
# Install dependencies
pnpm install
# Start Nx daemon for faster builds
pnpm nx:daemon:start
# Run health check
pnpm health
# Start specific site
nx start portal
nx dev admin --turbopack
# Start with port cleanup
nx run portal:start:robust# Build all sites
pnpm build:all
# Build specific site
nx build portal
nx build admin
# Test builds
pnpm test:builds:affected# Run affected tests (recommended)
pnpm test
# Run comprehensive tests
pnpm test:comprehensive
# Type checking
pnpm typecheck
# Linting
pnpm lint# Optimize Nx
pnpm nx:optimize
# Clear cache
pnpm nx:cache:clear
# View dependency graph
pnpm nx:graphnx.json- Nx workspace configurationpackage.json- Root package scripts and dependencies.npmrc- pnpm configuration with optimizationstsconfig.base.json- TypeScript base configuration
- Centralized in:
packages/theme/src/config/siteConfig.ts - No
.envfiles - Uses TypeScript configuration matrix - Environment detection: Automatic based on deployment context
.precommitrc.json- Pre-commit test behavior.prepushrc.json- Pre-push test behaviorvitest.config.ts- Unit test configurationplaywright.config.ts- E2E test configuration
- NEVER hardcode
/adminin paths - Next.js adds it automatically - ALWAYS use
addBasePath()for API calls:fetch(addBasePath('/api/route')) - Import utility:
import { addBasePath } from '@ifla/theme/utils';
- Always use
nx affectedfor development testing - Target times: Pre-commit <60s, Pre-push <180s
- Parallel execution: Use
--parallel=3for performance - Check placement guide before writing new tests
- Check MCP servers (Context7, MUI) for examples before writing code
- Run typecheck and lint after writing code
- Use pnpm - never npm or yarn
- Run from root - all commands execute from project root
- Main Portal: https://www.iflastandards.info
- Admin Portal Guide:
docs/admin-portal.md - Architecture Overview:
system-design-docs/01-system-architecture-overview.md - Testing Strategy:
developer_notes/TESTING_STRATEGY.md
- Git as single source of truth for all vocabulary data
- Distributed storage across multiple systems
- Five-phase progressive testing strategy
- Centralized TypeScript configuration matrix
- Role-based workflow governance
- Environment-aware basePath handling
- Repository: https://github.com/iflastandards/platform
- Issues: https://github.com/iflastandards/platform/issues
- Preview Branch:
previewβ https://iflastandards.github.io/platform/ - Production Branch:
mainβ https://www.iflastandards.info/
- TypeScript Files: 445+ with strict type checking
- Documentation Sites: 7 individual standards sites
- Admin Features: 44+ TypeScript files with complete functionality
- Test Coverage: Unit tests, integration tests, E2E tests
- Build Performance: Nx Cloud enabled with 6-8 distributed agents
- Use scaffolding:
pnpm tsx scripts/scaffold-site.ts --siteKey=newsite --title="New Standard" - Generate pages:
pnpm tsx scripts/page-template-generator.ts --namespace=newsite - Add to configuration matrix in
packages/theme/src/config/siteConfig.ts - Test locally before deployment
- RDF vocabulary generation and validation
- CSV to RDF conversion with DCTAP extensions
- Google Sheets integration for collaborative editing
- Version control and deployment automation
- Fork repository and create feature branch from
preview - Follow test-driven development approach
- Ensure all tests pass:
pnpm test - Submit PR to
previewbranch
- Start with
system-design-docs/01-system-architecture-overview.md - Review
developer_notes/TESTING_STRATEGY.md - Check
developer_notes/NEXTJS_CODING_STANDARDS.MDfor admin development - Read
CLAUDE.mdfor AI assistant guidelines
- Review all documents in
system-design-docs/ - Focus on data architecture and API design
- Check integration patterns and security architecture
- See
system-design-docs/06-testing-strategy.md - Review deployment architecture documentation
- Check CI/CD configuration in GitHub Actions
This index provides a comprehensive overview of the IFLA Standards Platform project structure, key components, and development workflows. For detailed information on specific topics, refer to the documentation files referenced throughout this index.