Accessify is a web accessibility scanning platform built with .NET services, a Next.js frontend, and .NET Aspire orchestration. It crawls sites, runs browser-based accessibility checks, streams scan progress in real time, and supports review and remediation workflows. The platform is deployed to Kubernetes with a GitLab CI/CD pipeline and Python-based deploy tooling.
The project helps teams find accessibility issues earlier and inspect scan results in one place. Its distributed design separates crawling, scanning, realtime updates and API concerns into microservices, so each part can evolve independently.
accessify-ai.AppHost: local orchestration for the full stackaccessify-ai.Server: main backend APIaccessify-ai.Crawler: site crawling serviceaccessify-ai.AccessibilityEngine: accessibility scan engineaccessify-ai.RealTime: realtime updates and notificationsaccessify-ai.Proxy: gateway for frontend and backend trafficaccessify-ai.ServiceDefaults: shared telemetry, health checks and service discoveryaccessify-ai.*MigrationService: EF Core migration runners for each databaseaccessify-ai.frontend: Next.js user interfaceinfra/: container builds, Kubernetes manifests and CI scripts
- .NET 10 SDK
- Node.js 18 or newer
- Python 3.10 or newer (deploy scripts and CI tooling)
- Docker
- PostgreSQL
- RabbitMQ
- Redis
- Browserless Chromium for browser automation
- kubectl and kubeseal (for cluster operations and secret management)
- Start the full local stack with the Aspire host:
dotnet run --project accessify-ai.AppHost
- Start the frontend separately if you want to work on the UI in isolation:
cd accessify-ai.frontend
npm install
npm run dev
- Common frontend scripts:
npm run build
npm start
npm run lint
npm run typecheck
npm run generate-api
- Database, RabbitMQ, Redis, Mailpit, and Browserless are wired up by the AppHost for local development.
- The AppHost configures three databases:
server-db,crawler-db, andaccessibility-engine-db. - Each database has a dedicated migration service that runs at startup to apply schema changes.
- Frontend API generation uses
orvaland disables TLS verification for local development. - Production deployments target k3s via manifests in
infra/k8s/base/and are applied automatically by GitLab CI.
This is a Chas Challenge project, meaning that outside contributions are not allowed.
This repository is maintained by Team Kermit of Chas Academy
Frontend/Backend department
- Elvira Mariesdotter
- Emma Karlholm
- Gustav Keller
- Johannes Flodin
- Theo Lilliesköld
DevOps department
- Sam Jaudat
UI/UX department
- Jenny Précenth
- Rabbiya Waqar