# schmelczer.dev

Engineering writeups by Andras Schmelczer: finished projects with the design constraints left in. Built with Astro, no required client JavaScript.

All content lives in the single `src/content/work` collection: each entry can carry an `article` facet (a page under `/articles/`), a `project` facet (a card on `/projects/`), or both. Normal pages are rendered as static HTML.

## Setup

```sh
npm ci
npx playwright install --with-deps chromium # required before Playwright QA checks
```

The `overrides.yaml` entry in `package.json` forces every transitive `yaml` dependency to 2.9+, ahead of what some Astro tooling requests on its own. Drop it once `npm ls yaml` shows nothing older without it.

## Commands

```sh
npm run dev
npm run lint
npm run build
npm run preview
npm run qa
```

## Structure

- `src/content/work`: Markdown entries (article and/or project facets)
- `src/pages`: static routes
- `src/layouts`: page and post layouts
- `src/components`: reusable UI pieces
- `src/styles/global.css`: the visual system
- `scripts`: QA checks run by `npm run qa` (shared helpers in `scripts/lib`)
- `public/media/downloads`: CV and thesis PDFs
- `public/media/video`: project videos
