Skip to content

Latest commit

 

History

History
96 lines (62 loc) · 3.15 KB

File metadata and controls

96 lines (62 loc) · 3.15 KB

Contributing to Pascal Editor

Thanks for your interest in contributing! We welcome all kinds of contributions — bug fixes, new features, documentation, and ideas.

Getting started

Prerequisites

  • Bun 1.3+ and Node.js 20.9+

Setup

git clone https://github.com/pascalorg/editor.git
cd editor
bun install
bun dev

The editor will be running at http://localhost:3002. That's it!

Optional

Copy .env.example to .env and add a Google Maps API key if you want address search functionality. The editor works fully without it.

Making changes

Code style

We use Biome for linting and formatting. Before submitting a PR:

bun check        # Check for issues
bun check:fix    # Auto-fix issues

Tests

Run the whole suite from the repo root:

bun run test     # every package, via Turborepo

Run one package while you work on it:

bun --cwd packages/core run test

Use bun run test, not bare bun test. test is one of Bun's own subcommands, so bun test never reaches the package script — it runs Bun's collector over every file it can find, including compiled copies under dist/, and reports inflated counts. bun run test goes through Turborepo, which builds workspace dependencies first (several packages import theirs from dist/) and runs each package's own scoped test script.

Project structure

Package What it does
packages/core Scene schema, state management, systems — no UI
packages/viewer 3D rendering with React Three Fiber
apps/editor The full editor app (Next.js)

A key rule: packages/viewer must never import from apps/editor. The viewer is a standalone component; editor-specific behavior is injected via props/children.

Building a plugin

New node kinds and sidebar panels can ship as a plugin instead of editing the built-ins. Read Create a plugin for the contract, and clone pascalorg/plugin-trees as a worked example.

Submitting a PR

  1. Fork the repo and create a branch from main
  2. Make your changes and test locally with bun dev
  3. Run bun check and bun run test to make sure linting and tests pass
  4. Open a PR with a clear description of what changed and why
  5. Link related issues if applicable (e.g., "Fixes #42")

PR tips

  • Keep PRs focused — one feature or fix per PR
  • Include screenshots or recordings for visual changes
  • If you're unsure about an approach, open an issue or discussion first

Reporting bugs

Use the Bug Report template. Include steps to reproduce — this helps us fix things faster.

Suggesting features

Use the Feature Request template, or start a Discussion if you want to brainstorm first.

Questions?

Head to Discussions — we're happy to help!