0xkuze/next-hexagonal-architecture
54.1
Adequate · 21 September 2026
729
lines of production code
TypeScript
primary language
4
measurements over time
What this system is
This system is a Next.js-based web application that manages people records through a structured, layered architecture. It provides a user interface for creating and viewing people, backed by API endpoints and server actions that handle data persistence in local storage or memory. The codebase enforces strict code quality, testing, and domain modeling to support these core people management features.
Features
Add in-memory and local storage people repositories
The welcome module now includes two new repository implementations for managing people data: an in-memory store for testing and a local storage-based repository that persists data via API calls. The in-memory repository provides a simple Map-based store with methods to save, retrieve, and list people, while the local storage repository wraps API interactions for saving and fetching people. An end-to-end test has been added to verify the API integration for the local storage repository.
src/modules/welcome/infrastructure · high confidence
Add people management UI components and shared UI primitives
Introduced a suite of reusable UI components (Button, Card, Input, Label) and specific feature components (WelcomePeopleCard, WelcomePeopleCreate, WelcomePeopleList) for managing people profiles. The WelcomePeopleCreate component provides a form for adding new people, while WelcomePeopleList handles displaying the collection with an empty state and skeleton loading states. Tests were added for the new components.
src/sections · high confidence
Add use cases for creating and retrieving people
The application layer now includes \CreatePeopleUseCase\ and \GetAllPeopleUseCase\ to handle business logic for adding and listing people. The create use case enforces validation rules (name length, required fields, valid image URL formats) and sanitizes input before persisting to the repository. The get-all use case retrieves the full list of people from the repository.
src/modules/welcome/application · high confidence
Establishes modern development tooling and testing infrastructure
The project now includes configuration files for Biome.js (biome.json), ESLint (.eslintrc.json), and Vitest (vitest.config.ts, vitest.setup.ts) to standardize code quality and unit testing. Additionally, Cypress is configured for end-to-end testing (cypress.config.ts), and the project structure is documented in the README.md, which also outlines commands for running the development server, building, and executing tests.
(repo-wide) · high confidence
Introduce API endpoints and server actions for people management
Added new API routes and server actions to support creating and retrieving people. The GET /api/welcome endpoint fetches the list of people with caching, while the POST /api/welcome endpoint creates a new person and triggers a cache revalidation. Additionally, the /api/welcome/reset and /api/welcome/revalidate routes provide endpoints to reset the application state and manually trigger cache revalidation, respectively. The server actions in src/app/actions/people.ts expose the core use cases for listing and creating people.
src/app/api · high confidence
Introduce People domain model and repository interface
A new People domain model and repository interface have been added to the welcome module. The People interface defines the structure for person entries, with the id field made optional to support creating new entries without a pre-existing identifier. The PeopleRepository interface defines the contract for data access, including methods to save, retrieve by ID, and fetch all people.
src/modules/welcome/domain · high confidence
Introduce result handling and dependency injection for people management
Added new utility modules in src/lib to support people management features. Introduced a global container pattern (src/lib/container.ts) to manage the PeopleRepository instance, enabling consistent access to the in-memory repository and a reset mechanism for testing. Added a Result type (src/lib/result.ts) to standardize success/failure responses with validation errors, and a utility function (src/lib/utils.ts) for merging CSS classes.
src/lib · medium confidence
Behavioural changes
Introduce Tailwind CSS and CSS variables for theming
The application now uses Tailwind CSS for styling, with global styles defined in \src/styles/globals.css\. This file establishes CSS variables for light and dark mode color palettes, shadows, and fonts, enabling consistent theming across the UI components.
src/app · high confidence
Test coverage
Added end-to-end test for adding a person
Added a new Cypress end-to-end test that verifies the user can add a person via the welcome page. The test resets the state, navigates to the home page, enters a name and image URL, clicks 'Add Person', and asserts that the name appears in the list.
src/e2e · high confidence
Dependencies
Update project dependencies to latest versions
The project's dependencies and devDependencies in package.json have been updated to their latest versions, including Next.js 16.0.10, React 19.2.0, and Tailwind CSS 4.1.11, ensuring improved compatibility and security across the application.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 54 → 54 (+0.0)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 95 → 94 (-0.2)
- Architecture 69 → 69 (+0.0)
- Maturity 69 → 69 (+0.0)
- Readiness 36 → 37 (+0.9)
- Security 75 → 80 (+5.0)
- Accessibility 64 → 64 (+0.0)
Resolved (32)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (bun.lock)
- Critical CVE: [GHSA redacted] (bun.lock)
- Critical CVE: [GHSA redacted] (bun.lock)
- Critical vulnerability: [GHSA redacted] (bun.lock)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 12 more
New (53)
- Coverage not measured — JavaScript/TypeScript suite
- Critical CVE: [CVE redacted] (bun.lock)
- Critical CVE: [GHSA redacted] (bun.lock)
- Critical CVE: [GHSA redacted] (bun.lock)
- Critical CVE: [GHSA redacted] (bun.lock)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- High CVE: [CVE redacted] (package-lock.json)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- …and 33 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
0xkuze/next-hexagonal-architecture was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8f205504c756b893f356c33e00b7e27a799ccb3a — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.