Notploy

Contributing

Set up the development environment, understand the repository, and contribute changes.

Purpose — Help contributors run Notploy locally, find their way around the monorepo, and land changes with the expected checks. This page is aimed at people changing Notploy itself, not at people deploying with it.

Requirements

  • Node.js 24.4 or later (24.x line)
  • pnpm 10.22 or later
  • PostgreSQL (provided by the Docker Compose stack if you prefer)

See Platform support.

Getting started

git clone https://github.com/skygenesisenterprise/notploy.git
cd notploy
pnpm install --frozen-lockfile

The easiest way to get a full local stack (including PostgreSQL) is Docker Compose:

cp .env.example .env
# set POSTGRES_PASSWORD and BETTER_AUTH_SECRET
docker compose up --build -d

For running the application directly against your own database, use the root scripts.

Repository layout

PathRole
apps/notployMain dashboard, API and application server.
packages/serverShared server, deployment, database and platform logic.
apps/apiAPI and background-work service.
apps/schedulesScheduled jobs service.
packages/cliCLI client.
packages/sdkGenerated TypeScript SDK.
packages/mcpMCP server.
web/apps/website, web/apps/docsWebsite and documentation.
templatesTemplate gallery and blueprints.
examplesStandalone deployment examples (outside the workspace).

Common commands

CommandPurpose
pnpm devRun the Notploy application.
pnpm buildBuild workspace packages.
pnpm testRun the application test suite.
pnpm typecheckType-check workspace packages.
pnpm lintRun Biome checks.
pnpm docs:dev / pnpm docs:buildRun or build the documentation site.

Before opening a pull request

  • Run pnpm test, pnpm typecheck and pnpm lint.
  • Keep PR titles in Conventional Commits format (fix: …, feat: …, docs: …).
  • Add a changeset with pnpm changeset when your change is user-facing.
  • Choose the right pull request template.

Documentation changes

When a change affects user-facing behavior, configuration, deployment, security, migration or API contracts, update the documentation in the same pull request. Follow the editorial principles and the page template: purpose, concepts, prerequisites, procedure, verification, troubleshooting, limitations and related pages.

Keep examples aligned with current package names, commands, endpoints and environment variables, and never include real credentials.

On this page