{"id":20066221,"url":"https://github.com/huynhducduy/react-starter-kit","last_synced_at":"2025-05-05T18:32:30.459Z","repository":{"id":36983648,"uuid":"297376422","full_name":"huynhducduy/react-starter-kit","owner":"huynhducduy","description":"Duy's React Starter Kit based on Create React App","archived":false,"fork":false,"pushed_at":"2023-04-28T07:54:49.000Z","size":3547,"stargazers_count":5,"open_issues_count":16,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-04-28T08:33:24.065Z","etag":null,"topics":["babel","boilerplate","boilerplate-application","boilerplate-front-end","boilerplate-template","boilerplates","eslint","postcss","react","reactjs","reactjs-boilerplate","starter","starter-kit","starter-project","starter-template","starterkit","tailwind","typescript","vite","webpack"],"latest_commit_sha":null,"homepage":"https://huynhducduy.github.io/react-starter-kit","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huynhducduy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2020-09-21T15:08:08.000Z","updated_at":"2023-03-04T17:55:37.000Z","dependencies_parsed_at":"2023-02-12T20:00:27.998Z","dependency_job_id":null,"html_url":"https://github.com/huynhducduy/react-starter-kit","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynhducduy%2Freact-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynhducduy%2Freact-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynhducduy%2Freact-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynhducduy%2Freact-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huynhducduy","download_url":"https://codeload.github.com/huynhducduy/react-starter-kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224461900,"owners_count":17315116,"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":["babel","boilerplate","boilerplate-application","boilerplate-front-end","boilerplate-template","boilerplates","eslint","postcss","react","reactjs","reactjs-boilerplate","starter","starter-kit","starter-project","starter-template","starterkit","tailwind","typescript","vite","webpack"],"created_at":"2024-11-13T13:55:21.448Z","updated_at":"2024-11-13T13:55:22.213Z","avatar_url":"https://github.com/huynhducduy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Duy's React Starter Kit\n\n[![DeepSource](https://deepsource.io/gh/huynhducduy/react-starter-kit.svg/?label=resolved+issues)](https://deepsource.io/gh/huynhducduy/react-starter-kit/?ref=repository-badge)\n![LGTM Grade](https://img.shields.io/lgtm/grade/javascript/github/huynhducduy/react-starter-kit?logo=lgtm)\n![Codecov](https://img.shields.io/codecov/c/github/huynhducduy/react-starter-kit?logo=codecov\u0026token=VLMIXK11LQ)\n![Package.json version](https://img.shields.io/github/package-json/v/huynhducduy/react-starter-kit)\n![GitHub](https://img.shields.io/github/license/huynhducduy/react-starter-kit)\n![Dependencies](https://david-dm.org/huynhducduy/react-starter-kit.svg)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fhuynhducduy%2Freact-starter-kit.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fhuynhducduy%2Freact-starter-kit?ref=badge_shield)\n\nThis project was based on [Create React App](https://github.com/facebook/create-react-app). [(#11304)](https://github.com/facebook/create-react-app/pull/11304)\n\nVite-version / Unbundled Development available at [vite branch](https://github.com/huynhducduy/react-starter-kit/tree/vite) (WIP)\n\n# Features\n\nIncludes all features of CRA, with some opinionated tweaks but provide flexible configurations.\n\n- Webpack 5 with `dynamic import()`, `react-refresh`, modern JSX and build optimizations.\n- Tailwind 2+ (with opt-in, opt-out option)\n- TypeScript 4\n- React 17\n- Router support `react-router-dom`\n- `recoil` + `react-query` configurated as state management\n- i18n with i18next, support locale splitting\n- Animation with `framer-motion`\n- SASS (with `dart-sass`), PostCSS with `autoprefixer`, `CSS Module` supported and optimizations.\n- Babel in `Stage 1` with tree-shaking support for `ramda`, `date-fns`\n- ESlint configured to work well with Prettier, Typescript, EditorConfig in multiple environment: IDE, compile\n- Authentication and Authorization boilerplate\n- Router boilerplate\n- Global error boundary, error handler\n- Cancelable request caller with `axios`\n- Jest + Testing-library for unit/component testing, Cypress for E2E testing, MSW for API mocking\n- Lintstaged \u0026 Husky for automatically lint \u0026 formatting\n- VSCode specific settings, extensions \u0026 debug launch config\n- Docker, docker-compose with `nginx` config for development and deployment\n- Not like CRA, _everything is customizable_ (and initially come with presets): Eslint, babel, jest, postcss, prettier, tailwind, cypress,....\n\n# Differs from CRA\n\n- Scripts: no `eject` (because everything is customizable by default), the rest of the scripts can be view in `package.json`\n- Supported language features: [here](https://github.com/huynhducduy/babel-preset-duy)\n- Configuring supported browsers: in `.browserlistrc`\n- Editor setup, debugger setup: in `.vscode` folder\n- Advanced configuration:\n  - `FAST_REFRESH` option removed (Fast Refrest is always enable)\n  - `DISABLE_ESLINT_PLUGIN` option removed (Eslint is always enable)\n  - `ENABLE_TAILWINDCSS` added\n  - `ENABLE_WDYR` added\n\n# Usage\n\n## Installation\n\nUnfortunatelly, the project is not supported by **Node v16+**, due to a breaking change off v8.\n\n```sh\ngit clone git@github.com:huynhducduy/react-starter-kit.git react-app\ncd react-app\nyarn\n```\n\nClone with SSH is recommennded.\n\nor [Create a new repository from react-starter-kit](https://github.com/huynhducduy/react-starter-kit/generate)\n\n## Configure\n\n`cp .env.example .env \u0026\u0026 vi .env` for local environment, also support for `staging` and `production` environment. Local environment will be use as fallback when staging and production environment is not available.\n\nAlias: in `tsconfig.json` - `compilerOptions.paths`. Automatically resolve in `webpack`, `jest` environment.\n\nFurther configuration can be found in root level files.\n\n## Development\n\nWith docker: `docker-compose up --build -d`\n\nWithout docker: `yarn start`\n\nConfigure in `docker-compose.yml` file, default running on port `3000`\n\nRunning test: `yarn test`\n\nDebugging tests: `yarn test:debug`\n\nLint code \u0026 style: `yarn lint`\n\nFix code \u0026 style: `yarn fix`\n\nReinstall entire project: `yarn refresh`\n\n## Production\n\nBuild image - by default will use `yarn build:production`: `sudo docker build -t react-starter-kit .`\n\nRun container: `sudo docker run --init -dit -p 3000:80 --name react-starter-kit react-starter-kit:latest`\n\nKill and remove: `(sudo docker kill react-starter-kit || true) \u0026\u0026 (sudo docker rm react-starter-kit || true)`\n\nWithout docker: `yarn build` or `yarn build:staging` or `yarn build:production`, output is located at `/build`\n\nAnalyze output: `yarn analyze`\n\n## Todo\n\n- Stylelint\n- GraphQL - Relay/Apollo\n- Server-Side Rendering (waiting for support in React v18)\n- Storybook for component testing, interaction testing\n- Write 2E2 tests\n\n## Issues\n\n- `React.lazy` is not yet available for server-side rendering\n\n## License\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fhuynhducduy%2Freact-starter-kit.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fhuynhducduy%2Freact-starter-kit?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuynhducduy%2Freact-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuynhducduy%2Freact-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuynhducduy%2Freact-starter-kit/lists"}