{"id":13941748,"url":"https://github.com/jthegedus/firebase-gcp-examples","last_synced_at":"2025-04-04T08:08:00.252Z","repository":{"id":37734862,"uuid":"116941922","full_name":"jthegedus/firebase-gcp-examples","owner":"jthegedus","description":"🔥 Firebase app architectures, languages, tools \u0026 some GCP things! React w Next.js, Svelte w Sapper, Cloud Functions, Cloud Run.","archived":false,"fork":false,"pushed_at":"2023-03-04T04:05:52.000Z","size":4504,"stargazers_count":650,"open_issues_count":48,"forks_count":121,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-03-28T07:06:57.383Z","etag":null,"topics":["berglas","cloud-functions","cloud-run","firebase","firebase-functions","gcp","google-cloud-platform","graphql","nextjs","nuxtjs","sapper","serverless","svelte"],"latest_commit_sha":null,"homepage":"https://medium.com/@jthegedus/table-of-contents-ec337953b39b","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/jthegedus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["jthegedus"]}},"created_at":"2018-01-10T10:20:42.000Z","updated_at":"2025-02-28T10:59:55.000Z","dependencies_parsed_at":"2024-09-13T22:05:51.112Z","dependency_job_id":null,"html_url":"https://github.com/jthegedus/firebase-gcp-examples","commit_stats":{"total_commits":391,"total_committers":13,"mean_commits":"30.076923076923077","dds":0.5268542199488491,"last_synced_commit":"f6b4bc8a0bd895e01b2ec202a210595b47345276"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jthegedus%2Ffirebase-gcp-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jthegedus%2Ffirebase-gcp-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jthegedus%2Ffirebase-gcp-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jthegedus%2Ffirebase-gcp-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jthegedus","download_url":"https://codeload.github.com/jthegedus/firebase-gcp-examples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142066,"owners_count":20890652,"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":["berglas","cloud-functions","cloud-run","firebase","firebase-functions","gcp","google-cloud-platform","graphql","nextjs","nuxtjs","sapper","serverless","svelte"],"created_at":"2024-08-08T02:01:27.143Z","updated_at":"2025-04-04T08:08:00.223Z","avatar_url":"https://github.com/jthegedus.png","language":"JavaScript","funding_links":["https://github.com/sponsors/jthegedus"],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Firebase \u0026 GCP Examples\n\nexploring serverless app architectures, languages, tools \u0026 more!\n\n\u003c!-- badges --\u003e\n\n[![all contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat)](#contributions)\n[![prs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](#contributions)\n\n\u003c!-- toc --\u003e\n\n💡 [code samples][code-samples] · 👨‍👩‍👧‍👦 [contributions][contributions]\n\n![Firebase \u0026 GCP][fb-img]\n\n[code-samples]: #code-samples\n[contributions]: #contributions\n[fb-img]: https://cdn-images-1.medium.com/max/1000/1*gJJhD2GynUDikKl5OWbk_w.gif\n\nTake a look at [awesome-firebase][awesome-fb-repo] for an overview of the latest tools in the ecosystem!\n\n\u003c/div\u003e\n\n\u003c!-- content --\u003e\n\n## Code samples\n\nLegend: 📚 Theory, 💻 Examples \u0026 💬 Comments.\n\nExamples are for Firebase unless otherwise denoted with `gcp-`. Most can be translated to GCP without much effort.\n\n| **Post**                                                                   | **Repo**                                         |\n| -------------------------------------------------------------------------- | ------------------------------------------------ |\n| 💻 Next.js on Firebase: hybrid SSG/SSR with Google Cloud Run               | [cloudrun-nextjs][cloudrun-nextjs-repo] :new:    |\n| 💻 Next.js on Firebase: hybrid SSG/SSR with Cloud Functions                | [functions-nextjs][func-nextjs-repo](updated!)   |\n| 💻 Nuxt.js on Firebase: SSR with Cloud Functions                           | [functions-nuxtjs][func-nuxtjs-repo]             |\n| 💬 [State of Firebase (late 2019)][state-of-fb-2019]                       |                                                  |\n| 💻 Next.js on Firebase: SSR with Cloud Functions                           | [functions-nextjs][func-nextjs-repo](updated!)   |\n| 💻 [Runtime Secret Decryption with Node.js on Cloud Run][cloudrun-berglas] | [gcp-cloudrun-berglas][cloudrun-berglas-repo]    |\n| 💻 [Apollo GraphQL \u0026 Cloud Functions for Firebase][func-gql-apollo]        | [functions-graphql-apollo][func-gql-apollo-repo] |\n| 💻 [Express.js \u0026 Cloud Functions for Firebase][func-express]               | [functions-express][func-express-repo]           |\n| 💬 [3 Best Features of Google Cloud Run][best-of-cloudrun]                 |                                                  |\n| 💬 [State of Cloud Functions (mid 2019)][state-of-cf-2019]                 |                                                  |\n| 💻 [Cron \u0026 Cloud Functions for Firebase][func-cron]                        | [cron][func-cron-repo]                           |\n| 💬 [Awesome Firebase Announcement][awesome-fb]                             | [awesome-firebase][awesome-fb-repo]              |\n| 📚 [Cloud Functions w Compiled Code][func-compiled-0]                      |                                                  |\n| 💻 [Cloud Functions w Babel, Flow \u0026 TypeSript][func-compiled-1]            | [functions-w-babel][func-compiled-1-repo]        |\n| 💻 [Cloud Functions w ParcelJS][func-compiled-2]                           | [functions-w-parcel][func-compiled-2-repo]       |\n| 💬 [State of Firebase (late 2018)][state-of-fb-2018]                       |                                                  |\n| 📚 [Babel \u0026 preset-env][babel-pe]                                          |                                                  |\n| 📚 [Firebase Package Names and Bundle Sizes][fb-bundles]                   | [namespaced pkgs][fb-bundles-repo]               |\n| 💬 [Exploring Cloud Functions for Firebase][explore-fb-funcs]              |                                                  |\n\nFor all my blog posts, see my Medium [Table of Contents][jthegedus-medium-toc] post.\n\n[cloudrun-nextjs-repo]: ./cloudrun-nextjs\n[func-nuxtjs-repo]: ./functions-nuxtjs\n[state-of-fb-2019]: https://codeburst.io/the-state-of-firebase-mid-2019-2b002c458d70\n[func-nextjs-repo]: ./functions-nextjs\n[cloudrun-berglas]: https://medium.com/@jthegedus/berglas-with-node-js-on-cloud-run-d7cecfa5aa49\n[cloudrun-berglas-repo]: ./gcp-cloudrun-berglas\n[func-gql-apollo]: https://medium.com/@jthegedus/graphql-on-cloud-functions-for-firebase-153fe7b02ea5\n[func-gql-apollo-repo]: ./functions-graphql-apollo\n[func-express]: https://medium.com/@jthegedus/express-js-on-cloud-functions-for-firebase-f76b5506179\n[func-express-repo]: ./functions-express\n[best-of-cloudrun]: https://medium.com/weareservian/3-best-features-of-google-cloud-run-546e367242ea\n[state-of-cf-2019]: https://medium.com/weareservian/the-state-of-cloud-functions-mid-19-13d2d927d23b\n[func-cron]: https://medium.com/@jthegedus/cron-cloud-functions-for-firebase-724728b1683a\n[func-cron-repo]: ./cron\n[awesome-fb]: https://medium.com/@jthegedus/awesome-firebase-6876cb9563e4\n[awesome-fb-repo]: https://github.com/jthegedus/awesome-firebase\n[state-of-fb]: https://medium.com/@jthegedus/the-state-of-firebase-late-18-e74e6d4a940e\n[func-compiled-0]: https://medium.com/@jthegedus/cloud-functions-for-firebase-with-compiled-code-e234e83462dc\n[func-compiled-1]: https://medium.com/@jthegedus/cloud-functions-for-firebase-with-babel-flow-typescript-796606628d37\n[func-compiled-1-repo]: ./functions-w-babel\n[func-compiled-2]: https://medium.com/@jthegedus/cloud-functions-for-firebase-with-flow-typescript-reasonml-via-parceljs-bf94dd5b325c\n[func-compiled-2-repo]: ./functions-w-parcel\n[state-of-fb-2018]: https://medium.com/@jthegedus/the-state-of-firebase-late-18-e74e6d4a940e\n[babel-pe]: https://medium.com/@jthegedus/babel-preset-env-cbc0bbf06b8f\n[fb-bundles]: https://medium.com/@jthegedus/firebase-package-names-and-bundle-sizes-ec10cede63f1\n[fb-bundles-repo]: ./namespaced-pkgs\n[explore-fb-funcs]: https://medium.com/@jthegedus/exploring-cloud-functions-for-firebase-cdf62297349e\n[jthegedus-medium-toc]: https://medium.com/@jthegedus/table-of-contents-ec337953b39b\n\n\u003cdetails\u003e\n\u003csummary\u003eDeprecated Posts \u0026 Examples\u003c/summary\u003e\n\n| OLD (to be replaced) Technical Blog posts                                                                                                                                 | Repo/Folder                                                                                                                         |\n| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------- |\n| [ES6+ in Cloud Functions for Firebase #2](https://medium.com/@jthegedus/es6-in-cloud-functions-for-firebase-2-415d15205468)                                               | [firebase-functions-babel-example](https://github.com/jthegedus/firebase-gcp-examples/tree/deprecated/firebase-functions-es6-babel) |\n| [Next.js on Cloud Functions for Firebase with Firebase Hosting](https://medium.com/@jthegedus/next-js-on-cloud-functions-for-firebase-with-firebase-hosting-7911465298f2) | [firebase-functions-next-example](https://github.com/jthegedus/firebase-functions-next-example)                                     |\n| GraphQL Server on GCP Cloud Functions                                                                                                                                     | [gcp-functions-graphql](./deprecated/gcp-functions-graphql)                                                                         |\n\n\u003c/details\u003e\n\n## Contributions\n\nThanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://medium.com/@jthegedus\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/20798510?v=4\" width=\"100px;\" alt=\"James Hegedus\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJames Hegedus\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#blog-jthegedus\" title=\"Blogposts\"\u003e📝\u003c/a\u003e \u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=jthegedus\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=jthegedus\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#example-jthegedus\" title=\"Examples\"\u003e💡\u003c/a\u003e \u003ca href=\"#ideas-jthegedus\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/michaellustig\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/6922904?v=4\" width=\"100px;\" alt=\"Michael Lustig\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Lustig\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3Atechnoplato\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://jasansingh.com\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/13863953?v=4\" width=\"100px;\" alt=\"Jasan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJasan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3Ajasan-s\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=jasan-s\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://www.mbdesigns.de\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/1906627?v=4\" width=\"100px;\" alt=\"Matthias Bruns\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMatthias Bruns\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3Amatthiasbruns\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=matthiasbruns\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://CharlesT100.com\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/828593?v=4\" width=\"100px;\" alt=\"Charles Thomas\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCharles Thomas\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3ACharlesT100\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/tavelli\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/484951?v=4\" width=\"100px;\" alt=\"Dan Tavelli\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDan Tavelli\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3Atavelli\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://joeroddy.net\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/16690442?v=4\" width=\"100px;\" alt=\"Joseph Roddy\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJoseph Roddy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3AJoeRoddy\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://mw.codes\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/686823?v=4\" width=\"100px;\" alt=\"Mat Warger\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMat Warger\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=mwarger\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/flyingguitarman\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/11669763?v=4\" width=\"100px;\" alt=\"Daniel R\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDaniel R\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=flyingguitarman\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://vdv.co\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/707470?v=4\" width=\"100px;\" alt=\"tomvdv\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003etomvdv\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=tomvdv\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://www.medium.com/@riomartinez\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/35539750?v=4\" width=\"100px;\" alt=\"Rio Martinez\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRio Martinez\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/issues?q=author%3Arioam2\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=rioam2\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jthegedus/firebase-gcp-examples/commits?author=rioam2\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!\n\nSome contributors listed above contributed to earlier repositories and versions of these examples, so although they may not appear in this repo's [graphs/contributors](https://github.com/jthegedus/firebase-gcp-examples/graphs/contributors) list, they helped nonetheless. Thanks.\n\n**Please note:** I do intend to write a blog post about each of the examples here. I have a lot of examples in various stages of progress that I will release when I have the blog post written. If you wish to contribute to examples prior to a post being written I will of course credit all contributions to each particular example 😄\n\nIf you have a request please open an issue so we can discuss how \u0026 why it should be implemented.\n\n## Find Me\n\n✍️ [medium][jthegedus-medium] · 🐦 [twitter][jthegedus-twitter] · :octocat: [github][jthegedus-github] · 🦊 [gitlab][jthegedus-gitlab]\n\n[jthegedus-medium]: https://medium.com/@jthegedus\n[jthegedus-twitter]: https://twitter.com/jthegedus\n[jthegedus-github]: https://github.com/jthegedus\n[jthegedus-gitlab]: https://gitlab.com/jthegedus\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjthegedus%2Ffirebase-gcp-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjthegedus%2Ffirebase-gcp-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjthegedus%2Ffirebase-gcp-examples/lists"}