# neuf-www

The neuf.no website. Wagtail CMS backend (`dnscms/`) feeding a Next.js frontend (`web/`) over GraphQL.

Tools are managed by [mise](https://mise.jdx.dev/). Run `mise install` to get python, uv, node, and prek.

## Backend (`dnscms/`)

```bash
cd dnscms
uv sync
uv run ./manage.py migrate
uv run ./manage.py runserver
uv run pytest
```

GraphQL endpoint: <http://127.0.0.1:8000/api/graphql/>.

## Frontend (`web/`)

```bash
cd web
npm install
npm run dev         # http://localhost:3000
npm run codegen     # regenerate GraphQL types (needs the backend running)
npm run build
```

## Pre-commit hooks

[prek](https://github.com/j178/prek) runs ruff lint + format on `dnscms/**/*.py` plus a few sanity hooks. Hooks are configured in [prek.toml](prek.toml).

```bash
prek install            # registers the git hook
prek run --all-files    # run on everything
```
