Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

262 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My websites and experimenting with a monorepo

Each subdirectory corresponds to a different website:

Install

From the repo root, pnpm install sets up every project except website, which is a separate Ruby/Jekyll site:

cd website
gem install bundler
bundle install

Serve locally

project command
website cd website && bundle exec jekyll serve
boobtree cd boobtree && pnpm dev
combinators cd combinators && pnpm start
crosswords cd crosswords && pnpm start
knight-spiral cd knight-spiral && pnpm start
lok-solver cd lok-solver && pnpm start
quickerpass cd quickerpass && pnpm dev
wordsearch cd wordsearch && pnpm start

boobtree builds two brands from one codebase and can serve them separately: pnpm dev-boobtree / pnpm dev-passthepic. Add -- --host 192.xxx.xxx.xxx to any dev/start command to serve on the local network.

Other workspace commands

Run from the repo root, these fan out across every pnpm workspace project:

  • pnpm build – build everything
  • pnpm lint – lint everything
  • pnpm test – run tests where defined
  • pnpm check – run svelte-check where defined

Deploy

scripts/deploy.sh builds and deploys to GCS, then invalidates the shared CDN cache (see terraform/gcp.tf). With no arguments it deploys everything; pass one or more project names to deploy only those:

scripts/deploy.sh                        # deploy everything
scripts/deploy.sh boobtree                # deploy just boobtree
scripts/deploy.sh wordsearch lok-solver   # deploy a couple

Firebase database rules

database.rules.json at the repo root holds the security rules for the Realtime Database shared by crosswords, boobtree, and passthepic. It is symlinked into crosswords/ and boobtree/ so each project's emulator (and therefore pnpm test:e2e) enforces the same rules as production. Production rules deploy through Terraform (terraform/firebase.tf), which pushes the file whenever its hash changes.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages