A simple personal website built with Firebase, Nx, and Angular 17.
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
@portfolio/components
Angular Forms
Angular Universal
Firebase Analytics
HTML
NgxMask
Sass
Angular components shared between apps.
Custom APIs deployed as Cloud Functions:
Injection tokens shared between apps and components for improved reusability.
@portfolio/interfaces
TypeScript
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.