Skip to content

Getting Started

  • Node.js 20+
  • pnpm 9+
  • Git
  1. Clone the repository:
Terminal window
git clone https://github.com/lakea-project/lakea.git
cd lakea
  1. Install dependencies:
Terminal window
pnpm install
  1. Verify setup:
Terminal window
pnpm nx run-many -t build
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 pipelines
Terminal window
# Start all apps
pnpm dev
# Or individual apps
pnpm nx dev @lakea/handbook # localhost:4322
pnpm nx dev @lakea/portal # localhost:4320
pnpm nx dev @lakea/exoplanet-catalog # localhost:4321
# Run tests for a package
pnpm nx test @lakea/core
# Run all affected tests
pnpm nx affected -t test

See Deployment for production setup.

Terminal window
# Build a specific package
pnpm nx build @lakea/core
# Build all affected projects
pnpm nx affected -t build
Terminal window
# Lint a specific project
pnpm nx lint @lakea/core
# Fix lint issues
pnpm nx lint @lakea/core --fix

Lakea uses NX for monorepo task orchestration. Understanding these commands helps you work efficiently.

Run tasks only for packages changed since main:

Terminal window
pnpm nx affected -t test # Test changed packages
pnpm nx affected -t build # Build changed packages
pnpm nx affected -t lint # Lint changed packages

NX caches task results. If nothing changed, tasks complete instantly.

  • Cache location: .nx/cache
  • Clear cache: pnpm nx reset

Visualize how packages depend on each other:

Terminal window
pnpm nx graph

This opens a browser showing the package dependency graph.

Run multiple tasks in one command:

Terminal window
pnpm nx run-many -t build,test # Build and test all
pnpm nx affected -t test,lint # Test and lint affected
  1. Pick an issue labeled good first issue
  2. Create a branch: git checkout -b feat/your-feature
  3. Make changes following our Git Workflow
  4. Run tests and lint: pnpm nx affected -t test,lint
  5. Submit a PR
  • Check the handbook first
  • Open a GitHub issue for bugs or feature requests
  • Discussions for questions and ideas