Getting Started

October 31, 2025 ยท View on GitHub

This guide will help you set up your development environment and make your first contribution to the Node.js website.

Table of Contents

Prerequisites

  • Node.js (latest LTS version recommended)
  • pnpm package manager
  • Git
  • A GitHub account

Setting Up Your Development Environment

  1. Fork and Clone the Repository

    Click the fork button in the top right to clone the Node.js Website Repository

    git clone git@github.com:<YOUR_GITHUB_USERNAME>/nodejs.org.git # SSH
    git clone https://github.com/<YOUR_GITHUB_USERNAME>/nodejs.org.git # HTTPS
    gh repo clone <YOUR_GITHUB_USERNAME>/nodejs.org # GitHub CLI
    
  2. Navigate to the Project Directory

    cd nodejs.org
    
  3. Set Up Remote Tracking

    git remote add upstream git@github.com:nodejs/nodejs.org.git # SSH
    git remote add upstream https://github.com/nodejs/nodejs.org.git # HTTPS
    gh repo sync nodejs/nodejs.org # GitHub CLI
    
  4. Install Dependencies

    pnpm install --frozen-lockfile
    
  5. Start the Development Server

    pnpm dev # starts a development environment at http://localhost:3000/
    

Making Your First Contribution

  1. Create a New Branch

    git checkout -b name-of-your-branch
    
  2. Make Your Changes

  3. Test Your Changes

    pnpm format # runs linting and formatting
    pnpm test # runs all tests
    
  4. Keep Your Branch Updated

    git fetch upstream
    git merge upstream/main
    
  5. Commit and Push Your Changes

    git add .
    git commit -m "describe your changes"
    git push -u origin name-of-your-branch
    

    Tip

    Follow our commit guidelines for commit message format.

  6. Create a Pull Request

Available CLI Commands

Development Commands

  • pnpm dev - Start local development server
  • pnpm build - Build for production (Vercel deployments)
  • pnpm deploy - Build for export (Legacy server)
  • pnpm start - Start server with built content

Code Quality Commands

  • pnpm lint - Run linter for all files
  • pnpm lint:fix - Attempt to fix linting errors
  • pnpm prettier - Run prettier for JavaScript files
  • pnpm prettier:fix - Attempt to fix style errors
  • pnpm format - Format and fix lints for entire codebase

Testing Commands

  • pnpm test - Run all tests locally
  • pnpm test:unit - Run unit tests only
  • pnpm test:ci - Run tests with CI output format

Other Commands

  • pnpm scripts:release-post -- --version=vXX.X.X --force - Generate release post
  • pnpm storybook - Start Storybook development server
  • pnpm storybook:build - Build Storybook for publishing

Next Steps

Getting Help