Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .github/workflows/jekyll.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
# DISABLED as part of the Jekyll -> Next.js cutover (the Next.js deploy workflow is
# .github/workflows/nextjs.yml). This file is kept intact for rollback: to restore the
# Jekyll deployment, revert the cutover commit or re-enable the `push` trigger below.
# Jekyll legacy recovery workflow (manual dispatch only; the Next.js deploy workflow
# is .github/workflows/nextjs.yml). The Jekyll sources retired from main on
# 11 October 2026 and are preserved on the archive/jekyll-legacy branch: dispatch this
# workflow against that ref to rebuild the legacy site, and see web/CUTOVER.md
# ("Legacy Jekyll recovery") first. The `push` trigger stays disabled.
name: Deploy Jekyll site to Pages

on:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nextjs-ci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build-only check. Every pull request runs it (the root collections, *.md pages and
# _sass/ partials are build inputs too, not just web/). This workflow never deploys:
# _data/ files are build inputs too, not just web/). This workflow never deploys:
# the live site is deployed by nextjs.yml on pushes to main.
name: Build Next.js site (no deploy)

Expand Down
10 changes: 0 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,9 @@
node_modules
npm-debug.log

# Jekyll
_site
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
Gemfile.lock
**/Gemfile.lock

# Next.js (web/ rebuild — see web/README.md)
web/.next
web/out
web/public/images

# Temporary files
tmp
Expand Down
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Merges trigger `.github/workflows/nextjs.yml`. Queued intermediate Pages runs ma

## Sources and implementation

The live site is the Next.js 15 App Router static export in `web/`, deployed at `https://cambridge-ai-build-club.github.io/`. Root Markdown pages, `_events/`, `_blogs/`, `_team/`, `_data/`, `_config.yml` and `images/` supply build-time content and assets. Edit these sources; do not copy content into components.
The live site is the Next.js 15 App Router static export in `web/`, deployed at `https://cambridge-ai-build-club.github.io/`. Root Markdown pages, `_events/`, `_blogs/`, `_team/`, `_data/` and `_config.yml` supply build-time content; `web/public/images/` supplies the static assets. Edit these sources; do not copy content into components.

- Routes: `web/app/`; shared templates: `web/components/`; loaders: `web/lib/content.ts`, `site.ts` and `calendar.ts`.
- Production CSS: `web/styles/claude.css` and `site.css`, loaded by `SiteDocument`. The playground shares the design system.
Expand All @@ -39,7 +39,7 @@ The live site is the Next.js 15 App Router static export in `web/`, deployed at
- Internal links use `url()`; canonical URLs use `absoluteUrl()`. Metadata routes `sitemap.ts` and `robots.ts` declare `export const dynamic = 'force-static'`.
- Preserve `/CUABC-Web/...` redirect stubs generated by `web/scripts/gen-redirects.mjs`.

The original `_layouts/`, `_includes/` and Sass remain for Jekyll recovery. Keep `assets/css/style.scss` and `web/styles/globals.scss` synchronized when changing legacy styles; treat `_sass/bootstrap/` and `_sass/libraries/` as vendored. Legacy presentation, the hard-coded calendar and new project content are not automatically in parity with Next.js.
The Jekyll presentation layer (`_layouts/`, `_includes/`, `_sass/`, `assets/`) retired from `main` on 11 October 2026 and is preserved on the `archive/jekyll-legacy` branch; recovery dispatches `.github/workflows/jekyll.yml` against that branch (see [web/CUTOVER.md](web/CUTOVER.md)). Its presentation, hard-coded calendar and later content are not in parity with Next.js.

## Content and style

Expand All @@ -52,10 +52,10 @@ The original `_layouts/`, `_includes/` and Sass remain for Jekyll recovery. Keep

## Validation and documentation upkeep

Node 20 is the CI runtime. From `web/`, use `npm ci` for lockfile installs, `npm run dev` for development and `npm run build` for static export. Prebuild runs the design guard, focused calendar tests and asset sync; the build validates TypeScript and generates redirects. `npm run test:calendar` uses Node's built-in test runner. There is no broader application test suite or repository-wide lint command.
Node 20 is the CI runtime. From `web/`, use `npm ci` for lockfile installs, `npm run dev` for development and `npm run build` for static export. Prebuild runs the design guard and focused calendar tests; the build validates TypeScript and generates redirects. `npm run test:calendar` uses Node's built-in test runner. There is no broader application test suite or repository-wide lint command.

For affected UI, inspect fresh 1440px desktop and 375px mobile screenshots, both themes and relevant intermediate widths. Check links, images, keyboard focus, mobile menu/Escape, theme persistence and relevant calendar controls/details/dates. Use targeted accessibility scans with manual review; record incomplete findings honestly. Judge the approved design by screenshots, not legacy CSS parity.

Keep each maintained document's purpose clear: rules in AGENTS.md/DESIGN.md, architecture in web/README.md, release operations in web/CUTOVER.md, dated evidence under docs/. Record local verification, CI, approval, merge and live checks separately. Add release receipts only after verification; historical counts and screenshots are not current guarantees.

Keep temporary plans under ignored `.planning/` and tooling/logs under ignored `tmp/`; promote only useful decisions and evidence into docs/. Completed inherited plans are archived under `docs/archive/planning/`. Preserve unrelated local work, especially owner-owned `.zcode/`; stage files explicitly. Never commit `_site/`, `web/.next/`, `web/out/` or copied `web/public/images/`.
Keep temporary plans under ignored `.planning/` and tooling/logs under ignored `tmp/`; promote only useful decisions and evidence into docs/. Completed inherited plans are archived under `docs/archive/planning/`. Preserve unrelated local work, especially owner-owned `.zcode/`; stage files explicitly. Never commit `web/.next/` or `web/out/`; `web/public/images/` is tracked source, not build output.
7 changes: 4 additions & 3 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ For a fix that preserves the rules, add a change record explaining the regressio
- Reuse the existing club marks, hero illustration and real member portraits. Source partner logos from official publishers and retain their geometry, proportions and colors. Never generate partner logos.
- The three approved activity illustrations are decorative artwork. Brand marks and illustration assets retain their source files, and portraits keep their photographed composition (see the portrait delivery rule below); interactive UI pictograms follow the icon rules below.
- Generate new imagery only for a concrete gap in the existing inventory. Record its purpose, source/prompt, intended size and accessible treatment before generation. Never fabricate team portraits or event photography.
- Member portraits are delivered at display size: square, no larger than 1200px per side, progressive JPEG. Resizing and compressing for the web is allowed, and the owner may direct a framing crop so portraits on the same surface read at a similar scale. Never crop, retouch, recolor or regenerate a portrait on your own initiative. Keep the untouched camera original outside the repository, because `images/` is copied wholesale into `web/public/` and shipped.
- Static assets live once, tracked under `web/public/images/` and served and exported verbatim; do not add a second copy or a sync step.
- Member portraits are delivered at display size: square, no larger than 1200px per side, progressive JPEG. Resizing and compressing for the web is allowed, and the owner may direct a framing crop so portraits on the same surface read at a similar scale. Never crop, retouch, recolor or regenerate a portrait on your own initiative. Keep the untouched camera original outside the repository, because `web/public/images/` is served and shipped verbatim.

## Visual system

Expand Down Expand Up @@ -78,7 +79,7 @@ For a fix that preserves the rules, add a change record explaining the regressio
- Project records live once in `_data/projects.yml`; root `projects.md` supplies the page introduction. About and Projects share the same project preview and build-time data. Show real built projects with a screenshot, useful description and explicit live/source actions; omit placeholder projects and filters until needed.
- About introduces the club activities, then the wider Claude Builder Club community and the role of Claude Campus Ambassadors, before explaining why we built CBC World. Use Anthropic's official campus programme for role descriptions and the club's launch article for its programme connection. Explain the campus role in plain language; do not confuse it with city-based community ambassadors or imply all club members are ambassadors. Keep the transition in root Markdown and retain the shared project record.
- CBC World is an international Claude ambassador map built by the club. Describe its globe, university search and ambassador connections; do not represent its global map totals as club membership. Use `https://cambridge-ai-build-club.github.io/CBC-World/` for permanent links: the approved research verified that `?v=2` serves the same app.
- Project screenshots are documentary captures: retain their original proportions, content and branding in both themes. The approved CBC World overview was captured from the live app on 10 October 2026 and is delivered at `images/projects/cbc-world.jpg`; use a descriptive image alt and a separate labeled action to launch the interactive app. Do not load the WebGL app in an About or Projects iframe.
- Project screenshots are documentary captures: retain their original proportions, content and branding in both themes. The approved CBC World overview was captured from the live app on 10 October 2026 and is delivered at `web/public/images/projects/cbc-world.jpg`; use a descriptive image alt and a separate labeled action to launch the interactive app. Do not load the WebGL app in an About or Projects iframe.
- Andrew is Outreach Team Lead and Zihao is Technical Team Lead. Preserve the collection's visibility and sorting rules; do not invent titles or member records.
- Committee recruitment remains visible from Home and Community. Preserve the configured application process and factual seat/track information; verify changes rather than inventing availability or deadlines.
- Activity pages describe formats. Publication dates are not event dates. Avoid presenting past records as future sessions.
Expand All @@ -101,7 +102,7 @@ For a fix that preserves the rules, add a change record explaining the regressio

## Delivery and scope

Read `AGENTS.md` for branch, build, preview and publication requirements. For site changes, keep the local preview running on port 4102. Local design iterations remain unpublished until the owner requests publication; approval of an earlier PR does not automatically authorize merging subsequent design changes. Exclude `.zcode/`, build output and copied public assets from commits.
Read `AGENTS.md` for branch, build, preview and publication requirements. For site changes, keep the local preview running on port 4102. Local design iterations remain unpublished until the owner requests publication; approval of an earlier PR does not automatically authorize merging subsequent design changes. Exclude `.zcode/` and build output from commits.

## Change record

Expand Down
5 changes: 0 additions & 5 deletions Gemfile

This file was deleted.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Contributions are welcome! If you’d like to improve the site or suggest new fe

## Development

The site is a **Next.js 15 static export** in `web/`, deployed to GitHub Pages through reviewed pull requests. Root Markdown, collections, `_data/` and `images/` remain its content and asset sources.
The site is a **Next.js 15 static export** in `web/`, deployed to GitHub Pages through reviewed pull requests. Root Markdown, collections and `_data/` remain its content sources; static assets live in `web/public/images/`.

```bash
cd web
Expand All @@ -51,7 +51,7 @@ npm run build # static export into web/out/
- [Deployment and recovery](web/CUTOVER.md): Pages releases, legacy recovery and emergency publishing.
- [Documentation index and release evidence](docs/README.md): dated decisions, QA and archived plans.

The original Jekyll sources are retained for recovery; their presentation and calendar require a divergence review before use. Netlify is configured to build the Next.js export.
The retired Jekyll sources are preserved on the `archive/jekyll-legacy` branch; their presentation and calendar require a divergence review before use. Netlify is configured to build the Next.js export.

---

Expand Down
19 changes: 0 additions & 19 deletions _includes/call.html

This file was deleted.

10 changes: 0 additions & 10 deletions _includes/discord.html

This file was deleted.

19 changes: 0 additions & 19 deletions _includes/footer.html

This file was deleted.

26 changes: 0 additions & 26 deletions _includes/google-analytics.html

This file was deleted.

5 changes: 0 additions & 5 deletions _includes/hamburger.html

This file was deleted.

12 changes: 0 additions & 12 deletions _includes/header.html

This file was deleted.

10 changes: 0 additions & 10 deletions _includes/main-menu-mobile.html

This file was deleted.

10 changes: 0 additions & 10 deletions _includes/main-menu.html

This file was deleted.

10 changes: 0 additions & 10 deletions _includes/signup.html

This file was deleted.

5 changes: 0 additions & 5 deletions _includes/social.html

This file was deleted.

16 changes: 0 additions & 16 deletions _includes/sub-footer.html

This file was deleted.

15 changes: 0 additions & 15 deletions _layouts/blog.html

This file was deleted.

36 changes: 0 additions & 36 deletions _layouts/blogs.html

This file was deleted.

Loading
Loading