This monorepo contains all STEMSF web applications.
stemsphere/
├── landing/ # Main website (stemsf.org)
├── courses/ # Learning platform (learn.stemsf.org)
├── package.json # Monorepo root configuration
├── .gitignore
└── VERCEL_SETUP.md # Deployment guide
From the root directory:
npm installRun landing page:
npm run dev:landingRun courses platform:
npm run dev:coursesBuild landing page:
npm run build:landingBuild courses platform:
npm run build:coursesBuild all apps:
npm run build:allThis monorepo is deployed to Vercel with two separate projects:
- Root Directory:
landing - Build Command:
npm run build - Output Directory:
dist - Domain: stemsf.org
- Root Directory:
courses - Build Command:
npm run build - Output Directory:
dist - Domain: learn.stemsf.org
-
Import the repository to Vercel (only once)
-
Create first project (Landing Page):
- Project name:
stemsf-landing - Framework Preset: Vite
- Root Directory:
landing - Build Command:
npm run build - Output Directory:
dist - Install Command:
npm install
- Project name:
-
Create second project (Courses):
- Go to Vercel dashboard → Add New Project
- Select the same repository
- Project name:
stemsf-courses - Framework Preset: Vite
- Root Directory:
courses - Build Command:
npm run build - Output Directory:
dist - Install Command:
npm install
-
Configure Domains:
- In
stemsf-landingproject: Add domainstemsf.org - In
stemsf-coursesproject: Add domainlearn.stemsf.org
- In
-
DNS Configuration:
- For
stemsf.org: Point A record to Vercel IP or CNAME tocname.vercel-dns.com - For
learn.stemsf.org: Add CNAME record pointing tocname.vercel-dns.com
- For
- Make changes in respective app directories
- Test locally with
npm run dev:landingornpm run dev:courses - Commit and push to main branch
- Vercel will automatically deploy both projects