Skip to content
CAI
Software that uses CAICheck a score

thaitype/thaitype-stack-mongodb-template

45.2

Weak · 21 September 2026

7.4k

lines of production code

TypeScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a web application, likely a task management system, built on Next.js and React with a MongoDB backend. It provides user authentication and manages todo items, featuring a responsive UI with mobile-optimized navigation and forms. The system handles data validation and server-side logic using modern tooling like Bun and Mantine.

Behavioural changes

Migrate to Mantine v8, Next.js 16, and Bun

The project has been upgraded to Next.js 16 and React 19, with the UI library migrated to Mantine v8. The build and development environment has been switched from pnpm to Bun, reflected in the new \bun.lock\ file and updated scripts in \CLAUDE.md\. Additionally, the ESLint configuration has been modernized to use the flat config format, and the MongoDB database name in \.env.example\ has been updated to \todo-app\.

(repo-wide) · high confidence

Redesigned navigation, authentication flows, and UI for improved mobile responsiveness

The application now uses a persistent AppHeader with a user profile menu and login/register buttons, replacing the previous headerless layout. The home page and login/register pages have been updated with improved UI, messaging, and a checklist icon. The TodoList component now adapts its filter controls for mobile devices using a media query, and the login/register forms now include a 'Back to Home' link. Additionally, the auth API route and TRPC route have been marked as dynamic to prevent build-time database connection attempts.

src/app · high confidence

Refactor server-side authentication and data validation

The server's authentication module now lazily initializes the Better Auth instance via a new getAuth() function, replacing the previous eager singleton export. This change propagates to the API layer, which now calls getAuth() to retrieve the auth instance. Additionally, Zod validation schemas for todos and users have been updated: the 'sort' field in todo schemas now accepts string keys, and the 'sort' field in user schemas now accepts string keys instead of enum values. The auth client has removed the 'forgetPassword' export, and the todo repository has removed the 'RepoObjectIdSchema' import and related usage, replacing it with local filter interfaces and explicit type annotations for MongoDB operations.

src/server · medium 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 45 → 45 (+0.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 71 → 73 (+2.1)
  • Architecture 100 → 90 (-10.4)
  • Maturity 61 → 61 (+0.0)
  • Readiness 16 → 19 (+2.6)
  • Security 71 → 77 (+5.8)

Resolved (27)

  • Critical CVE: [GHSA redacted] (bun.lock)
  • Critical CVE: [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] (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 vulnerability: [GHSA redacted] (bun.lock)
  • LLM evaluation failed
  • …and 7 more

New (61)

  • Critical CVE: [GHSA redacted] (bun.lock)
  • Critical CVE: [GHSA redacted] (bun.lock)
  • Critical vulnerability: [GHSA redacted] (bun.lock)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • FunctionTooLong: AddTodoForm.AddTodoForm (src/app/_components/AddTodoForm.tsx)
  • FunctionTooLong: Header.Header (src/components/layout/Header.tsx)
  • FunctionTooLong: RegisterForm.RegisterForm (src/components/auth/RegisterForm.tsx)
  • FunctionTooLong: TodoItem.TodoItem (src/app/_components/TodoItem.tsx)
  • FunctionTooLong: TodoList.TodoList (src/app/_components/TodoList.tsx)
  • FunctionTooLong: page.ProfileContent (src/app/profile/page.tsx)
  • 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] (bun.lock)
  • …and 41 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

thaitype/thaitype-stack-mongodb-template 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 ddf0ad728c8bcac3318c23516860fe239fa28a12 — 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.