Static site repo https://pfy.ch
  • TypeScript 75.6%
  • SCSS 10.3%
  • HTML 9.6%
  • JavaScript 2.2%
  • Handlebars 1.3%
  • Other 1%
Find a file
pfych ede088cf7a
All checks were successful
Deploy / deploy (push) Successful in 2m33s
Change summary
2026-06-01 21:14:00 +10:00
.gitea/workflows Revert "Silly experiment" 2026-05-22 16:23:15 +10:00
infrastructure Another shim ;; 2026-05-19 13:15:01 +10:00
packages Change summary 2026-06-01 21:14:00 +10:00
scripts Revert "Silly experiment" 2026-05-22 16:23:15 +10:00
.eslintignore Convert all e and createElement calls to tsx 2025-09-13 11:10:39 +10:00
.gitignore Setup API, Infrastructure & Plex API 2025-09-04 20:34:52 +10:00
Dockerfile Revert "Silly experiment" 2026-05-22 16:23:15 +10:00
package.json Revert "Silly experiment" 2026-05-22 16:23:15 +10:00
pnpm-lock.yaml Update Lockfile 2026-05-19 12:46:15 +10:00
pnpm-workspace.yaml Revert "Silly experiment" 2026-05-22 16:23:15 +10:00
README.md Add badges 2025-11-03 10:15:07 +11:00
tsconfig.json Merge remote-tracking branch 'origin/master' into rewrite 2025-09-13 11:46:11 +10:00

Static Site

build status build status Built with love

This repo contains the code to build & deploy my static site hosted at https://pfy.ch, as well as all the content/scripts/styles to go along with it.

Project Layout

This project is a monorepo consisting of the following sub packages:

  • infrastructure - All CDK definitions
  • pacakges/api - Lambda API
  • packages/site - Static Site generator & content
  • packages/shared - Type definitions
├── infrastructure
│   ├── api
│   └── site
├── packages
│   ├── api
│   │   ├── lib # Utilities
│   │   └── src # Root handlers
│   │       └── services # Feature based endpoints
│   ├── shared # Type definitions used by site & api
│   └── site
│       ├── assets
│       │   ├── custom # Images, userscripts, icons, etc
│       │   ├── scripts # Typescript (ts,tsx) compiled at build time
│       │   └── styles # SCSS compiled at build time
│       ├── build
│       │   ├── steps # Individual build steps
│       │   ├── templates # Handlebars templates
│       │   └── utils # Utility functions used by steps
│       ├── pages # Custom html pages that are not generated
│       └── posts # Markdown content
└── scripts # Helper scripts for deploying

Using this package

If you want to fork this package for your own site, it's safe to empty the directories listed in packages/site/build/config.ts. This file outlines where the build scripts should look for content.

pnpm run site:dev # Run a copy of the site with hot-reloading on :8080
pnpm run site:build # Compile the site to .dist/
pnpm run site:deploy # Deploy the site using the aws profile "dev" (Must build beforehand)

pnpm run api:dev # Run a copy of the api locally with hot-reloading on :3000
pnpm run api:deploy # Deploy the api using the aws profile "dev"