Hey! 👋 This repository contains the source code for my personal website hosted on GitHub Pages.
- Tech stack: Hygraph + Next + TypeScript.
- GraphQL TypeScript codegen.
- Resume generation on website start/build via react-pdf.
- GitHub Actions-based automatic deployment.
- Monorepo project structure with yarn workspaces.
- OpenAI-based job application generation.
- Pubsub-based interaction when resume generation is scheduled.
-
Install dependencies
yarn
-
Create environment variables
# Copy example env files cp workspaces/website/.env.example workspaces/website/.env # Fill in required values in the .env files
-
Generate GraphQL typings
env HYGRAPH_URL=<url> yarn workspace @teimurjan/gql-client codegen
-
Run locally
yarn workspace @teimurjan/website dev
-
Build
yarn workspace @teimurjan/website build
-
Install dependencies
yarn
-
Create environment variables
# Copy example env files cp workspaces/resume-generator/.env.example workspaces/resume-generator/.env # Fill in required values in the .env files
-
Generate GraphQL typings
env HYGRAPH_URL=<url> yarn workspace @teimurjan/gql-client codegen
-
Run locally
yarn workspace @teimurjan/resume-generator dev
-
Build
yarn workspace @teimurjan/resume-generator build
GitHub Actions is the CI/CD mechanism responsible for deployments through several workflows:
Website Deployment (deploy.yml)
Triggered when:
- Code changes are pushed to the main branch (excluding functions and resume generator changes)
- Manually triggered via workflow_dispatch
The workflow:
- Generates OpenGraph images
- Generates resume
- Builds the Next.js application
- Deploys to GitHub Pages
Profile README Deployment (deploy-readme.yml)
Triggered when:
- The website deployment workflow completes
- Manually triggered via workflow_dispatch
The workflow:
- Generates the GitHub profile README
- Copies it to the teimurjan/teimurjan repository
- Commits and pushes the changes
Firebase Functions Deployment (deploy-firebase.yml)
Triggered when:
- Changes are pushed to firebase-functions directory
- Manually triggered via workflow_dispatch
The workflow deploys the Firebase Functions to Firebase.
Triggered on Vercel when:
- Changes are pushed to the main branch.
This workflow deploys generator to Vercel.