{"id":19342336,"url":"https://github.com/gavinsawyer/portfolio","last_synced_at":"2025-04-23T03:32:14.947Z","repository":{"id":65818306,"uuid":"568120907","full_name":"gavinsawyer/Portfolio","owner":"gavinsawyer","description":"A simple personal website built with Firebase, Nx, and Angular 17.","archived":true,"fork":false,"pushed_at":"2024-02-06T20:47:14.000Z","size":10381,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-24T08:47:59.307Z","etag":null,"topics":["angular","firebase","monorepo","nodejs","nx","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/gavinsawyer.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-11-19T14:16:15.000Z","updated_at":"2024-03-16T16:11:14.000Z","dependencies_parsed_at":"2024-11-10T03:34:43.997Z","dependency_job_id":"859cc880-5127-4c5a-a850-e997470bbe3c","html_url":"https://github.com/gavinsawyer/Portfolio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinsawyer%2FPortfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinsawyer%2FPortfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinsawyer%2FPortfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinsawyer%2FPortfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gavinsawyer","download_url":"https://codeload.github.com/gavinsawyer/Portfolio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250365802,"owners_count":21418753,"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":["angular","firebase","monorepo","nodejs","nx","typescript"],"created_at":"2024-11-10T03:34:36.337Z","updated_at":"2025-04-23T03:32:14.053Z","avatar_url":"https://github.com/gavinsawyer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## GavinSawyer.dev\nA simple personal website built with Firebase, Nx, and Angular 17.\n\n[![GitHub workflow status](https://img.shields.io/github/actions/workflow/status/gavinsawyer/Portfolio/ci.yml)](https://github.com/gavinsawyer/Portfolio/actions/workflows/ci.yml)\n### Apps\n\u003e #### [@portfolio/website](apps/website)\n\u003e\n\u003e Online at: [gavinsawyer.dev](https://gavinsawyer.dev)\n\u003e\n\u003e A simple personal website built for extensibility and serverless operation. Shows reCAPTCHA-authenticated users a contact form and the author's live Focus mode (`Do Not Disturb`/`Driving`/etc.). Analytics are collected on user interactions like scrolling, sending messages, and following links.\n\u003e\n\u003e `% npm run build` Build browser and server, prerender routes. \\\n\u003e `% npm run deploy` Deploy to Cloud Run\n\n\u003e #### [@portfolio/console](apps/console)\n\u003e\n\u003e An admin console for seeing incoming messages.\n\u003e\n\u003e `% npm run build` Build browser and server, prerender routes. \\\n\u003e `% npm run deploy` Deploy to Cloud Run\n### Libraries\n\u003e #### [@portfolio/components](libs/components) `Angular Forms` `Angular Universal` `Firebase Analytics` `HTML` `NgxMask` `Sass`\n\u003e\n\u003e Angular components shared between apps.\n\n\u003e #### [@portfolio/functions](libs/cloud functions) `Firebase Admin SDK` `Firebase Functions` `ShortcutsAPI`\n\u003e\n\u003e Custom APIs deployed as Cloud Functions:\n\u003e - [ShortcutsAPI](https://github.com/gavinsawyer/shortcuts-api)\n\n\u003e #### [@portfolio/injection-tokens](libs/injection tokens) `Angular`\n\u003e\n\u003e Injection tokens shared between apps and components for improved reusability.\n\n\u003e #### [@portfolio/interfaces](libs/interfaces) `TypeScript`\n\u003e\n\u003e Interfaces shared between all projects for type-safety.\n\n\u003e #### [@portfolio/services](libs/services) `Angular CDK` `Angular Router` `Firebase Authentication` `Firestore`\n\u003e\n\u003e Angular services used in apps and components. Provides anonymous authentication, live data, and responsive design features.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgavinsawyer%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgavinsawyer%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgavinsawyer%2Fportfolio/lists"}