YaleSites Project is a Pantheon custom upstream for Drupal 10 that serves as the foundation for Yale's web platform. The YaleSites platform empowers the Yale community to create digital experiences for the web in applications that are secure, cost-effective, accessible, and sustainable.
This is a sophisticated multi-repository system that includes:
- Pantheon custom upstream for Drupal 10 - Core platform infrastructure
- Local development environment and tooling - Lando-based development setup
- Code quality, testing, and build tools - Comprehensive linting and testing suite
- Continuous integration and delivery support - Automated builds and deployments
This platform coordinates development across multiple repositories:
- yalesites-project (this repo): Drupal platform and installation profile
- atomic: Theme implementation bridging Drupal and component library
- component-library-twig: Storybook component library with Yale design system
- tokens: Design system tokens from Figma
git clone git@github.com:yalesites-org/yalesites-project
cd yalesites-project
npm run setupLocal Development URLs:
- Primary Site:
https://yalesites-platform.lndo.site/ - Storybook: Available when component library is linked
- PHP Version: 8.3
- Node.js: >=8.0, <11.0 (managed via NVM)
- Docker: 3GB+ memory, 3+ CPUs recommended
- Lando: Latest release
- Composer: Version 2.x
- GitHub Personal Access Token: Required for
@yalesites-orgpackages (scope:write:packages) - Pantheon Terminus: Machine token for platform integration
- Review contribution guidelines
- Setup a local development environment
- Getting started as a developer
- Learn about the project architecture
- Frontend review and development
- Working with component themes and global themes
All commands are prefixed with npm run. For example: npm run setup
setup- Complete environment initialization and setupdb:get- Download database from Pantheon dev environmentfiles:get- Download files from Pantheon dev environmentcontent-import- Import starterkit content for testing
build- Standard build preserving local database (for config updates)build-with-assets- Build with clean Pantheon database import (matches dev environment)build-with-install- Build with fresh site install (empty database for breaking changes)
local:theme-link- Establish npm links to frontend repositories (run once)local:cl-dev- Full cross-repository development mode (Storybook + Drupal)local:git-checkout- Sync all repositories to default branches
local:review-with-atomic-branch- Review Atomic branch with latest CL releaselocal:review-with-cl-branch- Review Component Library branch with current Atomiclocal:review-with-atomic-and-cl-branch- Review branches from both Atomic and CL
confex- Export Drupal configuration to YAML filesconfim- Import YAML configuration to database
lint- Run all linting (JavaScript, PHP, Styles)lint:js- ESLint for custom JavaScriptlint:php- PHP CodeSniffer with Drupal standardslint:styles- Stylelint for SCSS filesfix:js- Auto-fix JavaScript linting errorsprettier- Check code formatting (does not auto-fix)test- Run complete test suite (prettier + all linting)
lando composer code-sniff # PHP linting
lando composer code-fix # Auto-fix PHP code style
lando phpunit # Run PHPUnit tests
lando drush [command] # Drush commands
lando xdebug-on # Enable Xdebug
lando xdebug-off # Disable Xdebug- Configuration: Managed through installation profile at
web/profiles/custom/yalesites_profile/config/sync/ - Custom Modules: Use
ys_prefix (e.g.,ys_core,ys_themes) - Branch Strategy:
develop(primary),master(releases),YALB-XXX-description(features) - Semantic Release: Automated versioning on master branch using conventional commits