proyecto26/projectx
45.3
Weak · 21 September 2026
20k
lines of production code
TypeScript
primary language
4
measurements over time
What this system is
This system is a monolithic e-commerce and authentication platform built on a modern TypeScript stack, featuring a NestJS backend with Temporal for long-running workflows and a React frontend. It provides core services for user authentication, order management, and payment processing via Stripe, alongside transactional email delivery. The architecture supports rapid development through CLI generators and AI-assisted coding skills, all orchestrated within a Turborepo-based monorepo structure.
How it got here
2024 — Monorepo migration and feature expansion
9 changes.
The project underwent a significant infrastructure shift by migrating the monorepo build orchestration from Nx to Turborepo and upgrading to React 19. Concurrently, the codebase expanded with new features, including an email-based authentication system, an admin order management API with Temporal workflows, and automated database initialization scripts.
2026 — Core infrastructure and tooling setup
13 changes.
This period focused on establishing the foundational layers of the application, including database schemas, payment and email services, and core authentication modules. Concurrently, the team implemented a comprehensive CLI for scaffolding microservices and configured AI agent skills and IDE tooling to support the new architecture.
Features
Add CLI commands for generating services, workflows, and project initialization
The ProjectX CLI now includes new commands to streamline project setup and scaffolding. Users can run 'projectx generate' to create new NestJS services (including Temporal-enabled ones) and workflows, with interactive prompts for names, ports, and optional modules like email or payment. A new 'projectx init' command allows customizing the template by renaming the project, cleaning up example services, and updating Docker configuration. Additionally, 'projectx info' displays a summary of the current setup, including services, packages, and available generator scripts.
packages/cli · high confidence
Add CLI generators for NestJS and Temporal microservices
Developers can now use the CLI to scaffold new NestJS microservices or Temporal-enabled services with a single command. The new \nestjs-service\ generator creates a standard NestJS application with health checks, Swagger documentation, and optional Email/Payment modules. The \nestjs-temporal-service\ generator builds on this by adding Temporal workflow support, including activity templates, workflow definitions, and a REST endpoint to trigger workflows. Both generators include pre-configured TypeScript, Jest, and E2E test templates, reducing the setup time for new services in the monorepo.
turbo, turbo/generators/templates/nestjs-service, turbo/generators/templates/nestjs-temporal-service · high confidence
Add Stripe payment integration and configuration
The payment package now includes a complete Stripe integration, featuring a \StripeService\ that handles payment intents, webhooks, and refunds. The service is wired into a NestJS \PaymentModule\ and exposes configuration for the Stripe secret key and webhook secret via environment variables.
packages/payment · high confidence
Add server-side configuration, security headers, and admin order hooks
The web app now includes server-side configuration files (app.config.server.ts, env.server.ts, security.server.ts, utils.server.ts) that centralize environment variables, API URLs, and security headers (CSP, HSTS, etc.). Additionally, the app introduces hooks for admin order management (useAdminOrders.ts) and global session/CSRF handling (session.server.ts, auth.server.ts), enabling server-side session management and admin order operations.
apps/web/src · high confidence
Added AI agent skills for NestJS, Prisma, React Router v7, and Temporal
Added new AI agent skills to guide code generation and development workflows. The NestJS skill provides patterns for controllers, services, and modules. The Prisma skill covers database operations, schema patterns, and migrations. The React Router v7 skill includes comprehensive guides for loaders, actions, navigation, and advanced patterns like error boundaries and protected routes. The Temporal skill introduces a visual workflow designer for building and editing Temporal workflows. These skills serve as reference documentation for developers using these technologies within the project.
(repo-wide), .agents · high confidence
Added Cursor IDE configuration for backend, frontend, and infrastructure
New files were added to the \.cursor\ directory to configure the Cursor IDE for the project. This includes \mcp.json\ defining Model Context Protocol servers for Chrome DevTools, Playwright, PostgreSQL, Stripe, Context7, and Temporal. Additionally, Markdown rule files were added to guide AI interactions for NestJS backend services, backend packages, Temporal workflows, frontend packages, the React Router web app, and Docker infrastructure for apps, databases, and Temporal. Symbolic links for skills (NestJS, Prisma, React Router v7, Temporal, Temporal Playground, and Turborepo) were also created.
.cursor · high confidence
Added deployment scripts and configuration for Temporal backend
The deployment process now includes automated setup for the Temporal workflow engine. A new dynamic configuration file (development.yaml) defines performance limits, retry policies, and feature flags for the frontend and history services. Additionally, shell scripts have been added to orchestrate the initialization of the Temporal namespace, create custom search attributes (OrderId, UserId, Email), and configure the required PostgreSQL and Elasticsearch backends, ensuring the system is fully bootstrapped on startup.
deployment · high confidence
Initial AI agent and skill configuration for the development workflow
The \.claude\ directory is introduced, containing new agent definitions for backend, DevOps, and frontend engineering, alongside symlinks to specific technical skills (NestJS, Prisma, React Router v7, Temporal, Turborepo). This establishes the AI assistant's capabilities and tooling for the project. Additionally, the \.prettierrc\ file has been moved to \.claude/settings.json\ with updated configuration.
.claude · high confidence
Initial Storybook configuration and tooling setup
The Storybook application is now configured with a Vite-based React framework, Tailwind CSS integration, and specific preview parameters for actions and controls. Additionally, a pre-commit hook is added to run lint-staged, and a .gitignore file is created to exclude Storybook static build artifacts.
.husky, apps/storybook · medium confidence
Initial database schema and repository layer for orders, payments, products, and users
The \packages/db\ and \packages/models\ packages now contain the foundational database layer for the application. This includes a Prisma schema and SQL migration defining tables for users, roles, permissions, manufacturers, products, orders, order items, payments, and reviews. Corresponding repository services and NestJS modules have been added to handle data access for these entities, along with DTOs for creating and updating orders and payments. A database seed script is also included to initialize admin users and roles.
packages/db, packages/models · high confidence
Initial release of the Temporal Playground: a visual workflow builder with AI-assisted chat and live editing
The Temporal Playground skill is introduced, providing a complete environment for designing and editing Temporal workflows. The server (\.agents/skills/temporal-playground/server\) exposes an HTTP API and MCP bridge to scan the monorepo for workflow definitions, resolve TypeScript types, and serve the UI. The UI (\.agents/skills/temporal-playground/ui\) renders a React Flow-based canvas with a vertical toolbar for adding nodes, a context menu for block insertion, and a chat panel for sending workflow specs to Claude for implementation. Users can select existing workflows from the palette, edit node details via a side panel, manage parameters, and apply AI-generated changes directly to the canvas.
.agents/skills/temporal-playground/server, .agents/skills/temporal-playground/ui · high confidence
Introduce admin order management API and order workflow
The order service now exposes a new admin API for managing orders, including endpoints to retrieve dashboard statistics, list orders with filtering and pagination, and update or cancel orders. This is supported by new DTOs for admin responses, an \OrderAdminController\, and an \OrderService\ that handles order creation, payment confirmation/failure reporting, and status queries. The change also introduces a Temporal-based order workflow (\order.workflow.ts\) and a child workflow for processing payments (\process-payment.workflow.ts\), enabling long-running, reliable order processing. Additionally, a \ActivitiesService\ is provided to bridge the workflow to the \OrderService\. The service also handles Stripe webhooks to update order status based on payment events.
apps/order · high confidence
Introduce core infrastructure and workflow execution capabilities
This change adds the foundational modules for the application's core and workflow execution layers. The core package now provides authentication (JWT guard, strategy, and service), application bootstrapping with security headers and rate limiting, health checks, structured logging, and user management utilities. The workflows package introduces a NestJS module for managing Temporal workers and clients, including retry logic for connection and worker initialization. Additionally, shared workflow utilities are added to the core package, enabling the definition of signals, queries, and updates for state management within Temporal workflows.
packages/core, packages/workflows · high confidence
Introduce email service with login and order status templates
Added a new email package that provides a NestJS module and service for sending transactional emails. The service supports four email templates: a login verification email and order status updates (pending, success, and failed). The implementation uses MJML to render HTML emails and integrates with SendGrid for delivery, with configuration loaded from environment variables.
packages/email · high confidence
Introduce email-based login and user profile management in the auth service
The auth application now provides a complete authentication flow. Users can initiate login via a POST to /login, which triggers an asynchronous Temporal workflow to send a verification email. Subsequently, verifying the code via POST to /verify-code returns an access token. Additionally, protected endpoints are available for authenticated users to retrieve and update their profile information.
apps/auth · high confidence
New UI components and hooks for layout, navigation, and cart interactions
Added a suite of new UI components and hooks to the \packages/ui\ package. This includes a \Badge\ component with multiple variants (success, warning, error, info, urgent, count) and corresponding Storybook stories. A \Breadcrumb\ component for navigation paths was added with stories. Button components were expanded to include \CheckoutButton\ (which handles cart state and navigation) and \ThemeButton\ (for light/dark mode toggling), each with stories and tests. New card components (\Card\, \MetricCard\, \MetricCardV2\, \ProductCard\) were introduced with stories. A \CategoryChip\ component for filtering was added. Layout components \Header\ and \Footer\ were implemented with stories and tests. A \ShoppingCartDrawer\ and \ShoppingCartContent\ were added to manage the cart UI. Additionally, new hooks \useAvatarUrl\ and \useScroll\ were created. The \index.ts\ file was updated to export these new components.
packages/ui · high confidence
Removals
Removed the legacy UI library and its configuration
The \libs/ui\ directory has been completely removed from the codebase. This includes all source files for the \Button\, \Header\, \Footer\, and \Ui\ components, along with their associated Storybook stories and unit tests. Additionally, all configuration files related to this library have been deleted, including \project.json\, \eslint.config.js\, \postcss.config.js\, \tailwind.config.ts\, and various TypeScript and Babel configuration files. This change eliminates the legacy UI component library and its associated build and styling configurations.
libs/ui · high confidence
Behavioural changes
Initialize PostgreSQL with trgm and PostGIS extensions
The Docker entrypoint now automatically installs the pg\_trgm and PostGIS extensions when the database is first initialized. This ensures that text similarity search and geospatial query capabilities are available from the start, without requiring manual database setup steps.
docker-entrypoint-initdb.d · high confidence
Migrated build orchestration from Nx to Turborepo
The monorepo's build orchestration has been migrated from Nx to Turborepo. This change replaces the Nx-specific configuration files (nx.json, eslint.config.js, tsconfig.base.json) with Turborepo equivalents (turbo.json, biome.json, tsconfig.json). The project now uses pnpm-workspace.yaml for workspace management and updates the root tsconfig.json to support the new monorepo structure. This affects how developers run commands like \pnpm build\ or \pnpm dev\, as the underlying task runner and caching mechanisms have changed.
(repo-wide) · high confidence
Migrated web app from Remix to React Router with updated build configuration
The web application has been migrated from a Remix-based setup to React Router, introducing a new \react-router.config.ts\ for server-side rendering and origin configuration. Build tooling has been updated to use Vite with Tailwind CSS integration, and TypeScript configuration has been modernized to ES2022 with bundler module resolution. The project has also adopted the shadcn/ui component library, and path aliases have been updated to reflect the new framework structure.
apps/web · medium confidence
Removed legacy Remix app entry points and styles
The default root layout (root.tsx), the index route (\_index.tsx), and the Tailwind CSS configuration file (tailwind.css) have been removed from the web application. This removes the previous default page structure and styling, likely as part of a broader migration or restructuring of the web app's entry points.
apps/web/app · high confidence
Dependencies
Migrated from Nx to Turborepo and upgraded to React 19
The project has been restructured from an Nx-based monorepo to a Turborepo-based monorepo, introducing a new build and task runner configuration. As part of this migration, the frontend stack has been upgraded to React 19. Additionally, the \@projectx/ui\ library was moved from the \libs\ directory to \packages/ui\, and the root \package.json\ was updated to reflect the new workspace structure and scripts.
(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 47 → 45 (-1.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 87 → 84 (-2.5)
- Architecture 78 → 66 (-12.6)
- Maturity 77 → 77 (+0.0)
- Readiness 18 → 18 (+0.8)
- Security 68 → 72 (+3.4)
- Accessibility 66 → 66 (+0.0)
Resolved (57)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- …and 37 more
New (217)
- ClassTooLong: ProductDetailPage (apps/web/src/pages/ProductDetailPage.tsx)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
- Documentation: hard to navigate (docs/ai/search/IMAGE_SEARCH.md)
- Documentation: hard to navigate (docs/ai/search/VECTOR_SEARCH_CONF.md)
- FileTooLong: admin/Dashboard.tsx (apps/web/src/pages/admin/Dashboard.tsx)
- FileTooLong: admin/Orders.tsx (apps/web/src/pages/admin/Orders.tsx)
- FileTooLong: pages/MarketplacePage.tsx (apps/web/src/pages/MarketplacePage.tsx)
- FunctionTooLong: Dashboard.AdminDashboardPage (apps/web/src/pages/admin/Dashboard.tsx)
- FunctionTooLong: Header.Header (packages/ui/src/lib/header/Header.tsx)
- FunctionTooLong: LoginPage.LoginPage (apps/web/src/pages/LoginPage.tsx)
- FunctionTooLong: Order.OrderPage (apps/web/src/pages/Order.tsx)
- FunctionTooLong: OrderHistory.OrderHistory (apps/web/src/pages/OrderHistory.tsx)
- FunctionTooLong: OrderSummary.OrderSummary (apps/web/src/pages/OrderSummary.tsx)
- FunctionTooLong: Orders.AdminOrdersPage (apps/web/src/pages/admin/Orders.tsx)
- …and 197 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
proyecto26/projectx 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 247950662306bdad8990005a5638436f6f497e09 — 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.