{"id":22727301,"url":"https://github.com/noviel/next.js-firebase-typescript-workspaces","last_synced_at":"2026-04-07T07:43:40.126Z","repository":{"id":44148012,"uuid":"180841308","full_name":"Noviel/next.js-firebase-typescript-workspaces","owner":"Noviel","description":"Scalable monorepo architecture example project","archived":false,"fork":false,"pushed_at":"2022-12-09T19:14:57.000Z","size":4233,"stargazers_count":1,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-03T14:36:24.676Z","etag":null,"topics":["firebase","gatsby","mobx","monorepo","next-js","node-js","react","typescript","web-workers","yarn-workspaces"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Noviel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-11T17:12:12.000Z","updated_at":"2025-01-21T04:12:36.000Z","dependencies_parsed_at":"2023-01-25T23:16:10.373Z","dependency_job_id":null,"html_url":"https://github.com/Noviel/next.js-firebase-typescript-workspaces","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Noviel/next.js-firebase-typescript-workspaces","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noviel%2Fnext.js-firebase-typescript-workspaces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noviel%2Fnext.js-firebase-typescript-workspaces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noviel%2Fnext.js-firebase-typescript-workspaces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noviel%2Fnext.js-firebase-typescript-workspaces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Noviel","download_url":"https://codeload.github.com/Noviel/next.js-firebase-typescript-workspaces/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noviel%2Fnext.js-firebase-typescript-workspaces/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["firebase","gatsby","mobx","monorepo","next-js","node-js","react","typescript","web-workers","yarn-workspaces"],"created_at":"2024-12-10T17:11:41.277Z","updated_at":"2026-04-07T07:43:40.108Z","avatar_url":"https://github.com/Noviel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fullstack scalable monorepo project\n\n## Technical desicions\n\n- Monorepo via Yarn workspaces\n- TypeScript as a main language\n- React as an UI layer\n- Server side rendering with Next.js and Firebase functions\n- Static site via Gatsby\n- Universal interface for interaction with Domain Host that can be local, in a WebWorker, on a remote server\n- Support for multiple build/deploy targets\n\n## Install\n\n```sh\n$ yarn install\n```\n\n## Run\n\nNext.js application:\n\n```sh\n$ yarn dev -t next -c local\n```\n\nGatsby application:\n\n```sh\n$ yarn dev -t static-site -c local\n```\n\nAPI Server:\n\n```sh\n$ yarn dev:server\n```\n\n## DevOps-ish\n\n### Contours\n\nContour - is a collection of environment variables. With contours you can seamlessly build and deploy application to different environments.\n\nThere are 3 contours: `local`, `dev`, `prod`.\n\nFor example, web application requires API url. For local development you may want to point it to local development sever. For `dev` build it should points to remote dev/staging server, and to corresponding server for production build.\n\n\n## Environment variables\n\nThere are two types of environment variables: private and public. \n\nPublic variables can be set up per contour in `app.config.js`.\n\nPrivate variables should not be in the repository. They can be defined directly inside a working (CI/CD platform) enviroment of in a `.env.{contour}` files. These files should be excluded from the repository.\n\nClient applications require `process.env.PUBLIC_CLICKER_API_URL` variable to connect to the remote API.\n\n\n### Scripts\n\nThere are 4 main scripts for buildable or/and deployable packages: `build`, `dev`, `deploy`, `release`.\n\nEvery one accepts the following arguments:\n- --target (-t) - target package\n- --contur (-c) - target contour\n\n`build` takes an additional `--prod` flag for production builds. It will be automatically turned on for `prod` contour.\n\n### Examples\n\nBuild `next` application for production: \n```sh\n$ yarn build -t next -c prod\n```\n\nBuild `static-site` for local contour in production mode: \n```sh\n$ yarn build -t static-site -c local --prod\n```\n\n## Deploy\n\n### Firebase\n\nIn order to deploy to Firebase you need to specify your project ID in `.firebaserc`. Project is using two Firebase projects: one for `dev` contour, second for `prod` contour.\n\n### Docker\n\nTo do\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoviel%2Fnext.js-firebase-typescript-workspaces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoviel%2Fnext.js-firebase-typescript-workspaces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoviel%2Fnext.js-firebase-typescript-workspaces/lists"}