Mathew 628dfdfd52
Deploy / deploy (push) Successful in 1m1s
Branche les vraies images d'Emberwild
- Cover.png sur les cards du jeu
- Les 3 captures dans la galerie "FROM THE WORKSHOP"

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 22:50:13 +02:00
2026-06-22 23:03:02 +02:00
2026-07-01 22:50:13 +02:00
2026-07-01 22:50:13 +02:00
2026-06-22 23:03:02 +02:00
2026-06-22 23:03:02 +02:00
2026-06-22 23:03:02 +02:00
2026-06-22 23:03:02 +02:00
2026-06-22 23:03:02 +02:00

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

npm install
npm run dev

Open 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):

node scripts/build-favicon.mjs

Project structure

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. 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:

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

Your MDX content here.

Deployment

Pushes to master deploy to the Hetzner server via the Gitea Actions workflow (.gitea/workflows/deploy.yml), which SSHes in, pulls, builds, and restarts the PM2 process (highland, in /var/www/highland).

Requires these repo secrets (Gitea → repo → Settings → Actions → Secrets): SSH_HOST, SSH_USER, SSH_PORT, SSH_PRIVATE_KEY.

Server-side prerequisites (one-time):

  • A registered Gitea act_runner with the ubuntu-latest label.
  • /var/www/highland is a clone of this repo whose origin can pull the private Gitea repo non-interactively (deploy key or token in the remote URL).
  • Node + pm2 installed, with the app running as the highland process.

Known TODOs

  • Wire the newsletter form to a real email provider (contact form now uses Resend).
  • Replace placeholder content (game, team members, social links).
S
Description
No description provided
Readme 97 MiB
Languages
TypeScript 93.7%
CSS 2.6%
JavaScript 2.3%
Shell 0.8%
MDX 0.6%