Skip to content

Project NEXUS Documentation

Last reviewed: 2026-07-30

This directory contains the public, maintained documentation for Project NEXUS.

Historical prompts, one-off audits, dated handoff notes, generated reports, PDF exports, and stale planning documents do not belong in docs/. Keep any locally useful copies under .local-docs-archive/, which is intentionally ignored by git.

How the documentation is organised

This documentation follows the Diátaxis framework — four kinds of documentation, each with a different job:

Kind What it's for Where it lives
Tutorial (learning) A guided, hands-on first experience. TUTORIAL.md
How-to guides (tasks) Step-by-step recipes for a specific job. Operations docs below; task sections inside each module guide.
Reference (information) Precise, look-it-up facts. The module guides, the API + openapi.json, and the architecture/platform docs.
Explanation (understanding) The "why" behind the design. ARCHITECTURE.md, I18N.md, DATABASE.md, CI.md, GOVERNANCE.md, DOCUMENTATION.md.

New to the project? Start with the tutorial, then skim ARCHITECTURE.md, then dive into the module guide for whatever you're changing.

Getting Started

Document Purpose
TUTORIAL.md Hands-on tutorial: clone, run, make a visible change, verify, and open a pull request.

Architecture & Platform

Document Purpose
ARCHITECTURE.md Maintained platform architecture map, runtime boundaries, and the tenant/feature model.
API.md API getting-started + the openapi.json contract as source of truth.
api-reference.md Interactive, browsable API reference (Redoc) — rendered on the documentation site.
I18N.md Internationalisation: 11 languages, the recipient-locale rule, and the i18n quality gates.
DATABASE.md Database, the two migration systems, the schema dump, and tenant scoping.
ROLES-AND-PERMISSIONS.md The five authorisation tiers, why a broker is not a junior admin, hierarchy scoping in the super-admin panel, and the caveats to know before writing a permission check.
SAFEGUARDING-AND-CONSENT.md Guardian relationships, versioned consent records, the safeguarding case workflow, vetting attestations, and the current state of acting on behalf of a member.
CI.md The CI pipeline, which checks are blocking, PR gates, and how to run them locally.
TESTING.md Test-layer meanings, E2E status, and generated-report policy.
REAL-SAFARI-TESTING.md Safari coverage: the engine layer that runs on every push, the real-macOS layer and how to enable it, and what each one can and cannot prove.
LOAD-TESTING.md The dependency-free load harness, why it refuses to run against production, first results, and why local figures are not capacity figures.
LOCAL-PERFORMANCE.md Getting full speed from a development machine, which concurrency knobs are machine-aware, and the container file-I/O bottleneck that CPU tuning cannot fix.
CUSTOM-DOMAINS.md Tenant custom-domain setup for the React and accessible frontends.
REACT-DUAL-BACKEND.md Guardrails and roadmap for making the React frontend switchable between Laravel and ASP.NET without weakening Laravel as the default contract.
PLATFORM-MONOREPO.md Repository boundaries and safe workflow for Laravel, ASP.NET, React, and Web UK contract work.
ACCESSIBLE-FRONTEND-TAKEOVER.md The changeover in which Web UK replaces the Blade accessible frontend: what each one serves since the 2026-08-12 cutover, which phase the changeover is in, both public URL shapes, and which document answers which question. Read this before any other accessible-frontend status claim.
FEDERATION_API_MANUAL.md Plain-English and technical federation API guide.
MODULES.md The module map: each module → its code paths and guide, including the modules that have no guide yet.

Module Guides

24 curated, code-verified reference guides (docs/modules/). Coverage is not yet complete — Caring Community is a live tenant-gated module with no guide; see MODULES.md for its code paths.

