Squareone is a monorepo for Rubin Observatory Data Management's front-end applications and packages.
Documentation for developers and operators: https://squareone.lsst.io
squareone(the app) is the landing page for the Rubin Science Platform. It's where you start on your journey to use the RSP's portal, notebooks, and APIs to do science with Rubin/LSST data. You can see Squareone in action at data.lsst.cloud. The Squareone app is deployed with Phalanx.
@lsst-sqre/global-cssprovides base global stylesheets for Squareone applications. These base CSS files mix in a basic reset, CSS custom properties from the Rubin Style Dictionary, and application of these properties to HTML elements.@lsst-sqre/eslint-configis a shared ESLint configuration for Squareone applications and packages.@lsst-sqre/rubin-style-dictonaryis a design token package based on the Rubin Observatory Visual Identity Manual, build with style-dictionary.@lsst-sqre/squaredis a React component library for Squareone's applications. Squared implements the Rubin Observatory Visual Identity Manual via design tokens from the Rubin Style Dictionary (@lsst-sqre/rubin-style-dictionary).@lsst-sqre/tsconfigis a shared TypeScript configuration for Squareone applications and packages.
-
Squareone is a monorepo managed with pnpm, Turborepo, and Changesets.
-
The apps are built with Next.js and React. Next.js allows the site to be dynamically configured for different Science Platform deployments.
-
Styling is done through CSS Modules (along with global CSS).
This repository supports GitHub Codespaces for instant development environments:
- Click "Code" → "Codespaces" → "Create codespace on main"
- Wait for the environment to build (~3-5 minutes first time)
- Run
pnpm devto start development
See .devcontainer/README.md for details.
Note for external contributors: Remote caching is only available to repository collaborators. Your codespace will use local caching, which works fine but may be slower on first build.
To set up your development environment and run the site locally, see Squareone's development documentation: https://squareone.lsst.io/dev/