{"id":39155691,"url":"https://github.com/junekimdev/template-react-app","last_synced_at":"2026-01-17T21:57:48.126Z","repository":{"id":156154218,"uuid":"625860080","full_name":"junekimdev/template-react-app","owner":"junekimdev","description":"Template for a React app","archived":false,"fork":false,"pushed_at":"2025-12-04T08:04:02.000Z","size":698,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-07T15:41:43.808Z","etag":null,"topics":["boilerplate","frontend","nextjs","react","react-query","scss","template","typescript"],"latest_commit_sha":null,"homepage":"","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/junekimdev.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-10T09:05:23.000Z","updated_at":"2025-12-04T06:48:13.000Z","dependencies_parsed_at":"2024-06-20T19:59:28.896Z","dependency_job_id":"ad898be2-cca1-4905-b736-d0863fe814fa","html_url":"https://github.com/junekimdev/template-react-app","commit_stats":null,"previous_names":[],"tags_count":22,"template":true,"template_full_name":null,"purl":"pkg:github/junekimdev/template-react-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junekimdev%2Ftemplate-react-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junekimdev%2Ftemplate-react-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junekimdev%2Ftemplate-react-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junekimdev%2Ftemplate-react-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junekimdev","download_url":"https://codeload.github.com/junekimdev/template-react-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junekimdev%2Ftemplate-react-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28519182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["boilerplate","frontend","nextjs","react","react-query","scss","template","typescript"],"created_at":"2026-01-17T21:57:43.764Z","updated_at":"2026-01-17T21:57:48.116Z","avatar_url":"https://github.com/junekimdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Template for React App\n\n![release-version](https://img.shields.io/github/v/release/junekimdev/template-react-app?display_name=tag)\n![last-commit](https://img.shields.io/github/last-commit/junekimdev/template-react-app)\n![license](https://img.shields.io/github/license/junekimdev/template-react-app)\n\nTemplate for a React app\n\n## Table of Contents\n\n1. [Getting Started](#getting-started)\n1. [Tech Stack](#tech-stack)\n1. [Directory Structure](#directory-structure)\n1. [Code Generation](#code-generation)\n1. [Authors](#authors)\n1. [License](#license)\n\n---\n\n## Getting Started\n\n### Prerequisite\n\nInstall latest Node.js LTS\n\n```shell\n# Debian, Ubuntu\nsudo apt update\nsudo apt install nodejs\nnodejs -v\n\n# Windows\nchoco install nodejs-lts\n```\n\n### Installation\n\nClone the repo and install dependencies\n\n```shell\n# git clone will create a directory named myAppName\n# if the directory is already created, then use .(dot) instead of myAppName\ngit clone https://github.com/junekimdev/template-react-app.git \u003cmyAppName\u003e\ncd myAppName\nyarn\n```\n\nMake sure to remove `.git` directory to start afresh\n\n```shell\n# remove .git directory beforehand\ngit init\ngit add .\ngit commit -m \"Initial commit\"\ngit branch -M master\ngit remote add origin \u003cmyGitRepo\u003e\ngit push -u origin master\n```\n\nAdd a file `.env` that includes environmental variables\n\nexample\n\n```shell\n#NODE_ENV=production\nNEXT_PUBLIC_URL=https://app.domain.com\n#NEXT_PUBLIC_GTM_ID=\nNEXT_PUBLIC_API_URL=http://api.domain.com\n```\n\n## Tech Stack\n\n- Markup language (Web Standard): HTML5\n- Stylesheet language (Web Standard): CSS3\n- Script language: ECMAScript 2015 (a.k.a Javascript ES6)\n- Javascript Package Manager: Yarn\n- Script preprocessor: Typescript\n- Website client-side rendering framework: ReactJS\n- Website server-side rendering framework: NextJS\n- Package management: Webpack (included in NextJS)\n- Transpiler: Speedy Web Compiler (included in NextJS)\n- State management (client): Jotai\n- State management (data-fetch): TanStack Query\n- HTTP interface: fetch API (part of WHATWG Web Standard)\n- JavaScript Testing Framework: Jest\n- React Testing Library: @testing-library/react\n- Browser style normalization script: Normalize\n- Stylesheet preprocessor: SCSS\n- Stylesheet postprocessor: Postcss (included in NextJS)\n- Postcss plugin: Autoprefixer (included in NextJS)\n- Version control: Git\n- Source code repository: GitHub\n- Linter: ESLint\n- Formatter: Prettier\n- Template engine for code generation: EJS\n\n## Directory Structure\n\n\u003c!-- markdownlint-disable MD033 --\u003e\n\u003c!-- markdownlint-disable MD037 --\u003e\n\u003cpre\u003e\nRoot\n├── components  \n    ├── _theme.scss  \n    └── eachComponent  \n        ├── index.ts  \n        ├── eachComponent.module.scss  \n        ├── eachComponentInteractor.tsx  \n        ├── eachComponentPresenter.tsx  \n        └── eachComponentViewName.tsx  \n├── controllers  \n    ├── index.ts  \n    ├── apiURLs.ts  \n    ├── data  \n        ├── states.ts  \n        ├── types.ts  \n        └── staticQuery.ts  \n    ├── net  \n        └── staticQuery.ts  \n    └── moreControllers.ts\n├── pages  \n    ├── _app.tsx  \n    ├── _document.tsx  \n    ├── _error.tsx  \n    ├── 404.tsx  \n    ├── index.ts  \n    └── global.scss  \n├── public  \n    ├── favicon.ico (similar files)  \n    ├── robot.txt  \n    └── assets  \n        └── images  \n            └── eachImage.png  \n└── templates  \n    └── eachCodeGenerationTemplate.ejs\n\u003c/pre\u003e\n\u003c!-- markdownlint-enable MD033 --\u003e\n\u003c!-- markdownlint-enable MD037 --\u003e\n\n## Code Generation\n\n### Component Generator\n\n- With a View file\n\n```shell\nnode codegen.js --name=myComponent\n```\n\n- Without a View file\n\n```shell\nnode codegen.js --name=myComponent --V\n```\n\n## Authors\n\n- **June Kim** - _Initial work_ - [Github](https://github.com/junekimdev)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunekimdev%2Ftemplate-react-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunekimdev%2Ftemplate-react-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunekimdev%2Ftemplate-react-app/lists"}