0cd61f2a12
Deploy to VPS / deploy (push) Has been cancelled
- Envoi reel via le SDK Resend dans app/actions/contact.ts (avec gestion d'erreur) - Cles/adresses lues depuis l'env (RESEND_API_KEY, CONTACT_TO_EMAIL, CONTACT_FROM_EMAIL) - Ajout de resend en dependance + lock synchronise - .env.example documente la config (autorise dans .gitignore) - README + TODO a jour Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
81 lines
2.6 KiB
Markdown
81 lines
2.6 KiB
Markdown
# 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).
|