Files
ResumeSite/README.md
2026-07-03 21:07:25 +02:00

60 lines
1.9 KiB
Markdown

# ResumeSite — Connor Babbington portfolio
Bilingual (English / Norwegian Bokmål) portfolio website. Static-first Astro site with a
small self-hosted .NET contact relay, built to the specifications in [`docs/`](docs/).
- **Design system & UX** (Phase 1): [`docs/design/`](docs/design/README.md)
- **Architecture & technical spec** (Phase 2): [`docs/spec/`](docs/spec/README.md)
- **Build status**: [`PROJECT_STATUS.md`](PROJECT_STATUS.md) · **Work list**: [`TODO.md`](TODO.md)
## Stack
Astro 5 (static output) · TypeScript (strict) · Tailwind CSS 4 over CSS custom-property
tokens · CSS-first motion (no animation library) · built-in i18n + typed dictionaries +
content collections · zero client-state libraries · .NET 9 minimal-API contact relay ·
pnpm / Vitest / Playwright · Docker + nginx, self-hosted.
## Quick start (local, without Docker)
```bash
cd site
pnpm install
pnpm dev # http://localhost:4321
```
## Quick start (Docker)
```bash
# Development (HMR)
docker compose -f deploy/docker-compose.dev.yml up
# Production build preview
docker compose -f deploy/docker-compose.yml up --build
```
See [`docs/spec/DOCKER_SPEC.md`](docs/spec/DOCKER_SPEC.md) and
[`docs/spec/DEPLOYMENT_SPEC.md`](docs/spec/DEPLOYMENT_SPEC.md) for the full picture.
## Repository layout
```
site/ Astro project (pages, components, content, i18n, styles, scripts)
relay/ .NET 9 minimal-API contact relay
deploy/ compose files, nginx config, env templates
tests/ Playwright end-to-end tests
docs/ design (Phase 1) + spec (Phase 2)
.gitea/ CI/CD workflows
```
## Commands
| Command | What it does |
|---|---|
| `pnpm dev` | Astro dev server with HMR |
| `pnpm build` | Static production build → `site/dist/` |
| `pnpm preview` | Serve the production build locally |
| `pnpm check` | `astro check` + `tsc --noEmit` |
| `pnpm lint` | ESLint + Prettier check |
| `pnpm test` | Vitest unit tests |
| `pnpm test:e2e` | Playwright end-to-end tests |