Skip to content

xapple/sinclair.bio

Repository files navigation

sinclair.bio version 0.9.0

This is the website at https://sinclair.bio.

It is made with the following build technology: Astro.

Screenshot


The sinclair.bio homepage


Running locally

This project uses Node.js (22 or newer) and the pnpm package manager. On macOS, install both with Homebrew:

$ brew install node pnpm

Then, from the root of the repository, install the node dependencies:

$ pnpm install

And finally launch the development server:

$ pnpm dev

The site will be live at http://localhost:4321, with hot-reloading on file changes.

Other useful commands:

Command Action
pnpm build Type-check and build the static site to dist/
pnpm preview Serve the production build locally
pnpm check Run the Astro/TypeScript type-checker

Deploying to Cloudflare Pages

Hosting is provisioned as code with OpenTofu: the config in tofu/ creates the git-connected Cloudflare Pages project, attaches the sinclair.bio custom domain, creates the apex DNS record, and 301-redirects www to the apex. See tofu/README.md for the prerequisites (API token, one-time GitHub authorization) and the tofu init / plan / apply workflow.

Once provisioned, Cloudflare builds and deploys automatically on every push to main — build command pnpm build, output dist/, NODE_VERSION=22. It also auto-detects functions/ at the repo root with no extra config, so functions/index.ts intercepts / and 302-redirects to /en/ or /fr/ based on the visitor's Accept-Language header.

Testing

To run the tests suite, you will need uv, which fetches Python and the test dependencies for you. The tests live in the tests/ directory and use pytest. Run the suite from the root of the repository:

$ uv run --with pytest pytest tests/

About

Personal portfolio website at www.sinclair.bio

Resources

Stars

Watchers

Forks

Contributors