/Portfolio

A simple personal website built with Firebase, Nx, and Angular 17.

Primary LanguageTypeScriptMIT LicenseMIT

GavinSawyer.dev

A simple personal website built with Firebase, Nx, and Angular 17.

GitHub workflow status

Apps

Online at: gavinsawyer.dev

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.

% npm run build Build browser and server, prerender routes.
% npm run deploy Deploy to Cloud Run

An admin console for seeing incoming messages.

% npm run build Build browser and server, prerender routes.
% npm run deploy Deploy to Cloud Run

Libraries

@portfolio/components Angular Forms Angular Universal Firebase Analytics HTML NgxMask Sass

Angular components shared between apps.

[@portfolio/functions](libs/cloud functions) Firebase Admin SDK Firebase Functions ShortcutsAPI

Custom APIs deployed as Cloud Functions:

[@portfolio/injection-tokens](libs/injection tokens) Angular

Injection tokens shared between apps and components for improved reusability.

Interfaces shared between all projects for type-safety.

@portfolio/services Angular CDK Angular Router Firebase Authentication Firestore

Angular services used in apps and components. Provides anonymous authentication, live data, and responsive design features.