Skip to content
austenstonePublic

About

My personal website

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

30 stars

Watchers

1 watching

Forks

Repository files navigation

austen.info

My personal site: portfolio, blog, and guides. Built with Docusaurus and deployed to GitHub Pages at austen.info.

Requirements

Node >=22.13.0. The repo ships an .nvmrc, so nvm use picks the right version.

This project uses npm, not yarn. There is no yarn.lock.

Getting started

npm ci      # use ci, not install, to respect the lockfile
npm start   # dev server at http://localhost:3000

Scripts

Command What it does
npm start Dev server with hot reload
npm run build Production build into build/
npm run serve Serve the production build locally
npm run dev:worker Run the curl Worker locally
npm run test:worker Test curl detection and origin pass-through
npm run deploy:worker Deploy the curl Worker to Cloudflare
npm run typecheck tsc with no emit
npm run lint ESLint across the repo
npm run clear Clear the Docusaurus cache

typecheck and lint both run in CI, so run them before pushing.

Content

Path What lives there
blog/ Blog posts. Filename sets the date, slug: in frontmatter sets the URL.
docs/ Guides, including the GitHub Actions cheat sheet.
src/ React components, pages, and CSS.
static/ Files copied verbatim to the site root.

One thing worth knowing: docs/guides/01_Cheat Sheet.mdx renders .github/workflows/cheat-sheet.yml verbatim via raw-loader. That workflow is a live, running workflow and a published documentation page, so changes to it are user-facing.

Deployment

Deployment is automatic. Pushing to main triggers .github/workflows/deploy.yml, which builds and publishes to GitHub Pages via actions/deploy-pages using OIDC.

Pull requests run the same build as a check, but don't deploy.

Don't run npm run deploy. That's the stock Docusaurus command that pushes directly to a gh-pages branch, which is not how this site is published.

Curl site

worker/index.mts returns an ANSI-formatted homepage for curl https://austen.info. The Worker runs only at / and /curl; every other path goes directly to GitHub Pages. To request the original homepage with curl:

curl -H 'X-Original: true' https://austen.info

The Worker route requires austen.info to use Cloudflare DNS with the existing GitHub Pages records proxied. After the zone is active:

npx wrangler login
npm run deploy:worker

Verify both response modes:

curl https://austen.info
curl -H 'X-Original: true' https://austen.info

About

My personal website

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

30 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages