# Emberlane Games Studio Site

Emberlane Games is an indie video game studio focused on small, atmospheric games with handcrafted art, reactive sound, and character-driven worlds. This repository contains the public studio website, press kit pages, game catalog, devlog, and newsletter signup flow.

## Features

- Responsive studio homepage with featured games and recent updates
- Individual game pages with screenshots, trailers, store links, and press assets
- Devlog system powered by local Markdown content
- Press kit pages for journalists, streamers, and event organizers
- Newsletter signup integration
- SEO metadata and social sharing cards
- Lightweight configuration for changing studio links, games, and contact details

## Install

Requirements:

- Node.js 20+
- npm 10+

Clone the repository and install dependencies:

```bash
git clone https://github.com/emberlane-games/studio-site.git
cd studio-site
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
```

Build the production site:

```bash
npm run build
```

Preview the production build:

```bash
npm run start
```

Run linting:

```bash
npm run lint
```

Add a new devlog post by creating a Markdown file in:

```text
content/devlog/
```

Add or update game information in:

```text
data/games.json
```

Place screenshots, capsule art, trailers, and press assets in:

```text
public/media/
```

## Configuration

Environment variables are loaded from `.env.local`.

| Variable | Required | Description |
| --- | --- | --- |
| `NEXT_PUBLIC_SITE_URL` | Yes | Public URL used for canonical links and sharing metadata |
| `NEXT_PUBLIC_STUDIO_NAME` | Yes | Studio name shown across the site |
| `NEWSLETTER_ENDPOINT` | No | API endpoint for newsletter signups |
| `PRESS_CONTACT_EMAIL` | Yes | Public contact email for press and business inquiries |
| `ANALYTICS_ID` | No | Analytics provider ID, if enabled |

Example:

```env
NEXT_PUBLIC_SITE_URL=https://emberlane.games
NEXT_PUBLIC_STUDIO_NAME="Emberlane Games"
NEWSLETTER_ENDPOINT=https://api.buttondown.email/v1/subscribers
PRESS_CONTACT_EMAIL=press@emberlane.games
ANALYTICS_ID=
```

Studio-wide content such as social links, store pages, and press contact details can be edited in:

```text
config/studio.ts
```

Game-specific configuration lives in:

```text
data/games.json
```