Skip to content

website: Redesign the home page around what makes NSH different - #993

Merged
huacnlee merged 2 commits into
mainfrom
website/home-redesign
Nov 5, 2026
Merged

huacnlee merged 2 commits into
mainfrom
website/home-redesign

Conversation

@huacnlee

@huacnlee huacnlee commented Nov 5, 2026

Copy link
Copy Markdown
Member

Description

The old home page looked dated, and the chat app on its first screen made people think NSH is a chat app. This redesigns the page in the banner's style and leads with what sets NSH apart.

  • Hero: a WebGL shader of glass arches (HeroArches.astro, replacing HeroField.astro), one arch for each platform with the app at the center, in dark and light, set in Figtree.
  • Content: native clients written entirely in TSX that stand with Rust's; 120 FPS, first frame, memory, binary size and Wasm size, with a comparison table; no dependencies for TSX development; a table of the eight platforms (macOS, Linux, Windows, Web, iOS, Android, TUI, GPUI); Rust when wanted, retained views, delivery after release. English and zh-CN.
  • Menu band: demos/home-menu.tsx, a small file browser with its View menu open on load, so the desktop, phone and terminal forms compare at a glance. Its items act on the browser behind them.
  • Removed: demos/home-chat.tsx and demos/hero-chat/.
  • DESIGN.md and README.md describe the new page; package.json adds @fontsource-variable/figtree.

How to Test

cd website && bun run dev, then open / and /zh-CN, in dark and light, at desktop and phone widths.

Done here:

  • bun test tests in website/: 44 pass, 8 skipped, 0 fail (the storage tests skip without a player in dist and without Chrome).
  • bunx --bun astro build: 261 pages.
  • Screenshots at 1440 wide in dark and light, and at 390 wide in zh-CN dark: no horizontal overflow, and the live frames follow the theme.
  • In the desktop frame, selecting "Show hidden files" with synthetic events shows .env and leaves the menu open. The phone frame was not operated.
  • nsh check demos/home-menu.tsx: no errors in the new demo. The same run reports 5 errors, those seen in el-pagination, el-plot and el-rich-editor, which this PR does not touch.

Limits, to check before this ships:

  • The terminal block is a capture of demos/el-menu.tsx with the same items, not of home-menu, while the page calls it real output of nsh run --target tui. It should be captured again from the new demo.
  • The numbers were not measured again. They come from website/docs/; for example, ~1.1 MB for Wasm comes from web.md. The local frames ran a 36 MB unoptimized nsh.wasm.
  • cargo xtask web did not complete locally: it needs Homebrew LLVM's CC_wasm32_unknown_unknown and AR_wasm32_unknown_unknown, and then fails copying target/web-playground/.../nsh_platform_web.wasm. This looks like a mismatch between huacnlee/cargo's output directory and xtask, and is not changed here. The live frames ran on a local copy of the wasm, and bun run build itself was not run because it depends on this step.

🤖 Generated with Claude Code

huacnlee and others added 2 commits November 5, 2026 22:13
The old home page looked dated, and the chat app on its first screen
made people think NSH is a chat app. The page now takes the look of the
banner, a WebGL hero of glass arches, one for each platform, and leads
with what sets NSH apart: native clients written entirely in TSX that
stand with Rust's, their numbers, no dependencies for TSX development
and eight platforms.

The Menu band runs a small demo of its own with its View menu open, so
each device's form can be compared at a glance, and the chat demos go.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@huacnlee
huacnlee merged commit 2bfe8d2 into main Nov 5, 2026
10 of 11 checks passed
@huacnlee
huacnlee deleted the website/home-redesign branch November 5, 2026 16:42
huacnlee added a commit that referenced this pull request Nov 6, 2026
…ery (#1072)

## Description

Continues the home page redesign (#993) across the website and the
gallery.

**Home page**
- Hero: the arches' wave of light now repeats at a random pause of 12–24
s, at a varied pace, sometimes inward; a hovered or chosen platform
cancels it.
- Light: cool neutral grays in the dark theme's ink hue replace the
olive grays (hero, bands, halftone, arches); the terminal capture
follows the theme; the trust card is plain white.
- The light primary button follows the dark one: flat citrus with a fine
top light (#993 had given light a steep green gradient).
- The three ways to ship line up through a subgrid, so their code blocks
match in height.
- Code highlighting uses the theme's palette (citrus keywords, ink-blue
names, quiet strings, amber numbers).

**Site**
- Headings everywhere are set in Figtree.
- Gallery, App Stories, Releases and Brand share one page head in the
home page's style, with the banner's halftone.

**Gallery** (`examples/nsh-gallery-ui`, `examples/gallery`,
`examples/gallery-rs`)
- Neutral surfaces take the site's hue: ink in dark, cool grays in
light. Button finishes are unchanged from main.
- The new logo (brand page's SVGs, `logo@2x.png` in both galleries), at
the sidebar's top left.
- Light's accent is the site's `#4a840a` instead of the old olive.
- Green is kept for actions and states: the sidebar's selected icon,
focus ring (now cool gray, shadcn-like), back button, command check and
tree folders are neutral.
- The phone index opens with a banner card: mark, name, citrus slogan,
halftone.
- The Tailwind demo's finish classes match `finishes.json` (they
predated the flat controls of #648).

## How to Test

- `cd website && bun run dev`: `/`, a docs page, `/apps`, `/releases`,
in light and dark.
- `cargo run`: the gallery in light and dark; the Tailwind demo's
buttons.

Done here: `bun test tests` in website 48 pass; `nsh test
examples/gallery` 296 pass; screenshots of the home page (light and
dark), docs header, inner page heads, the gallery under GTK and on the
web (index, Text, Photos, Tailwind).

Limits: not checked on macOS; the sidebar's top-left logo was not
captured (the GTK host in the shared target was out of date with the
CLI).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant