# Highland Games Studio — Website

Marketing and devblog site for Highland Games Studio. _Where summits become worlds._

Built with **Next.js 16** (App Router), **React 19**, **Tailwind CSS 4** and **Framer Motion**.
Devblog posts are authored in MDX and rendered with `next-mdx-remote`.

## Getting started

```bash
npm install
npm run dev
```

Open [http://localhost:3000](http://localhost:3000).

## Scripts

| Command            | Description                              |
| ------------------ | ---------------------------------------- |
| `npm run dev`      | Start the dev server                     |
| `npm run build`    | Production build                         |
| `npm run start`    | Serve the production build               |
| `npm run lint`     | Run ESLint                               |

To regenerate the favicon from the studio logo (requires `sharp`):

```bash
node scripts/build-favicon.mjs
```

## Project structure

```text
app/            Routes, layouts, server actions, metadata (sitemap/robots/feed/OG)
app/components/ Shared UI (Navbar, Footer, forms, social links)
content/devblog/ Devblog posts as .mdx (frontmatter: title, date, excerpt, tags, game)
lib/            Data + helpers (games registry, devblog loader, site URL)
public/         Static assets (studio logos, hero video)
scripts/        One-off build scripts (favicon generation)
```

## Configuration

Copy `.env.example` to `.env.local` and fill in the values.

- **Site URL** — set `NEXT_PUBLIC_SITE_URL` per environment (used by metadata, sitemap,
  robots, RSS and JSON-LD). Defaults to `https://highlandgamesstudio.com` — see `lib/site.ts`.
- **Contact form (Resend)** — the contact form sends email via [Resend](https://resend.com).
  Set `RESEND_API_KEY`, `CONTACT_TO_EMAIL` (who receives messages) and `CONTACT_FROM_EMAIL`
  (sender, must be on a domain verified in Resend). Without these, the form returns a
  friendly error instead of sending. See `app/actions/contact.ts`.

## Adding a devblog post

Create a file in `content/devblog/`, e.g. `2026-06-01-my-post.mdx`:

```mdx
---
title: "My post title"
date: "2026-06-01"
excerpt: "One-line summary for listings and SEO."
author: "Highland Games Studio"
tags: ["devlog"]
game: "project-one"
---

Your MDX content here.
```

## Deployment

Pushes to `master` deploy to the VPS via the GitHub Actions workflow
(`.github/workflows/deploy.yml`), which SSHes in, pulls, builds, and restarts the
PM2 process. Requires the `SSH_*` repository secrets.

## Known TODOs

- Wire the newsletter form to a real email provider (contact form now uses Resend).
- Replace placeholder content (game, team members, social links).
