- Added .cursor/sessions/* to .gitignore to prevent session files from being tracked. - Enhanced coding standards in SKILL.md by adding semicolons to TypeScript examples for consistency. - Improved formatting in continuous learning, detail layout, and other SKILL.md files for better readability. These changes aim to streamline development processes and maintain code quality across the project.
5.1 KiB
Local Development Setup
Architectural Foundation: Node.js ยท pnpm ยท Turborepo
Description: Local development setup guide covering prerequisites (Node.js v20+, pnpm v8), workspace installation, and Turborepo-orchestrated development and build scripts.
๐ Getting Started
Prerequisites
Ensure your local environment matches the following versions to avoid compatibility issues:
- Node.js:
v20+(tested withv24.11.1) โ required for the--import tsxflag used by the desktop prebuild script - pnpm:
v8.15.6(Enforced via thepackageManagerfield inpackage.json)
Installation
Install all dependencies from the root directory:
pnpm install
๐ Usage & Scripts
This repository uses Turborepo to orchestrate tasks efficiently. All commands are executed from the root.
Development
| Command | Description |
|---|---|
pnpm dev |
Start all applications (web and docs-dev) in parallel |
pnpm dev:web |
Start only the Main Web App (strictly at http://localhost:5173) |
pnpm dev:landing |
Start the Public Landing App (strictly at http://localhost:3000) |
pnpm dev:docs-dev |
Start VitePress for documentation development (strictly at http://localhost:6060) |
pnpm dev:desktop |
Start the Web App + Electron in parallel for desktop development |
[!NOTE] > Port Topology:
electron-vitedynamically allocates a background port (usually5174) for its internal renderer shell duringpnpm dev:desktop. We strictly isolateweb(5173) andlanding(3000) onto separate port ranges to prevent race conditions during parallel execution.
Building & Quality
| Command | Description |
|---|---|
pnpm build |
Build all apps and packages using Turbo cache |
pnpm build:web |
Build only the web application |
pnpm build:landing |
Build only the landing page |
pnpm build:docs-dev |
Build only the docs-dev application |
pnpm build:desktop |
Build the web app, then compile the Electron app |
pnpm test |
Run unit tests (Vitest) across all packages |
pnpm lint |
Run ESLint across the workspace |
pnpm format |
Format code using Prettier |
๐ Desktop Packaging & Distribution
To package the application into a production-ready installer, use the following commands from the root directory:
| Command | Platform | Output Artifact |
|---|---|---|
pnpm package:desktop |
Current OS | Detects host OS and builds accordingly |
pnpm package:mac |
macOS | .dmg and .zip (supports x64 & arm64) |
pnpm package:win |
Windows | .exe (NSIS Installer) |
pnpm package:linux |
Linux | .AppImage |
[!IMPORTANT] > Build Sequence: All
package:*commands execute the following pipeline automatically:
turbo run build --filter=webโ Compiles the React SPA intoapps/web/dist/.prebuildhook โ Runsnode --import tsx scripts/copy-web-dist.ts, which copiesapps/web/dist/โapps/desktop/web-dist/.electron-builderโ Bundlesweb-dist/into the packaged app via thefilesandextraResourcesblocks inelectron-builder.yml.You do not need to run these steps manually โ they are chained via npm scripts.
[!WARNING] > macOS Code Signing: To build a distributable macOS app with Auto-Update support, you must have an Apple Developer Certificate and provide
CSC_LINKandCSC_KEY_PASSWORDin your environment. Without code signing, macOS Gatekeeper will block the app and auto-updates will fail. See the Desktop documentation for details.
[!NOTE] > Cross-Compilation: It is highly recommended to build for Windows on a Windows machine and for macOS on a Mac. Cross-compilation (e.g., building
.dmgon Linux) may fail due to platform-specific toolchain dependencies. Use a CI matrix strategy (e.g., GitHub Actions withruns-on: [macos-latest, windows-latest, ubuntu-latest]) for multi-platform releases.