This repo is maintained by CSSS webmasters. Keep it boring: small PRs, reviewed before merge.
- Branch off
main(git checkout -b feat/course-reviews). - Make your change, run
npm run lint && npm run typecheck && npm run buildlocally. - Open a PR.
mainis protected — no direct pushes, no self-merged PRs. At least one other webmaster reviews. - Squash-merge once CI is green.
- Server components by default. Add
"use client"only to the leaf that needs state, effects or browser APIs, and keep those leaves small. - No colour literals in components. Use the token utilities (
bg-navy,text-sky,text-ink/70) declared inapp/globals.css. - Fonts: headings and labels use
font-display(Montserrat, uppercase + wide tracking for section labels); body copy uses the defaultfont-sans(Poppins). - Place shared UI in
components/, page-specific pieces next to the route they serve. - Keep site-wide strings and navigation in
lib/site.tsrather than duplicating them per page. - Every page exports
metadata(or agenerateMetadatafunction) — no page ships with the default title.
Do not invent facts, prices, sponsor names, deadlines or statistics to fill a layout. If a page
needs real content, ask the relevant exec (for sponsorship and external comms, vpx@ubccsss.org).
Placeholder copy belongs behind TODO