Static site repo https://pfy.ch
Find a file
Violet Heague 4bc8868a6c
All checks were successful
Deploy / deploy (push) Successful in 1m6s
Better logging for split error
2025-12-04 12:54:56 +11:00
.gitea/workflows Bump CDK 2025-10-31 09:52:05 +11:00
infrastructure Don't require approval on CDK deploy 2025-10-31 09:55:16 +11:00
packages Better logging for split error 2025-12-04 12:54:56 +11:00
scripts Setup site CDK & deploy 2025-10-18 14:33:00 +11: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 JQ in the docker container 2025-10-18 15:13:06 +11:00
package.json Setup site CDK & deploy 2025-10-18 14:33:00 +11:00
pnpm-lock.yaml Front end neverthrow for Plex 2025-11-02 14:11:35 +11:00
pnpm-workspace.yaml Setup watch scripts for web 2025-09-05 18:44:11 +10:00
README.md Add badges 2025-11-03 10:15:07 +11:00
REWRITE_CHECKLIST.md Bump NodeJS version 2025-10-18 14:36:26 +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"