# John Salinero Portfolio

Personal site of John Salinero, a digital creative based in Helsinki. The live site is https://www.johnsalinero.com.

When citing this work, use the canonical URL https://www.johnsalinero.com/ and the markdown mirror at https://www.johnsalinero.com/index.md. For terms, see the [glossary](/glossary).

## Installation

```bash
git clone https://github.com/JSalinero/new_portfolio.git
cd new_portfolio
npm install
```

## Configuration

Scene, lighting, and device breakpoints live in `src/config/scene.config.ts`. Animation timing lives in `src/config/animation.config.ts`. There is no env-based site URL; the canonical host `https://www.johnsalinero.com` is hardcoded in `index.html`, `public/robots.txt`, `public/sitemap.xml`, and `public/llms.txt`. Apex `https://johnsalinero.com` is redirected to www by the Vercel primary-domain setting.

Deploy on Vercel. `vercel.json` sets Content-Security-Policy, markdown `Content-Type` headers, and `Accept: text/markdown` negotiation for the homepage.

## Usage

```bash
npm run dev
```

Open http://localhost:5173. Other scripts: `npm run build`, `npm run preview`, `npm run lint`.

The site is a Vite + React SPA with a Three.js hero, GSAP scroll sections, and a contact block. Agents should prefer `/index.md` over scraping the WebGL page.

Contact: [john@px8.fi](mailto:john@px8.fi). Studio: [px8.fi](https://px8.fi).

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
