$ show nytimes/kyt
kyt is a deprecated monorepo CLI toolkit from The New York Times for scaffolding and developing JavaScript web applications. It encapsulates build tooling (Webpack 4, Babel 7), linting (ESLint 7), testing (Jest 27), and provides starter templates for React apps with client-only, server-only, or universal (isomorphic) rendering. The core package provides three primary commands: `kyt dev` (hot-reloading dev server), `kyt build` (production builds), and `kyt setup` (project scaffolding). Architecture: monorepo with Lerna + Yarn Workspaces; the CLI entry is `packages/kyt-core/src/index.js`; configuration is centralized in `kyt.config.js`, and runtime support (dynamic imports, SSR resolution) is provided by `packages/kyt-runtime`. The tool is no longer maintained and uses dependencies that are significantly behind modern versions (Webpack 4, React 17, Jest 27, ESLint 7). Its value lies in its clean composition of presets, configs, and custom ESLint rules that can be extracted and reused independently.
The LLM identified 4 files worth highlighting for reuse:
Provides a configurable Babel preset for JavaScript/React projects with environment-specific settings for client, server, and test targets. Includes core-js for polyfilling, optional runtime transformation, and lax class properties. Self-contained and easily extractable for any project needing a centralized, environment-aware Babel setup.
A base ESLint configuration extending eslint:recommended, with added rules for Node.js style (e.g., no-alert, strict mode). Cleanly organized and independent of other kyt internals, making it reusable as a starting point for any Node.js project.
Custom ESLint rule that forbids direct imports of moment.js, enforcing the use of a scoped date utility. Demonstrates non-obvious skill in AST manipulation (checking ImportDeclaration and CallExpression nodes). Self-contained and can be adapted for any project needing module import restrictions.
Simple yet visually effective logging utility with emoji-prefixed log levels (info, warn, error, debug, log), colorized output via chalk, and timestamp printing. Zero internal dependencies to other kyt packages, making it a drop-in utility for any Node.js CLI application.