OneApp Docs
Getting Started

Prerequisites

Ensure your development environment has the required tools to build and run OneApp applications.

Quick Setup

Already have Node.js 22+ and pnpm 10+? Skip to Installation →

Why these tools?

Setting up a modern monorepo requires specific tooling:

  • Wrong Node.js version — Apps fail with cryptic errors due to missing features
  • npm/yarn limitations — Slow installs, phantom dependencies, and poor monorepo support
  • Missing Git — Can't clone the repository or collaborate with your team
  • Manual verification — Unsure if your environment is correctly configured

OneApp requires Node.js 22+ (for modern JavaScript features), pnpm 10+ (for fast, strict monorepo management), and Git (for version control) — ensuring a consistent development experience across your team.

Required software

Node.js 22+

OneApp requires Node.js version 22 or higher for:

  • Native Fetch API — Built-in fetch() for server-side requests
  • Top-level await — Use await outside async functions
  • Performance — Faster startup and better memory management
  • ECMAScript features — Latest JavaScript syntax support
Terminal
# Check your Node.js version
node --version
# Should output: v22.x.x or higher

Installing Node.js

Use nvm (Node Version Manager) to install and switch between Node.js versions:

Terminal
# Install nvm (macOS/Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Install Node.js 22
nvm install 22
nvm use 22

# Set as default
nvm alias default 22

Windows: Use nvm-windows

pnpm 10+

We use pnpm instead of npm or yarn for significant benefits:

  • 3x faster installs — Content-addressable storage
  • Disk space savings — Hard links instead of file copies
  • Strict dependencies — No phantom dependencies
  • Native monorepo support — Built-in workspace features
Terminal
# Check your pnpm version
pnpm --version
# Should output: 10.x.x or higher

Installing pnpm (Recommended: Corepack)

Use Corepack (included with Node.js 16.9+) for automatic pnpm version management:

Terminal
# Enable Corepack
corepack enable

# Prepare pnpm
corepack prepare pnpm@latest --activate

# Verify installation
pnpm --version

Alternative: Install globally via npm:

Terminal
npm install -g pnpm@latest

Git

Git is required for:

  • Cloning the repository — Download the codebase
  • Version control — Track changes and collaborate
  • Branch management — Create feature branches
  • CI/CD integration — Automated workflows
Terminal
# Check your Git version
git --version
# Should output: git version 2.x.x

Installing Git

  • macOS: Install Xcode Command Line Tools: xcode-select --install
  • Linux: sudo apt install git (Ubuntu/Debian) or sudo yum install git (CentOS/RHEL)
  • Windows: Download from git-scm.com

GitHub CLI (gh)

The GitHub CLI simplifies PR management and API interactions:

Terminal
# macOS
brew install gh

# Ubuntu/Debian
sudo apt install gh

# Windows
winget install GitHub.cli

# Authenticate
gh auth login

Benefits:

  • Create PRs from the command line: gh pr create
  • View PR status: gh pr view
  • Run GitHub Actions: gh workflow run

VS Code Extensions

For the best development experience, install:

ExtensionPurposeID
ESLintReal-time lintingdbaeumer.vscode-eslint
PrettierCode formattingesbenp.prettier-vscode
Tailwind CSS IntelliSenseTailwind autocompletebradlc.vscode-tailwindcss
Error LensInline error displayusernamehw.errorlens
GitLensGit superchargedeamodio.gitlens
TypeScript Error TranslatorBetter TS error messagesmattpocock.ts-error-translator

Install all at once:

Terminal
code --install-extension dbaeumer.vscode-eslint \
     --install-extension esbenp.prettier-vscode \
     --install-extension bradlc.vscode-tailwindcss \
     --install-extension usernamehw.errorlens \
     --install-extension eamodio.gitlens \
     --install-extension mattpocock.ts-error-translator

Environment verification

Run this script to verify all prerequisites:

Terminal
echo "Node.js: $(node --version)"
echo "pnpm: $(pnpm --version)"
echo "Git: $(git --version)"
echo "GitHub CLI: $(gh --version 2>/dev/null || echo 'Not installed (optional)')"

Expected output:

Node.js: v22.x.x
pnpm: 10.x.x
Git: git version 2.x.x
GitHub CLI: gh version 2.x.x (or "Not installed (optional)")

All required tools are installed — proceed to Installation →

Missing tools — install the required software above

On this page