# Emberlight Games Studio Hub

A lightweight studio website and press-kit hub for Emberlight Games, an indie video game studio focused on atmospheric adventure games, handcrafted worlds, and small-team production.

## Overview

This project powers the public-facing Emberlight Games site, including game pages, studio news, press resources, newsletter signup, and platform links. It is designed to be easy to maintain by a small team while still supporting polished marketing pages for launches, demos, and events.

## Features

- Responsive studio homepage
- Individual game detail pages
- Press kit with screenshots, logos, trailers, and fact sheets
- News and devlog sections
- Newsletter signup integration
- Store and wishlist links for Steam, itch.io, and consoles
- Configurable social links and studio metadata
- SEO-friendly page titles, descriptions, and Open Graph images

## Install

### Requirements

- Node.js 20+
- npm 10+

### Setup

```bash
git clone https://github.com/emberlight-games/studio-hub.git
cd studio-hub
npm install
```

Create a local environment file:

```bash
cp .env.example .env.local
```

Start the development server:

```bash
npm run dev
```

The site will be available at:

```text
http://localhost:3000
```

## Usage

Run the local development server:

```bash
npm run dev
```

Create a production build:

```bash
npm run build
```

Preview the production build locally:

```bash
npm run preview
```

Run lint checks:

```bash
npm run lint
```

Add or update game content by editing files in:

```text
content/games/
```

Add news posts and devlogs in:

```text
content/news/
```

Static assets such as screenshots, key art, logos, and trailer thumbnails should be placed in:

```text
public/assets/
```

## Configuration

Configuration is managed through environment variables and studio metadata files.

### Environment Variables

| Variable | Required | Description |
| --- | --- | --- |
| `NEXT_PUBLIC_SITE_URL` | Yes | Public URL for canonical links and social previews |
| `NEXT_PUBLIC_STUDIO_NAME` | Yes | Studio name shown across metadata and footer content |
| `NEWSLETTER_API_KEY` | No | API key for newsletter signup provider |
| `NEWSLETTER_LIST_ID` | No | Mailing list ID for signup forms |
| `PRESS_CONTACT_EMAIL` | Yes | Public press contact email |
| `ANALYTICS_ID` | No | Optional analytics tracking ID |

Example:

```env
NEXT_PUBLIC_SITE_URL=https://emberlightgames.com
NEXT_PUBLIC_STUDIO_NAME="Emberlight Games"
PRESS_CONTACT_EMAIL=press@emberlightgames.com
NEWSLETTER_API_KEY=
NEWSLETTER_LIST_ID=
ANALYTICS_ID=
```

### Studio Metadata

Studio-wide settings are stored in:

```text
config/studio.json
```

This file controls:

- Studio description
- Social links
- Platform links
- Footer text
- Press contact details
- Default SEO metadata

### Game Metadata

Each game has its own content file in:

```text
content/games/
```

Game files include:

- Title
- Release status
- Platforms
- Store links
- Short and long descriptions
- Trailer URL
- Screenshot gallery
- Press kit downloads