Skip to content

Latest commit

 

History

History
68 lines (43 loc) · 1.88 KB

File metadata and controls

68 lines (43 loc) · 1.88 KB

The source code for my personal portfolio site at markmetcalfe.com.

What it contains

The site is a portfolio and creative playground, including:

  • Home page — landing page with an interactive 3D visuals background
  • Resume — dynamically fetched from the @markmetcalfe/resume package
  • Visuals — interactive generative graphics using Three.js
  • Doodle — a multiplayer drawing and guessing game
  • Country Guesser — a singleplayer and multiplayer country name guessing game
  • Sequencer — a browser-based music sequencer built with Tone.js

Architecture

The repo is split into two sub-projects:

web/

The frontend, built with:

Features are organised as Nuxt modules under web/modules/.

api/

A set of Cloudflare Workers managed with Wrangler. Each worker lives in its own subdirectory (doodle/, network-status/, resume/) and has its own wrangler.jsonc config.

Development

  1. Install dependencies:
npm ci
  1. Start the development server. This also starts the API workers locally:
npm run dev

Testing

Playwright is used for end-to-end testing. Tests live in **/tests/e2e/*.spec.ts files.

Install Playwright browsers if you haven't already:

npx playwright install

Run the tests:

npm run test

Deployment

The main branch is automatically deployed by Cloudflare Pages (frontend) and Cloudflare Workers (API).