> ## Documentation Index
> Fetch the complete documentation index at: https://0xramp-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing to 0xramp — Developer Setup and Guidelines

> How to set up a local development environment, understand the codebase structure, and contribute code or documentation to 0xramp as an open-source project.

0xramp is an open-source project and we welcome contributions from the community — whether that's bug reports, feature proposals, documentation improvements, or code. The GitHub organization is at [github.com/0xramp](https://github.com/0xramp). Specific repository links will be added here when public.

## Prerequisites

Before setting up a local environment, make sure you have the following:

* **Node.js** — use the version specified in `.nvmrc` or the `engines` field in `package.json`
* **pnpm** (recommended) or **npm**
* **PostgreSQL** — used locally for session storage
* **P2P.me SDK environment** — a staging environment is recommended for development; avoid pointing local builds at production P2P.me endpoints

## Getting Started

<Steps>
  <Step title="Fork and clone the repo">
    Fork the repository on GitHub, then clone your fork locally:

    ```bash theme={null}
    git clone https://github.com/<your-username>/<repo-name>.git
    cd <repo-name>
    ```
  </Step>

  <Step title="Install dependencies">
    Install all project dependencies from the repo root:

    ```bash theme={null}
    pnpm install
    ```

    If you prefer npm:

    ```bash theme={null}
    npm install
    ```
  </Step>

  <Step title="Configure environment">
    Copy the example environment file and fill in the required values. See the [Configuration](/developers/configuration) page for a full description of each variable.

    ```bash theme={null}
    cp .env.example .env
    ```

    At minimum you'll need to set `VITE_P2P_SDK_ENV`, `VITE_APP_URL`, and the server-side secrets listed as placeholders in `.env.example`.
  </Step>

  <Step title="Start the dev server">
    Run the development script to start both the Vite frontend and the Express backend together:

    ```bash theme={null}
    pnpm dev
    ```

    The frontend will typically be available at `http://localhost:5173` and the API at `http://localhost:3000` unless you've overridden the defaults in your `.env`.
  </Step>

  <Step title="Make changes and open a PR">
    Create a feature branch from `main`, make your changes, and open a pull request back against `main`. Include a clear description of what changed and why. Reference any related issues or ADRs.

    ```bash theme={null}
    git checkout -b feat/your-feature-name
    # ... make changes ...
    git push origin feat/your-feature-name
    ```
  </Step>
</Steps>

## Architecture Decisions

Significant technical decisions — choice of SDK integration path, session storage approach, NEAR Intents routing, etc. — are documented as Architecture Decision Records (ADRs). Reading through them is the fastest way to understand *why* the codebase is structured the way it is before proposing large changes.

<Info>
  **TODO:** Link to the ADR directory when the repository is public.
</Info>

## Code Style

* **TypeScript throughout** — all new code should be typed; avoid `any` unless unavoidable
* **Linting and formatting** are enforced by the project's ESLint and Prettier configuration; run the lint script before opening a PR
* **P2P.me SDK** — keep usage on the pure `@p2pdotme/sdk` integration path; do not patch, monkey-patch, or fork SDK internals
* **No secrets in code** — see [Configuration](/developers/configuration) for the hard rule on environment variables

<Note>
  0xramp is currently in public beta. The formal contribution process, issue templates, and ADR workflow will be finalized closer to the v1.0 release.

  **TODO:** Add a link to `CONTRIBUTING.md` when available.
</Note>