Guide Module
admin Admin permissions, tenant vs platform super-admin, audit surfaces.
ai-chat AI assistant: provider abstraction, tools, privacy boundary with external providers.
blog-and-resources Blog (posts, comments, RSS/SEO) and the resource library.
connections-and-reviews Member connections, member reviews, and skill endorsements.
courses Course catalogue, free + time-credit-paid enrolment, lessons, quizzes, certificates.
events Events, RSVP/waitlists, recurring series, polls, organiser actions.
gamification XP/levels, badges, leaderboards, challenges, NEXUS score, anti-abuse.
goals-and-impact Goals, check-ins, milestones, community impact metrics, and SROI.
groups Public/private groups, roles/permissions, discussions, files, moderation.
identity-verification Document/selfie ID verification, the "ID Verified" badge, fee, and privacy.
ideation-challenges Community challenges, idea submission, voting, and outcomes.
jobs Vacancies, hiring pipeline, alerts, the bias/fairness audit, applicant GDPR.
listings Timebanking offers/requests, lifecycle, categories, search indexing.
marketplace Standalone marketplace with Stripe Connect payments, escrow, and click-and-collect.
members-and-gdpr Member directory + GDPR (Article 17 deletion, DSAR export, consent, overdue alarm).
messaging Conversations, attachments/voice, Pusher real-time, broker safeguarding, federation.
monetization Premium subscriptions, merchant coupons, and local advertising.
notifications In-app/email/push channels, the recipient-locale rule, dispatcher flow.
organisations Organisation directory, registration/approval, opportunities, reviews, stats.
podcasts Shows/episodes, audio hosting, RSS/iTunes feed, scheduled publishing.
search Meilisearch architecture, indexes, tenant scoping, sync script, fallback.
social-feed Activity stream, posts, polls (hidden-totals), stories, reactions, ranking.
volunteering Hour logging, auto-mint approval, certificates, organisation roles, safeguarding.
wallet-exchanges Time-credit ledger, transfers, the exchange lifecycle, and money invariants.

Operations

Document Purpose
DEPLOYMENT.md Production deployment workflow and blue/green commands.
RUNBOOK-INCIDENTS.md First-response runbook for production incidents, with a post-mortem template.
MONITORING.md External uptime checks, alert channels, and response notes.
SLO.md Service-level objectives and wired alerting commands.
SENTRY.md Backend and frontend Sentry configuration.
SECURITY-SCANNING.md Public-safe scanner interpretation and suppression policy.

Accessible Frontend

🔴 There are two accessible frontends and they are mid-changeover. Read ACCESSIBLE-FRONTEND-TAKEOVER.md before believing any status claim below or anywhere else. As of 2026-08-12, web-uk/ — a standalone Node 22 / Express / Nunjucks application consuming the Laravel API — serves accessible.project-nexus.ie. The original Laravel Blade frontend (accessible-frontend/ plus app/Http/Controllers/GovukAlpha/) still serves the community accessible domains and every /{tenantSlug}/accessible/... path, and retires when the changeover completes. Both answer identical public URLs, so /version is the only way to tell which one replied.

Document Purpose
ACCESSIBLE-FRONTEND-TAKEOVER.md The status source. Which frontend serves which addresses, which phase the changeover is in, both public URL shapes, and which document answers which question.
govuk-alpha/RESEARCH.md The original architecture decision for the Blade track, and the GOV.UK Frontend constraints — branding prohibitions, approved packages, HTML-first progressive enhancement — which still bind both frontends. Its architecture description covers Blade only and predates the changeover.
govuk-alpha/ATTRIBUTION.md GOV.UK-related attribution notes. Applies to both frontends.

Governance

Document Purpose
DOCUMENTATION.md Documentation architecture, standards, inventory classes, and maintenance workflow.
CONTRIBUTOR_TERMS_ENFORCEMENT.md How PR gates enforce contributor terms and ownership acknowledgements.

Project-level governance, release, and community-health documents live at the repository root: GOVERNANCE.md, RELEASES.md, CONTRIBUTING.md, SUPPORT.md, SECURITY.md, CODE_OF_CONDUCT.md.

Location Purpose
../docs-public/README.md Public collateral and the prerender observability runbook.

Publication Standards

Before adding a document here:

  • keep it useful to a future maintainer, not just useful to one finished task;
  • remove secrets, live credentials, private contact details, machine-local paths, and personal notes;
  • avoid publishing raw prompts, handoffs, scratch plans, generated audit dumps, and exported PDFs;
  • mark dated verification records clearly with the date and command used;
  • prefer current code paths such as app/, database/migrations/, routes/api.php, and react-frontend/;
  • list every public document in this index;
  • move local-only material to .local-docs-archive/ instead of committing it;
  • run npm run check:docs before committing documentation changes.
  • run npm run check:version after changing release/version labels or public collateral. It asserts the Platform version: line in ARCHITECTURE.md and rejects stale platform-version tokens in the root README.md and public collateral (scripts/check-version-consistency.mjs).

The docs hygiene check (scripts/check-docs-hygiene.mjs) fails on task-output filenames, oversized docs, non-Markdown files, missing index links, broken local links, stale retired-doc references, old namespace/path references, superseded stack claims (the previous major React version, the previous major HeroUI version, the removed animation dependency, and the wrong web server — production is Apache), generated artifacts in public doc paths, and obvious secret patterns. It does not check the platform version; that is npm run check:version above.