Tooling & Developer Experience (DX)

Tooling & Developer Experience (DX)

Scope

This section covers essential tools that enhance the developer workflow, enforce code quality standards, manage dependencies, structure projects (like monorepos), leverage AI assistance, and ensure consistent development environments.

Overview

ADOPT

Proven technologies we have high confidence in; our default choices.


ESLint

Prettier

npm

pnpm

v0

t3.chat

 

TRIAL

Promising technologies to explore and evaluate for adoption.


GitHub Copilot

Cursor

ASSESS

Interesting technologies requiring investigation.


Turborepo

 

HOLD

Not recommended for new work; plan migration from existing uses.


TSLint

Technologies Breakdown

ESLint ADOPT

The standard linter for JavaScript and TypeScript code. Configure with appropriate plugins (React, TypeScript, Accessibility, etc.) and a shared configuration baseline across projects. Integrate into CI/CD pipelines and IDEs.

Essential for maintaining code quality, enforcing coding standards, and catching potential errors early. Highly configurable with a vast ecosystem of plugins and presets. Adopted as the standard linter across all frontend projects.


Prettier ADOPT

The standard code formatter for ensuring consistent code style across projects (JS, TS, CSS, JSON, Markdown, etc.). Use with minimal configuration overrides and integrate into pre-commit hooks and CI/CD pipelines.

Eliminates debates about code style by automatically formatting code according to a consistent standard. Improves readability and reduces cognitive load when switching between projects or collaborating. Adopted universally for code formatting.


npm ADOPT

The default package manager bundled with Node.js. Used for managing project dependencies (package.json, package-lock.json) when pnpm is not used or for compatibility reasons.

Comes standard with Node.js, universally understood. While pnpm is preferred, npm remains adopted as the baseline and fallback package manager.


pnpm ADOPT

The preferred package manager for managing dependencies in new projects, especially effective in monorepos. Manages dependencies via package.json and pnpm-lock.yaml.

Offers significant improvements in installation speed and disk space usage compared to npm by using a content-addressable store. Provides strictness that prevents phantom dependency issues. Adopted as the preferred standard for its efficiency benefits.


v0 ADOPT

Adopted tool for rapidly generating initial UI components and prototypes from text prompts or images. Use the generated React code (based on shadcn/ui and Tailwind CSS) as a starting point for further refinement.

Proven to significantly accelerate the initial UI development and prototyping phase. Generates code based on our adopted UI stack (shadcn/ui, Tailwind), making integration smoother. Adopted as a valuable tool for quickly translating design ideas into functional code skeletons.


t3.chat (AI Assistant) ADOPT

The recommended AI chat assistant for augmenting development tasks like code explanation, debugging assistance, generating code snippets, writing documentation, and research. Leverage its capabilities while adhering to responsible use guidelines (verification, privacy).

Provides an exceptionally powerful AI chat interface (powered by models like Gemini 2.5 Pro) tailored for development workflows, offering strong capabilities in code understanding and generation. Considered the most powerful and cost-effective option currently available, priced very competitively at approximately $8. Adopted as the standard AI assistant to enhance developer productivity and knowledge acquisition due to its high capability-to-cost ratio.


GitHub Copilot TRIAL

Continue exploring as an AI pair programmer integrated into IDEs for code completion and suggestion. Evaluate its specific strengths alongside t3.chat for different tasks (e.g., inline completion vs. conversational interaction). Requires license management.

Offers powerful AI-driven inline code assistance. Trialing continues to assess its specific productivity benefits in comparison and conjunction with our adopted chat assistant (t3.chat), and to refine best practices for leveraging both tools effectively.


Cursor TRIAL

Explore this AI-first code editor as a potential alternative or supplement to existing IDEs (like VS Code). Evaluate its integrated AI features, performance, compatibility, and overall developer experience on specific projects or by interested team members.

Represents a different paradigm with deeply integrated AI features. Trialing to understand if this approach offers tangible benefits over using VS Code combined with our adopted/trialed AI assistants (t3.chat, Copilot), and to assess its maturity and suitability for our workflows.


Turborepo ASSESS

Investigate as a potentially simpler alternative for managing monorepos, focusing primarily on optimizing build and test times through caching and task orchestration. Compare with manual scripting or other potential solutions if monorepo needs arise.

Developed by Vercel, Turborepo focuses specifically on high-performance build caching within monorepos. Assessing its capabilities, ease of use, and suitability for our potential monorepo needs, especially given its focus compared to more comprehensive tools previously assessed.


TSLint HOLD

Avoid completely. TSLint was deprecated in 2019. Projects still using TSLint must migrate to ESLint with TypeScript support (@typescript-eslint).

The project is deprecated and unmaintained. The official migration path is to ESLint, which now provides comprehensive TypeScript linting capabilities via the @typescript-eslint project. Continued use of TSLint poses risks and lacks support for modern TypeScript features.