{"id":19486229,"url":"https://github.com/textbook/starter-kit","last_synced_at":"2025-03-23T08:06:29.773Z","repository":{"id":37818949,"uuid":"189639385","full_name":"textbook/starter-kit","owner":"textbook","description":"Starter kit for full-stack JavaScript projects","archived":false,"fork":false,"pushed_at":"2024-09-17T09:01:51.000Z","size":18824,"stargazers_count":38,"open_issues_count":0,"forks_count":73,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-09-18T03:56:02.611Z","etag":null,"topics":["cloud-foundry","eslint","express","heroku","javascript","playwright","react","supertest","typescript","vite"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/textbook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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":"2019-05-31T18:19:44.000Z","updated_at":"2024-09-17T09:00:29.000Z","dependencies_parsed_at":"2023-11-19T01:27:07.815Z","dependency_job_id":"4785982c-5a74-49ba-8ccb-70aafcd0ed8f","html_url":"https://github.com/textbook/starter-kit","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fstarter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fstarter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fstarter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fstarter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/textbook","download_url":"https://codeload.github.com/textbook/starter-kit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245072270,"owners_count":20556353,"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":["cloud-foundry","eslint","express","heroku","javascript","playwright","react","supertest","typescript","vite"],"created_at":"2024-11-10T20:35:55.511Z","updated_at":"2025-03-23T08:06:29.755Z","avatar_url":"https://github.com/textbook.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Starter Kit v2\n\n- [x] [Node] LTS support (verified working on 20.x LTS release)\n- [x] [Express] server\n- [x] [Postgres] database with [`pg`][node-postgres]\n- [x] Logging with [Winston] and [Morgan]\n- [x] [React] client with [Vite]\n- [x] Client-side routing with [React Router]\n- [x] Linting with [ESLint] and [Prettier]\n- [x] Unit and integration testing with [Vitest] (with [SuperTest] and [TestContainers])\n- [x] E2E testing with [Playwright]\n- [x] Dev mode (watch modes for client and server, proxy to avoid CORS issues)\n- [x] Production build (single deployment artifact)\n- [x] [GitHub Actions] pipeline\n- [x] [Google App Engine], [Heroku], [Render] or [Vercel] deployment\n- [x] [Docker] build\n\n## Scripts\n\nVarious scripts are provided in the package file, but many are helpers for other scripts; here are the ones you'll\ncommonly use:\n\n- `dev`: starts the frontend and backend in dev mode, with file watching (note that the backend runs on port 3100, and the frontend is proxied to it).\n- `e2e`: builds and starts the app in production mode and runs the Playwright tests against it.\n  - `e2e:dev`: builds and starts the app in dev mode and runs the Playwright tests against it.\n- `lint`: runs ESLint and Prettier against all the relevant files in the project.\n  - `format`: reformats the code with Prettier.\n  - `lint:fix`: attempts to fix all ESLint and Prettier violations.\n- `serve`: builds and starts the app in production mode locally.\n- `ship`: runs `lint`, then `test`, then `e2e`; ideal before a `git push`.\n- `test`: runs the unit and integration tests.\n  - `test:cover`: runs the tests and outputs coverage data.\n\n[Docker]: https://www.docker.com\n[ESLint]: https://eslint.org/\n[Express]: https://expressjs.com/\n[GitHub Actions]: https://github.com/features/actions\n[Google App Engine]: https://cloud.google.com/appengine/?hl=en\n[Heroku]: https://www.heroku.com/\n[Morgan]: https://github.com/expressjs/morgan\n[Node]: https://nodejs.org/en/\n[node-postgres]: https://node-postgres.com/\n[node-test]: https://nodejs.org/api/test.html\n[Playwright]: https://playwright.dev/\n[Postgres]: https://www.postgresql.org/\n[Prettier]: https://prettier.io/\n[React]: https://reactjs.org/\n[React Router]: https://reactrouter.com/en/main\n[Render]: https://render.com/\n[SuperTest]: https://github.com/visionmedia/supertest\n[TestContainers]: https://testcontainers.com/\n[Vercel]: https://vercel.com/\n[Vite]: https://vitejs.dev/\n[Vitest]: https://vitest.dev/\n[wiki]: https://github.com/textbook/starter-kit/wiki\n[Winston]: https://github.com/winstonjs/winston\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextbook%2Fstarter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftextbook%2Fstarter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextbook%2Fstarter-kit/lists"}