{"id":13480106,"url":"https://github.com/NYTimes/kyt","last_synced_at":"2025-03-27T10:30:59.283Z","repository":{"id":38311458,"uuid":"60372006","full_name":"nytimes/kyt","owner":"nytimes","description":"Starting a new JS app? Build, test and run advanced apps with kyt 🔥","archived":false,"fork":false,"pushed_at":"2025-02-13T20:37:49.000Z","size":8915,"stargazers_count":1917,"open_issues_count":65,"forks_count":111,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-03-16T19:50:11.286Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://open.nytimes.com/introducing-kyt-our-web-app-configuration-toolkit-9ccddf6f6988","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nytimes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-03T19:16:26.000Z","updated_at":"2025-03-05T16:30:42.000Z","dependencies_parsed_at":"2023-02-10T22:31:23.705Z","dependency_job_id":"f1169d96-f3e6-4df4-8205-93257e0c3feb","html_url":"https://github.com/nytimes/kyt","commit_stats":{"total_commits":826,"total_committers":49,"mean_commits":"16.857142857142858","dds":0.6271186440677966,"last_synced_commit":"bf2c8eafe6caa7a47703bdef884ace6004531105"},"previous_names":[],"tags_count":1135,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nytimes%2Fkyt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nytimes%2Fkyt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nytimes%2Fkyt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nytimes%2Fkyt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nytimes","download_url":"https://codeload.github.com/nytimes/kyt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245826764,"owners_count":20678854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T17:00:34.667Z","updated_at":"2025-03-27T10:30:58.927Z","avatar_url":"https://github.com/nytimes.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"/images/kyt-logo-large.png\"\u003e\u003c/p\u003e\n\n# kyt\n\n### Deprecation notice\n\nThis project is still used internally at the new york times but has long been deprecated. Please don't expect any support or documented releases going forward.\n\n---\n\n---\n\nEvery sizable JavaScript web app needs a common foundation: a setup to build, run, test and lint your code. `kyt` is a toolkit that encapsulates and manages the configuration for web apps.\n\nRead more about kyt in our [blog post](https://open.nytimes.com/introducing-kyt-our-web-app-configuration-toolkit-9ccddf6f6988).\n\n[![Dependency Status](https://david-dm.org/NYTimes/kyt.svg)](https://david-dm.org/NYTimes/kyt) [![npm](https://img.shields.io/npm/v/kyt.svg)](https://www.npmjs.com/package/kyt)\n\n## Quick Start\n\n1. Install [Node.js](https://nodejs.org/) (v14.0+ required). On Mac, this is as simple as:\n\n```sh\nbrew install nvm\nnvm use\n```\n\n1. `yarn add kyt`\n1. `yarn kyt setup` - This will set up your project with application and configuration files so that you can get started with `kyt`. Learn more about [setup](/packages/kyt-core/README.md).\n1. `yarn dev`\n1. Check out `http://localhost:3000`\n\n## Features\n\n- Isomorphic rendering of JavaScript apps\n- Client and server hot-reloading in dev\n- Babel presets for general ES6 support and React\n- ESLint configuration and custom rules\n- Jest presets for running unit tests and CSS-in-JS linting\n- Optional client-only and server-only modes\n- Ability to override Webpack configuration from `kyt.config.js`\n\n## How it Works\n\n`kyt` manages configuration for all aspects of development. It can be installed as a dependency into a new or existing project. `kyt`’s goal is to encapsulate only development tools, giving users the freedom to control their source directory and make important decisions about app architecture. `kyt` provides a [command line interface](/docs/commands.md) for running all development tools.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/kyt-diagram.png\"\u003e\u003c/p\u003e\n\nDevelopers design their own architecture, choosing the tools they need for rendering, styling, and handling data.\n\nFor advanced use cases, `kyt` enables developers to add additional tools and configuration.\nSee our [config override instructions](/docs/kytConfig.md#modifywebpackconfig) for details, and our [recipes](/docs/Recipes.md) for examples.\n\n## Setting up a kyt project\n\n`kyt setup` is a utility for bootstrapping `kyt` projects and installing starter-kyts. It can be run to create a new project or integrate `kyt` with an existing project.\n\nSee the [kyt](/packages/kyt-core/README.md) documentation for more details.\n\n## Command line\n\n`kyt` includes a command line program with all the commands needed for development.\n\nRunning `kyt setup` includes these commands as scripts in your `package.json`:\n\n```\nyarn dev\n```\n\nOr you can run a command using `yarn kyt {command}`:\n\n```\nyarn kyt build\n```\n\nHere are the available commands:\n\n- [`dev`](/docs/commands.md#dev) starts a development environment\n- [`build`](/docs/commands.md#build) compiles server and client code for production use\n- [`help`](/docs/commands.md#help) shows commands and their documentation\n\nSee our [CLI docs](/docs/commands.md) for further details.\n\n## Conventions\n\n`kyt` follows a few simple conventions.\n\nAll projects must have the following structure:\n\n```\nsrc/\n  client/\n    index.js\n    polyfills.js\n  server/\n    index.js\n    polyfills.js\n```\n\nEach `index.js` file acts as the build entry.\n\n_(Note that `server/index.js` is not required if `hasServer` is `false` in [config](#configuration))._\n_(Note that `client/index.js` is not required if `hasClient` is `false` in [config](#configuration))._\n\nIf you're setting up a new project see our full list of [conventions](/docs/conventions.md).\n\n## Configuration\n\n`kyt` allows you to specify options in a `kyt.config.js` file.\nSee the [kyt config docs](/docs/kytConfig.md) for instructions.\n\n`kyt` uses Webpack to compile src code.\nSee our [recipes](/docs/Recipes.md) for extending configuration.\n\n`kyt` respects Babel config files defined at the root of user projects, and provides [presets](/packages/babel-preset-kyt-react) to provide opinionated configurations. (If no Babel config file is defined in the user project, [`babel-preset-kyt-core`](https://www.npmjs.com/package/babel-preset-kyt-core) is used when compiling Webpack.)\n\n## `starter-kyt`s\n\nWhile `kyt` can be easily integrated into new or existing Node projects, it is even more powerful when used with a `starter-kyt`. A `starter-kyt` offers the benefits of a boilerplate while minimizing the amount of new tools to learn and maintain.\n\nThe `kyt setup` command installs any preconfigured `starter-kyt` git repository, adding additional dependencies and building a source directory.\n\n### How to build a `starter-kyt`\n\nSee additional info on [how to build a `starter-kyt`](/docs/Starterkyts.md).\n\n## How to contribute to `kyt`\n\nWant to help? See details [here](/CONTRIBUTING.md)\n\n## Need Help?\n\n1. Check our [FAQ](/docs/FAQ.md)\n2. Submit an issue\n3. Check out our [recipes](/docs/Recipes.md) for extending kyt\n\n## Changelog\n\n[Changelog](/CHANGELOG.md)\n","funding_links":[],"categories":["Alternatives"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNYTimes%2Fkyt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNYTimes%2Fkyt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNYTimes%2Fkyt/lists"}