{"id":28079003,"url":"https://github.com/omermakesstuff/project-template","last_synced_at":"2025-09-08T09:35:25.977Z","repository":{"id":128489169,"uuid":"576742325","full_name":"OmerMakesStuff/project-template","owner":"OmerMakesStuff","description":"My personal full stack project template.","archived":false,"fork":false,"pushed_at":"2025-04-07T10:04:26.000Z","size":2758,"stargazers_count":1,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T19:11:50.225Z","etag":null,"topics":["boilerplate","docker","docker-compose","hono","honojs","monorepo","node","nodejs","pnpm","pnpm-workspace","project-template","react","reactjs","template","turborepo","turborepo-template","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/OmerMakesStuff.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":"2022-12-10T20:42:08.000Z","updated_at":"2025-03-24T11:08:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff46e654-bcb6-45b0-9ad9-314dd93f908b","html_url":"https://github.com/OmerMakesStuff/project-template","commit_stats":null,"previous_names":["omermakesstuff/project-template","theomer77/project-template"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OmerMakesStuff%2Fproject-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OmerMakesStuff%2Fproject-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OmerMakesStuff%2Fproject-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OmerMakesStuff%2Fproject-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OmerMakesStuff","download_url":"https://codeload.github.com/OmerMakesStuff/project-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253875857,"owners_count":21977514,"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":["boilerplate","docker","docker-compose","hono","honojs","monorepo","node","nodejs","pnpm","pnpm-workspace","project-template","react","reactjs","template","turborepo","turborepo-template","typescript"],"created_at":"2025-05-13T04:29:34.796Z","updated_at":"2025-05-13T04:29:35.616Z","avatar_url":"https://github.com/OmerMakesStuff.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Template\n\nThis is my personal project template, used for building full stack applications.\n\n## About this template\n\n### Included apps and packages\n\n- `@repo/frontend`: A [React](https://react.dev) [Next.js](https://nextjs.org/) app.\n- `@repo/backend`: A [Node.js](https://nodejs.org) server, powered by [Hono](https://hono.dev/).\n- `@repo/shared`: A package for shared code between apps.\n- `@repo/eslint-config`: ESLint presets used by other apps.\n- `@repo/tsconfig`: Base tsconfig.json files used by other apps.\n- A package builder service, responsible for automatically rebuilding shared packages on changes (in development only).\n\nAll apps and packages are built using [TypeScript](https://www.typescriptlang.org/).\n\n### Docker\n\nThis project uses Docker and Docker Compose to build and run all apps. Additional services \u0026 environment variables can be added in `compose.yaml` for production, and `compose.dev.yaml` for development.\n\n### Utilities\n\n- [PNPM](https://pnpm.io/) as the package manager\n- [TypeScript](https://www.typescriptlang.org/) for static type checking\n- [ESLint](https://eslint.org/) for code linting\n- [Prettier](https://prettier.io) for code formatting\n\nInstalling the relevant VSCode extensions is recommended.\n\n## Run the project\n\n### Prerequisites\n\n- [Docker](https://www.docker.com/)\n\nIn development, you'll also need:\n\n- [Node.js](https://nodejs.org/) 20\n- [PNPM](https://pnpm.io/)\n\n### Running the services\n\nRun the project using Docker Compose:\n\n```bash\ndocker compose up -d\n```\n\nThe frontend app will be available at [localhost:3000](http://localhost:3000), and the backend will be accessible from [localhost:3000/api](http://localhost:3000/api).\n\n### Local development\n\nInstall dependencies using PNPM:\n\n```bash\npnpm install\n```\n\nUse Docker Compose to run the project, making sure you use the development compose file:\n\n```bash\ndocker compose -f compose.dev.yaml up -d\n```\n\nThen just open your web browser to access the frontend at [localhost:3000](http://localhost:3000) and the backend at [localhost:3000/api](http://localhost:3000/api), just like in production.\n\nAny changes you make to the frontend during development will automatically be reflected in the browser, while any changes made to the backend code will cause the development server to restart. Both services will react to changes made to shared packages.\n\n## Configuration\n\n### Updating environment variables\n\nEnvironment variables for the entire project are stored in the `.env` file. After editing this file:\n\n- If any new variables were added, add them to the relevant services in `compose.yaml` (or `compose.dev.yaml` in development):\n\n  ```yml\n  frontend:\n    environment:\n      - ENV_VAR=${ENV_VAR}\n\n  backend:\n    environment:\n      - ENV_VAR=${ENV_VAR}\n  ```\n\n- Recreate the relevant services (use the correct compose file):\n\n  ```bash\n  docker compose up -d --force-recreate \u003cservices\u003e\n  ```\n\n### Installing \u0026 updating dependencies\n\nTo install dependencies in an app or package, run:\n\n```bash\npnpm -F @repo/\u003capp\u003e i \u003cdependencies\u003e\n```\n\nTo install dependencies at the workspace root (usually dev dependencies), replace `-F @repo/\u003capp\u003e` with `-w`.\n\nAfter dependency updates, rebuild the relevant services. If you installed dependencies in a package, rebuild all apps that use it \u0026 the package builder.\n\n```bash\ndocker compose up -d --build \u003cservices\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomermakesstuff%2Fproject-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomermakesstuff%2Fproject-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomermakesstuff%2Fproject-template/lists"}