Skip to content

feat!: convert to SvelteKit one-pager redirecting to ecosystem surfaces#37

Merged
bryanfawcett merged 3 commits intomasterfrom
claude/add-claude-documentation-kcBow
May 5, 2026
Merged

feat!: convert to SvelteKit one-pager redirecting to ecosystem surfaces#37
bryanfawcett merged 3 commits intomasterfrom
claude/add-claude-documentation-kcBow

Conversation

@bryanfawcett
Copy link
Copy Markdown
Contributor

@bryanfawcett bryanfawcett commented May 4, 2026

Summary

The Astro framework site is retired. Its content was migrated into the
bundu-labs/marketing monorepo (PR #5)
and split across three surfaces:

  • bundu.org/education → open frameworks (Bundu Education)
  • nyuchi.com/learning → commercial training (Nyuchi Learning)
  • mukoko.com/lingo → consumer language learning (Mukoko Lingo)

This PR replaces the Astro app with a small SvelteKit one-pager whose
only job is to direct visitors arriving at the old learning.nyuchi.com
to the right destination.

Note: this PR's history previously held a CLAUDE.md docs update
(the original v5.5 sync). That work is now moot — CLAUDE.md is
removed as part of the rewrite — and has been superseded by the
commits on this branch.

What's in the page

  • Hero: "Learning lives in three places now."
  • Three project cards (responsive: 1 col on mobile, 2 at md, 3 at lg)
    with brief descriptions and outbound links.
  • Closing "How they fit together" section explaining the
    Foundation/Nyuchi/Mukoko split.
  • Bundu Family footer.

Design

Design tokens copied verbatim from bundu-labs/marketing apps/nyuchi/src/styles/global.css:
Five African Minerals palette, fluid type scale (text-display,
text-h1text-caption), pill primitives, Noto Serif / Noto Sans /
JetBrains Mono. Primary mineral is malachite — the canonical
"education" colour in the marketing monorepo's data records.

Stack

  • SvelteKit 2 + Svelte 5 (runes, snippets via {@render})
  • Vite 8
  • Tailwind 3 (matches marketing repo, not Tailwind 4 as before)
  • @sveltejs/adapter-vercel 6.3.3 (addresses
    GHSA-9pq4-5hcf-288c)
  • TypeScript 5
  • Vitest for the redirect/security tests

Cleanup

Removed:

  • The Astro app (src/, public/, astro.config.mjs, components.json,
    Astro deps, all React/Radix/Lucide/Tailwind 4).
  • Old docs (ARCHITECTURE.md, BRANDING.md, DEPLOYMENT.md,
    MISSION_VISION_VALUES_PROPOSAL.md, PR_DESCRIPTION.md,
    PR_SUMMARY.md, TODO.md, CLAUDE.md) — described the old app.
  • LICENSE — the repo is going private, no public licence applies.
  • Astro eslint.config.js, the .github/ISSUE_TEMPLATE/ (no public
    issue templates needed).

Kept and rewrote: README.md, SECURITY.md, CONTRIBUTING.md,
CHANGELOG.md.

CI

.github/workflows/ci.yml runs three jobs:

  1. svelte-check + vitest + vite build.
  2. prettier --check.
  3. npm audit --audit-level=high.

Tests in tests/:

  • redirects.test.ts — verifies the page links to the correct three
    HTTPS targets and not to the retired education.bundu.org subdomain.
  • security.test.ts — verifies no inline <script>, no third-party
    stylesheets except Google Fonts, no <form>, no analytics/tracking
    references; verifies vercel.json declares the security headers.

Test plan

  • npm install clean
  • npm run check (svelte-check) — 0 errors, 0 warnings
  • npm test — 10/10 pass
  • npm run build — adapter-vercel produces .vercel/output
  • npm run preview — renders correctly with all three cards,
    mineral dots present, fonts loading
  • npm run format:check — clean
  • npm audit --audit-level=high — zero high/critical
  • Vercel preview deploy renders correctly
  • DNS for learning.nyuchi.com still points at this Vercel project
    (no DNS changes made in this PR)

https://claude.ai/code/session_019WLi3kNJz27eUprhSGN5f5

Sync CLAUDE.md with the expanded test infrastructure and TODO.md added
in recent commits. Documentation lagged behind the codebase.

- Expand tests/ tree from 2 files to all 10 (~1,300 tests)
- Document all 11 npm test scripts grouped as source vs. build tests
- Replace 2-step CI summary with the actual 7-stage build pipeline
- Add TODO.md to root files listing
- Bump version to 5.5
@vercel
Copy link
Copy Markdown

vercel Bot commented May 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
learning Ready Ready Preview, Comment May 5, 2026 2:10am

Request Review

@bryanfawcett bryanfawcett marked this pull request as ready for review May 4, 2026 19:20
@bryanfawcett bryanfawcett enabled auto-merge (squash) May 4, 2026 19:21
@bryanfawcett bryanfawcett disabled auto-merge May 4, 2026 19:22
The Astro framework site has been retired. Its content was migrated
into the bundu-labs/marketing monorepo (PR #5) and split across three
surfaces:

  - bundu.org/education  → open frameworks (Bundu Education)
  - nyuchi.com/learning  → commercial training (Nyuchi Learning)
  - mukoko.com/lingo     → consumer language learning (Mukoko Lingo)

This rewrite ships a small SvelteKit one-pager whose only job is to
direct visitors arriving at the old learning.nyuchi.com domain to the
right destination. Same design tokens as nyuchi.com and bundu.org
(Five African Minerals, Noto Serif/Sans, pill primitives), themed to
malachite — the canonical "education" mineral. Responsive grid:
single-column on mobile, two columns at md, three at lg.

Stack: SvelteKit 2 + Svelte 5 (runes, snippets) + Vite 8 + Tailwind 3
+ adapter-vercel 6.3.3 (which addresses GHSA-9pq4-5hcf-288c).

Removed the Astro app, all its docs (ARCHITECTURE, BRANDING,
DEPLOYMENT, MISSION_VISION_VALUES_PROPOSAL, PR_DESCRIPTION,
PR_SUMMARY, TODO, CLAUDE.md), and LICENSE (repo is going private).
Kept and rewrote SECURITY and CONTRIBUTING. CHANGELOG.md documents
the rewrite.

CI runs svelte-check, vitest, vite build, prettier --check, and
npm audit --audit-level=high. Tests cover redirect-target URLs and
the no-script / no-form / no-tracker invariants of the page shell.

https://claude.ai/code/session_019WLi3kNJz27eUprhSGN5f5
@bryanfawcett bryanfawcett changed the title docs: update CLAUDE.md to v5.5 — sync test suite & CI documentation feat!: convert to SvelteKit one-pager redirecting to ecosystem surfaces May 4, 2026
@bryanfawcett bryanfawcett marked this pull request as draft May 4, 2026 19:38
@bryanfawcett bryanfawcett marked this pull request as ready for review May 5, 2026 00:36
@bryanfawcett bryanfawcett enabled auto-merge (squash) May 5, 2026 01:56
Branch protection requires the standard org-wide check set
(actionlint, JSON validity, prettier, markdownlint, yamllint), so
the custom CI from the previous commit didn't satisfy auto-merge.

This commit:
- Replaces .github/workflows/ci.yml with two workflows:
  - lint.yml — calls nyuchi/.github/.github/workflows/reusable-lint.yml@main
    with prettier-glob set to **/*.{md,mdx,json,jsonc,ts,css,mjs}
    (.svelte excluded because the org's bare prettier install has
    no plugin-svelte).
  - build.yml — runs svelte-check, vitest, vite build, and npm audit
    --audit-level=high. Not a required check, but a good signal.
- Adds .markdownlint.jsonc, .markdownlint-cli2.jsonc, .yamllint.yaml
  copied from the bundu-labs/marketing repo (which uses the same
  reusable-lint).
- Drops the prettier-plugin-svelte from .prettierrc (the bare CI
  prettier would fail to load it). The local format/format:check
  scripts now pass --plugin prettier-plugin-svelte explicitly.
- Wraps the security@nyuchi.com email in SECURITY.md as <…> so
  markdownlint MD034 passes. Updates README to reflect Vite 8 and
  drops the License section (the repo is going private; LICENSE was
  removed in the previous commit).

https://claude.ai/code/session_019WLi3kNJz27eUprhSGN5f5
@bryanfawcett bryanfawcett merged commit 3df8cd1 into master May 5, 2026
11 checks passed
@bryanfawcett bryanfawcett deleted the claude/add-claude-documentation-kcBow branch May 5, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants