This is the monorepo for all code related to the NASA Explorer platform — a modern, interactive data explorer for visualizing space and Earth science data.
The repository is structured as a modular monorepo and contains all frontend clients, backend services, shared utilities, and configurations necessary to run the complete system in development and production environments.
.
├── clients/ # All frontend applications (e.g., React, Next.js)
│ └── apps/ # Individual frontend apps
│ └── packages/ # Shared frontend packages
│
├── services/ # All backend services (e.g., Express APIs, workers)
│ └── apps/ # Individual backend services
│ └── packages/ # Shared backend packages
│
├── node_modules/ # Installed dependencies
├── pnpm-workspace.yaml
├── package.json
└── README.md
Install pnpm globally if you haven’t already:
npm install -g pnpmFrom the root of the repo:
pnpm installThis will install all dependencies and automatically link local packages within the monorepo using pnpm workspaces.
Each application under clients/apps/* or services/apps/* requires its own environment configuration file.
- Navigate into the app's directory
- Copy the example
.envfile:
cp .env.example .env- Update any required values in the newly created
.envfile.
ℹ️ Some environment variables are pre-filled. Others (like API keys or secrets) will need to be manually added.
⚠️ These.envfiles are required to run or build the application.
Once all required .env files are created, you can run the entire stack using from the root of the repo:
pnpm devThis starts all apps and services.
Each application provides its own build script prefixed with build:<app-name>. For example:
pnpm build:ui # Builds the frontend UI
pnpm build:api # Builds the backend APIThese scripts delegate to the corresponding app's build command internally.
Some apps include Docker configurations for containerized builds. These can be triggered using:
pnpm docker:<app-name>For example:
pnpm docker:apiThis monorepo uses pnpm workspaces for dependency management and package linking. It ensures fast, deterministic installs and local package sharing across apps.
- Each application and package contains its own
README.mdwith specific setup and usage instructions. - Refer to those for further details on environment configuration, testing, and deployment.
Run entire test suite for all packages and apps by running:
pnpm testThis project is licensed under the MIT License.