feat!: convert to SvelteKit one-pager redirecting to ecosystem surfaces#37
Merged
bryanfawcett merged 3 commits intomasterfrom May 5, 2026
Merged
Conversation
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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.comto the right destination.
What's in the page
md, 3 atlg)with brief descriptions and outbound links.
Foundation/Nyuchi/Mukoko split.
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-h1…text-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
{@render})@sveltejs/adapter-vercel6.3.3 (addressesGHSA-9pq4-5hcf-288c)
Cleanup
Removed:
src/,public/,astro.config.mjs,components.json,Astro deps, all React/Radix/Lucide/Tailwind 4).
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.eslint.config.js, the.github/ISSUE_TEMPLATE/(no publicissue templates needed).
Kept and rewrote:
README.md,SECURITY.md,CONTRIBUTING.md,CHANGELOG.md.CI
.github/workflows/ci.ymlruns three jobs:svelte-check+vitest+vite build.prettier --check.npm audit --audit-level=high.Tests in
tests/:redirects.test.ts— verifies the page links to the correct threeHTTPS targets and not to the retired
education.bundu.orgsubdomain.security.test.ts— verifies no inline<script>, no third-partystylesheets except Google Fonts, no
<form>, no analytics/trackingreferences; verifies
vercel.jsondeclares the security headers.Test plan
npm installcleannpm run check(svelte-check) — 0 errors, 0 warningsnpm test— 10/10 passnpm run build— adapter-vercel produces.vercel/outputnpm run preview— renders correctly with all three cards,mineral dots present, fonts loading
npm run format:check— cleannpm audit --audit-level=high— zero high/criticallearning.nyuchi.comstill points at this Vercel project(no DNS changes made in this PR)
https://claude.ai/code/session_019WLi3kNJz27eUprhSGN5f5