diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..c0c69aab9
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "html.validate.scripts": false
+}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..47092e78f
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,152 @@
+# Contributing to OpenFront.io
+
+First off, thank you for considering contributing to OpenFront.io! It's people like you that make OpenFront such a great game.
+
+We welcome contributions from everyone. By participating in this project, you agree to abide by our code of conduct and treat all community members with respect.
+
+## Quick Links
+
+- **Game**: [https://openfront.io/](https://openfront.io/)
+- **Discord**: [Join the Development Discord](https://discord.gg/K9zernJB5z)
+- **Translations**: [Crowdin Project](https://crowdin.com/project/openfront-mls)
+- **Issues**: [GitHub Issues](https://github.com/openfrontio/OpenFrontIO/issues)
+
+## Getting Started
+
+### Prerequisites
+
+- **Node.js**: Ensure you have a recent version installed.
+- **npm**: Version 10.9.2 or higher.
+- **Git**: For version control.
+
+### Installation
+
+1. **Fork the repository** on GitHub.
+2. **Clone your fork** locally:
+ ```bash
+ git clone https://github.com/YOUR_USERNAME/OpenFrontIO.git
+ cd OpenFrontIO
+ ```
+3. **Install dependencies**:
+ > **Important**: Use `npm run inst` instead of `npm install`. This runs `npm ci --ignore-scripts` to ensure a consistent and secure environment.
+ ```bash
+ npm run inst
+ ```
+
+### Running the Game
+
+- **Full Development Mode** (Client + Server):
+
+ ```bash
+ npm run dev
+ ```
+
+ This starts the webpack dev server and the game server, and opens your browser.
+
+- **Client Only**:
+
+ ```bash
+ npm run start:client
+ ```
+
+- **Server Only**:
+ ```bash
+ npm run start:server-dev
+ ```
+
+## Development Workflow
+
+### Branching
+
+Create a new branch for each feature or bug fix:
+
+```bash
+git checkout -b feature/your-feature-name
+# or
+git checkout -b fix/issue-number-bug-name
+```
+
+### Coding Standards
+
+We enforce code quality using ESLint and Prettier.
+
+- **Format Code**:
+ ```bash
+ npm run format
+ ```
+- **Lint Code**:
+ ```bash
+ npm run lint
+ ```
+- **Lint & Fix**:
+ ```bash
+ npm run lint:fix
+ ```
+
+### Testing
+
+All new features and bug fixes should include relevant tests. We use **Vitest**.
+
+- **Run Tests**:
+ ```bash
+ npm test
+ ```
+- **Run Coverage**:
+ ```bash
+ npm run test:coverage
+ ```
+
+**Note**: All code changes in `src/core` **MUST** be tested to ensure game logic stability.
+
+## Submitting a Pull Request
+
+1. **Commit your changes**:
+
+ - Write clear, concise commit messages.
+ - Use the present tense ("Add feature" not "Added feature").
+
+ ```bash
+ git commit -m "Add new map rendering logic"
+ ```
+
+2. **Push to your fork**:
+
+ ```bash
+ git push origin feature/your-feature-name
+ ```
+
+3. **Open a Pull Request (PR)**:
+ - Go to the original repository and click "New Pull Request".
+ - Select your branch.
+ - Fill out the **PR Template** completely.
+
+### PR Checklist
+
+Before submitting, ensure you have:
+
+- [ ] Linked the relevant issue (e.g., `Resolves #123`).
+- [ ] Added screenshots for any UI changes.
+- [ ] Processed text through `translateText()` and added strings to `en.json`.
+- [ ] Added/Updated tests in the `tests/` directory.
+- [ ] Verified that `npm test` passes.
+- [ ] Provided your Discord username in the PR description for communication.
+
+## Translations
+
+We use Crowdin for translations. If you want to help translate OpenFront.io:
+
+1. Join the [Translation Discord](https://discord.gg/3zZzacjWFr).
+2. Visit our [Crowdin Project](https://crowdin.com/project/openfront-mls).
+3. Select your language or request a new one.
+
+## Project Structure
+
+- `src/client`: Frontend game client (rendering, input, UI).
+- `src/server`: Backend game server (networking, game state).
+- `src/core`: Shared game logic used by both client and server.
+- `resources`: Static assets (images, sounds, maps).
+- `tests`: Unit and integration tests.
+
+## License
+
+By contributing, you agree that your contributions will be licensed under the [GNU Affero General Public License v3.0 (AGPL v3.0)](LICENSE).
diff --git a/index.html b/index.html
index a6e541a60..cad490b1c 100644
--- a/index.html
+++ b/index.html
@@ -56,6 +56,12 @@
/>
+
+
+