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
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.