Files
editor/CONTRIBUTING.md
T
59a67e68ca chore: add a verified Bun devcontainer (#520)
* add devcontainer setup and change default port to 3002

* fix(devcontainer): enforce frozen install

---------

Co-authored-by: victor <victor@elalemanyo.de>
2026-07-19 18:39:19 +02:00

76 lines
2.5 KiB
Markdown

# 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](https://bun.sh/) 1.3+ (or Node.js 18+)
### Setup
```bash
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](https://biomejs.dev/) for linting and formatting. Before submitting a PR:
```bash
bun check # Check for issues
bun check:fix # Auto-fix issues
```
### 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](https://editor.pascal.app/docs/developers/plugins) for the contract, and clone [`pascalorg/plugin-trees`](https://github.com/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`** to make sure linting passes
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](https://github.com/pascalorg/editor/issues/new?template=bug_report.yml) template. Include steps to reproduce — this helps us fix things faster.
## Suggesting features
Use the [Feature Request](https://github.com/pascalorg/editor/issues/new?template=feature_request.yml) template, or start a [Discussion](https://github.com/pascalorg/editor/discussions) if you want to brainstorm first.
## Questions?
Head to [Discussions](https://github.com/pascalorg/editor/discussions) — we're happy to help!