# Moonwake Games Website

A lightweight studio website for an indie video game team. The project showcases current games, press materials, devlogs, team information, newsletter signup, and contact links for publishers, press, and players.

## Overview

This site is designed for small game studios that need a maintainable public presence without a complex CMS. Content is stored in structured files, making it easy to update trailers, screenshots, press kits, store links, and release dates as games move from prototype to launch.

## Features

- Studio landing page with featured game spotlight
- Game pages for trailers, screenshots, platforms, and store links
- Devlog and announcement posts
- Press kit section with downloadable assets
- Newsletter signup integration
- Contact page for business, press, and support inquiries
- Responsive layout for desktop, tablet, and mobile
- Environment-based configuration for analytics and external services

## Install

Requirements:

- Node.js 20+
- npm 10+

Clone the repository:

```bash
git clone https://github.com/moonwake-games/studio-site.git
cd studio-site
```

Install dependencies:

```bash
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 preview
```

Add or edit games in:

```text
content/games/
```

Add devlog posts in:

```text
content/posts/
```

Update studio information, social links, and press contact details in:

```text
content/studio.json
```

Public assets such as logos, screenshots, trailers, and press kit files should be placed in:

```text
public/assets/
```

## Configuration

Configuration is handled through environment variables.

```env
SITE_URL=https://moonwakegames.example
STUDIO_NAME=Moonwake Games
PRESS_EMAIL=press@moonwakegames.example
SUPPORT_EMAIL=support@moonwakegames.example

NEWSLETTER_PROVIDER=mailchimp
NEWSLETTER_ENDPOINT=
NEWSLETTER_API_KEY=

ANALYTICS_PROVIDER=plausible
ANALYTICS_DOMAIN=moonwakegames.example
```

Common options:

| Variable | Description | Required |
| --- | --- | --- |
| `SITE_URL` | Public URL used for canonical links and social previews | Yes |
| `STUDIO_NAME` | Studio name shown in metadata and footer | Yes |
| `PRESS_EMAIL` | Contact address for press and business inquiries | Yes |
| `SUPPORT_EMAIL` | Player support contact address | No |
| `NEWSLETTER_PROVIDER` | Newsletter service name, such as `mailchimp` or `buttondown` | No |
| `NEWSLETTER_ENDPOINT` | Form submission endpoint for newsletter signup | No |
| `NEWSLETTER_API_KEY` | API key for newsletter integration | No |
| `ANALYTICS_PROVIDER` | Analytics provider name | No |
| `ANALYTICS_DOMAIN` | Domain used by the analytics provider | No |

Do not commit `.env.local` or production secrets to version control.