Getting Started
Prerequisites
Section titled “Prerequisites”- Node.js 20+
- pnpm 9+
- Git
- Clone the repository:
git clone https://github.com/lakea-project/lakea.gitcd lakea- Install dependencies:
pnpm install- Verify setup:
pnpm nx run-many -t buildProject Structure
Section titled “Project Structure”lakea/├── packages/ # Shared libraries│ ├── core/ # Types, data fetchers, transforms│ ├── design-system/ # UI components and tokens (Tailwind)│ ├── ui/ # Visualization components│ └── viz/ # D3 + Three.js helpers (planned)├── apps/ # Deployable applications│ ├── handbook/ # This documentation site (Astro)│ ├── portal/ # Home page (React + Vite)│ ├── exoplanet-catalog/ # Planet explorer (React + Vite)│ └── ... # Future apps└── tools/ # Build scripts, data pipelinesCommon Commands
Section titled “Common Commands”Development
Section titled “Development”# Start all appspnpm dev
# Or individual appspnpm nx dev @lakea/handbook # localhost:4322pnpm nx dev @lakea/portal # localhost:4320pnpm nx dev @lakea/exoplanet-catalog # localhost:4321
# Run tests for a packagepnpm nx test @lakea/core
# Run all affected testspnpm nx affected -t testSee Deployment for production setup.
Building
Section titled “Building”# Build a specific packagepnpm nx build @lakea/core
# Build all affected projectspnpm nx affected -t buildLinting
Section titled “Linting”# Lint a specific projectpnpm nx lint @lakea/core
# Fix lint issuespnpm nx lint @lakea/core --fixNX Workflow
Section titled “NX Workflow”Lakea uses NX for monorepo task orchestration. Understanding these commands helps you work efficiently.
Affected Commands
Section titled “Affected Commands”Run tasks only for packages changed since main:
pnpm nx affected -t test # Test changed packagespnpm nx affected -t build # Build changed packagespnpm nx affected -t lint # Lint changed packagesNX caches task results. If nothing changed, tasks complete instantly.
- Cache location:
.nx/cache - Clear cache:
pnpm nx reset
Dependency Graph
Section titled “Dependency Graph”Visualize how packages depend on each other:
pnpm nx graphThis opens a browser showing the package dependency graph.
Running Multiple Targets
Section titled “Running Multiple Targets”Run multiple tasks in one command:
pnpm nx run-many -t build,test # Build and test allpnpm nx affected -t test,lint # Test and lint affectedFirst Contribution
Section titled “First Contribution”- Pick an issue labeled
good first issue - Create a branch:
git checkout -b feat/your-feature - Make changes following our Git Workflow
- Run tests and lint:
pnpm nx affected -t test,lint - Submit a PR
Getting Help
Section titled “Getting Help”- Check the handbook first
- Open a GitHub issue for bugs or feature requests
- Discussions for questions and ideas