DESIGN.md@apps/landing/src/nebutra · git:20260928.230650e · 2026-09-28 · sha256 45ae1adaaefe8241

DESIGN.md@apps/landing/src/nebutra git:20260928.230650eA

Immutable. This exact content never changes and is served at /api/v1/blob/45ae1adaaefe8241.

# nebutra.com — design

The Nebutra-owned shell of `apps/landing`. The Sailor template never ships
this directory; it keeps the top-nav site.

**Sections, names and page ownership live in `src/site-map.ts`**, and a test
checks it against the app directory. This document holds the reasons and the
rules. The map holds the facts.

## Thesis (agreed 2026-09-27)

The site is media first. The founder's thinking leads, because it is the most
mature and least copyable thing Nebutra has.

- **Journal** is the essays, and it is the front page.
- **Sailor** is the platform, usable today. The old landing's home tells Sailor's
  story, so its sections become the Sailor page. The template keeps that same
  content as its own home.
- **Sleptons** is the ecosystem where people, ideas, needs and capital meet.
  **Ideas**, the UGC of ideas and needs, belongs here. It is not the essays.
- **Building** covers Nebutra OS and the products grown on the platform. They are
  listed plainly, not shown off as a portfolio. They are early, and the site
  does not pretend otherwise by staging them as wins.
- **Company** covers who we are, how we work, contact and legal.

References:

- a16z's layout: institution, media first, a left rail
- basement's positioning
- Vercel's spec
- Cursor's detail
- Linear's grayscale with the Nebutra VI gradient as a signature: one word per
  screen, via `--brand-decorative-signature` from the `nebutra-site` Brand Package

## Rules learned the hard way

Each of these was a correction from the owner. Do not relearn them.

- **No mocks.** Show real things or nothing. The "Loop" generation demo was a
  fake of a product that does not exist yet. The Sailor page instead replays a
  real, dated run of `npx create-sailor`. Re-record it when the CLI output
  changes.
- **No maintenance metrics.** PRs per month, commit heatmaps and live PR feeds
  read as maintenance cadence to a visitor, not as proof.
- **No labels that carry no information.** A field whose only value is "Early"
  on every product only diminishes them.
- **Official brand assets.** The mark and wordmark come from `@nebutra/brand`
  (`Logo variant="en"`, `Logomark variant="mono"`, reversed on the void). Never
  type the name in a font.
- **Wheels first.** Pages compose design-system parts:
  - `SidebarNav`, collapsible, with icons
  - `Heading`
  - `Terminal`
  - `Grid`
  - `FilterPills`
  - the editorial blocks

  When a part is wrong, fix the part: Grid's responsive columns, Heading's weight,
  Terminal's overflow and GitHubCalendar's dark cells were all fixed in the
  library, not worked around in a page.
- **No "AI look".** No mono uppercase micro-labels everywhere, and no two-tone
  headline template. Numbers go in sentences, not stat tiles. Copy is the
  founder's own words from the Journal.
- **Names are decided in the site map.** "Ideas" drifted onto the essays because
  the naming lived in conversation. It lives in `site-map.ts` now.

## Layout

- **Rail:** `SidebarNav` from `site-map.ts` sections, with icons, collapsing to
  icons with the mono mark. The collapse state is a per-viewer localStorage
  convenience.
- **Page opening:** `Intro` (Heading display, plain lead, Chinese line). The
  section band is `Band` (hairline, Linear's 128px rhythm).
- **Paths:** every section is served at its site-map path (`routes.ts` reads
  them). The frame is `src/site-shell.tsx`: this rail on the Nebutra site, the
  top-nav chrome in the template (`site-shell.for-template.tsx`).