Skip to content

docs: add developer onboarding guide#26

Open
tsiupa-coder wants to merge 1 commit intokoldovsky:mainfrom
tsiupa-coder:main
Open

docs: add developer onboarding guide#26
tsiupa-coder wants to merge 1 commit intokoldovsky:mainfrom
tsiupa-coder:main

Conversation

@tsiupa-coder
Copy link
Copy Markdown

@tsiupa-coder tsiupa-coder commented Mar 26, 2026

Add comprehensive onboarding documentation for new team members covering architecture, package structure, development workflow, testing, build system, state management, rendering pipeline, and CI/CD — with Mermaid diagrams.

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive developer onboarding guide covering project structure, development setup, architecture overview, contribution workflow, testing procedures, build processes, and CI/CD pipeline information.

Add comprehensive onboarding documentation for new team members covering
architecture, package structure, development workflow, testing, build system,
state management, rendering pipeline, and CI/CD — with Mermaid diagrams.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 26, 2026

📝 Walkthrough

Walkthrough

A comprehensive developer onboarding guide for Excalidraw was added, covering library vs. app structure, monorepo organization, architecture, development setup, contribution workflows, testing and build processes, state management, rendering pipeline, CI/CD checks, and common development tasks.

Changes

Cohort / File(s) Summary
Documentation
onboarding.md
New comprehensive developer onboarding guide covering project structure, architecture, setup instructions, contribution workflow, testing, build processes, state management, rendering pipeline, and development tasks.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐰 A guide for builders, shiny and new,
With diagrams, workflows, and what devs should do,
From setup to testing, the path is now clear,
Welcome, dear coder, to Excalidraw's sphere!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main change: adding a developer onboarding guide document.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@onboarding.md`:
- Around line 38-55: Update the five fenced code blocks that lack language tags
by adding the "text" language identifier to each opening fence so markdownlint
MD040 is satisfied; specifically change the fences containing the directory tree
starting with "excalidraw/", the block showing "packages/excalidraw/src/", the
block with the commit message template "<type>(<scope>): <description>", the
block listing "packages/excalidraw/tests/", and the block showing
"packages/excalidraw/dist/" to use ```text as the opening fence.
- Around line 548-556: Update the CI/CD flow text to use the repository's branch
name "main" instead of "master": change the subgraph label "On Merge to master"
to "On Merge to main" and any references to Merge target/description that
mention "master" (e.g., the subgraph title and the Merge node label) so the
diagram and onboarding text consistently reference "main".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6eb6949a-4a90-4197-b1c5-80253220e1cc

📥 Commits

Reviewing files that changed from the base of the PR and between be47f1d and 5b70a42.

📒 Files selected for processing (1)
  • onboarding.md

Comment on lines +38 to +55
```
excalidraw/
├── packages/ # Core npm packages
│ ├── excalidraw/ # Main React library (@excalidraw/excalidraw)
│ ├── common/ # Shared utilities (@excalidraw/common)
│ ├── element/ # Element logic (@excalidraw/element)
│ ├── math/ # 2D geometry (@excalidraw/math)
│ └── utils/ # Export utilities (@excalidraw/utils)
├── excalidraw-app/ # The web application (excalidraw.com)
├── examples/ # Integration examples
│ ├── with-nextjs/
│ └── with-script-in-browser/
├── scripts/ # Build and release scripts
├── dev-docs/ # Developer documentation
├── public/ # Static assets
├── .github/workflows/ # CI/CD pipelines
└── firebase-project/ # Firebase config
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifiers to fenced code blocks to satisfy markdownlint MD040.

The fences starting at Line 38, Line 197, Line 302, Line 327, and Line 398 are missing language tags, which currently triggers lint warnings.

🛠️ Proposed doc fix
-```
+```text
 excalidraw/
 ...
-```
+```

-```
+```text
 packages/excalidraw/src/
 ...
-```
+```

-```
+```text
 <type>(<scope>): <description>
 ...
-```
+```

-```
+```text
 packages/excalidraw/tests/    # Main component and integration tests
 ...
-```
+```

-```
+```text
 packages/excalidraw/dist/
 ...
-```
+```

Also applies to: 197-215, 302-312, 327-333, 398-403

🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 38-38: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@onboarding.md` around lines 38 - 55, Update the five fenced code blocks that
lack language tags by adding the "text" language identifier to each opening
fence so markdownlint MD040 is satisfied; specifically change the fences
containing the directory tree starting with "excalidraw/", the block showing
"packages/excalidraw/src/", the block with the commit message template
"<type>(<scope>): <description>", the block listing
"packages/excalidraw/tests/", and the block showing "packages/excalidraw/dist/"
to use ```text as the opening fence.

Comment on lines +548 to +556
subgraph "On Merge to master"
M1["Run all tests<br/>(yarn test:app)"]
M2["Auto-publish to npm<br/>(autorelease)"]
M3["Build Docker image"]
M4["Upload Sentry sourcemaps"]
end

PR1 & PR2 & PR3 & PR4 & PR5 & PR6 --> Merge[Merge to master]
Merge --> M1 & M2 & M3 & M4
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Replace master with main in CI/CD flow text.

Line 548 and Line 555 reference master, but this repository is using main (per PR target/source). This can mislead new contributors during onboarding.

🛠️ Proposed doc fix
-    subgraph "On Merge to master"
+    subgraph "On Merge to main"
@@
-    PR1 & PR2 & PR3 & PR4 & PR5 & PR6 --> Merge[Merge to master]
+    PR1 & PR2 & PR3 & PR4 & PR5 & PR6 --> Merge[Merge to main]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
subgraph "On Merge to master"
M1["Run all tests<br/>(yarn test:app)"]
M2["Auto-publish to npm<br/>(autorelease)"]
M3["Build Docker image"]
M4["Upload Sentry sourcemaps"]
end
PR1 & PR2 & PR3 & PR4 & PR5 & PR6 --> Merge[Merge to master]
Merge --> M1 & M2 & M3 & M4
subgraph "On Merge to main"
M1["Run all tests<br/>(yarn test:app)"]
M2["Auto-publish to npm<br/>(autorelease)"]
M3["Build Docker image"]
M4["Upload Sentry sourcemaps"]
end
PR1 & PR2 & PR3 & PR4 & PR5 & PR6 --> Merge[Merge to main]
Merge --> M1 & M2 & M3 & M4
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@onboarding.md` around lines 548 - 556, Update the CI/CD flow text to use the
repository's branch name "main" instead of "master": change the subgraph label
"On Merge to master" to "On Merge to main" and any references to Merge
target/description that mention "master" (e.g., the subgraph title and the Merge
node label) so the diagram and onboarding text consistently reference "main".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant