Skip to content

Add project marketing website#44

Draft
SethMorrowSoftware wants to merge 5 commits into
mainfrom
claude/busy-archimedes-65gykg
Draft

Add project marketing website#44
SethMorrowSoftware wants to merge 5 commits into
mainfrom
claude/busy-archimedes-65gykg

Conversation

@SethMorrowSoftware

Copy link
Copy Markdown
Owner

What this adds

A small, self-contained, dependency-free marketing site for Box2Dxt that advertises its ease of use and abilities. Lives in a new isolated website/ folder — it touches none of the existing engine, Kit, examples, or docs.

website/
├── index.html   # the page
├── styles.css   # dark, modern theme (palette echoes the project's own demos)
├── app.js       # mobile nav + the interactive hero physics toy
└── README.md    # local preview + deployment notes

Highlights

  • Interactive hero demo — a hand-written impulse-based circle solver (gravity, walls, ball-ball collisions, mouse/touch grab + fling, click-to-spawn, gravity toggle). It demonstrates the project's premise viscerally, right on the page. It's DPR-aware, pauses when off-screen, and is clearly framed as a toy — "Box2Dxt gives your xTalk app the real thing."
  • Sells ease of use — the sixty-second b2kQuickStart snippet (with hand-rolled syntax highlighting, no JS highlighter dependency) and the paste-and-run examples.
  • Sells the abilities — feature grid (friendly Kit, full Box2D surface, the Game Kit, the safety model, cross-platform prebuilt binaries, paste-and-run examples), the three-layer architecture diagram, all six examples, the full docs grid, and a four-step get-started guide.
  • Modern & responsive — dark theme with the orange/teal/purple palette from the project's own code samples; verified at desktop and mobile widths.
  • No build step — opens directly in a browser and degrades gracefully to system fonts offline.

Deployment

.github/workflows/pages.yml publishes website/ to GitHub Pages on push to main (and via manual dispatch). One-time setup: Settings → Pages → Source: GitHub Actions. The workflow only triggers on main, so this PR won't deploy anything on its own.

Verification done

  • node --check app.js — clean.
  • HTML parsed with html.parser — all tags balanced, none out of order.
  • Zero curly/smart quotes across all three files (the project's Professional-quality pass: harden the Kit, de-duplicate it into the examples, add CI #1 OXT footgun, applied here as hygiene).
  • All 25 GitHub links point at SethMorrowSoftware/Box2Dxt; highlight spans balanced.
  • Rendered with headless Chromium and screenshotted at 1280×860 desktop and 390×844 mobile — hero, full page, and responsive layout all confirmed; the physics demo runs and settles correctly.

Notes / open questions

  • Copy uses factual figures: 370+ engine handlers and 300+ Kit calls (grep-backed: 373 and 312), six examples, ~125 self-tests.
  • I made reasonable design choices (dark theme, single page, live physics hero). Happy to adjust palette, copy, or drop the Pages workflow if you'd prefer a different deploy path (e.g. classic /docs branch source).

https://claude.ai/code/session_01Geg4m95CCarzFwZM8daWdf


Generated by Claude Code

claude added 5 commits June 15, 2026 00:33
A self-contained, dependency-free landing page for Box2Dxt in website/:

- index.html / styles.css / app.js — modern dark theme, fully responsive,
  with an interactive hero physics toy (a hand-written impulse-based circle
  solver: gravity, walls, ball-ball collisions, mouse/touch grab + fling,
  click-to-spawn) that demonstrates the project's premise viscerally.
- Sections cover ease of use (the sixty-second b2kQuickStart snippet,
  paste-and-run examples), abilities (full Box2D surface, the Game Kit,
  the safety model), the three-layer architecture, all six examples, the
  docs, and a four-step get-started guide.
- website/README.md documents local preview and deployment.
- .github/workflows/pages.yml publishes website/ to GitHub Pages on push
  to main (enable Pages with the GitHub Actions source once).

No build step; opens directly in a browser and degrades gracefully to
system fonts offline.
Replace the generic dark-SaaS look with a personality rooted in the
project itself: the xTalk/HyperCard lineage and Box2D's signature crate.

- Warm 'paper' background with a faint 1-bit dot grid; ink-on-paper with
  one signature colour (Box2D crate-orange).
- Authentic classic-Mac window chrome (striped title bars, square close
  boxes) reused across the hero demo, code sample, the layer diagram, and
  example cards; hard ink borders with solid offset shadows; tactile
  press states on buttons.
- The card/stack metaphor as the actual layout: sections are numbered
  'cards' and the three-layer architecture is drawn as a literal stack of
  windows.
- Pixel font (Silkscreen) for chrome/labels; Space Grotesk for display;
  JetBrains Mono for code. Flat outlined SVG icon badges replace emoji.
- Hero demo reborn as tumbling, stacking Box2D crates (+ cannonballs):
  circle colliders for stability, rendered as rotating crates with
  X-braces; grab/fling now imparts spin.
- Copy re-voiced around cards & stacks ('physics for the card & stack
  people', 'a whole scene in a single paste').

Verified: node --check clean, HTML balanced, zero curly quotes, 25 links
correct; re-screenshotted at desktop + mobile.
Render every docs/*.md as a styled HTML page under website/docs/ so readers
stay in one consistent HyperCard-themed experience instead of bouncing to
raw Markdown on GitHub.

- tools/build-docs.py: a small, dependency-free Markdown->HTML generator
  (stdlib only, so no pip/network needed in dev or CI). Handles ATX
  headings with GitHub-compatible anchor slugs, fenced code, GFM pipe
  tables, blockquotes, nested lists, and inline code/links/bold/italic.
  Doc-to-doc .md links are rewritten to in-site .html; non-doc links go to
  GitHub.
- website/docs/: generated pages — a manual overview plus one page per doc,
  each with the menu bar, a sticky 'THE MANUAL' sidebar, and the doc inside
  a titled Mac window. New .prose styles theme headings, tables, code,
  callouts (blockquotes), and rules to match the site.
- index.html: the docs section, the footer, and 'Read the full guide' now
  link to the local pages (same tab) — zero .md-on-GitHub doc links remain.
- pages.yml: runs the generator before every deploy and redeploys on
  docs/** changes, so the live site never serves stale docs.
- README: documents the generator and the 'edit .md, regenerate' rule.

Verified: all 10 pages tag-balanced; JS clean; in-page TOC anchors resolve
(the 2 that don't are a pre-existing kit-guide TOC numbering nit, broken on
GitHub too); every home->doc link returns 200.
Host only the approachable docs a LiveCode user needs; send the deep/
internal material to GitHub (the hardcore go there anyway).

- Hosted: Getting started, Kit guide, Kit reference (the DOCS list).
- Moved to GitHub-only: API reference, Architecture, Game engine spec,
  Building, Expansion prep (a new EXTERNAL list). Doc-to-doc links that
  point at these are rewritten to GitHub automatically; the removed
  generated pages are deleted.
- Manual overview: three numbered guide cards + a 'Going deeper' list
  linking the GitHub-only docs; sidebar gains a 'Full docs on GitHub' link.
- Home 'Learn it' section: 'Guides, not homework' — three guides plus a
  one-line 'deeper -> GitHub' pointer (replaces the 8-card grid). Footer
  docs column points at the hosted pages.

Verified: all pages tag-balanced, JS clean, zero curly quotes, and every
internal link returns 200 (no dangling links to the removed pages).
Turn the home page from a long scroll into an actual stack of cards you
flip through one at a time — more interactive, more logically laid out,
and authentically HyperCard, on the same vanilla HTML/CSS/JS.

- One card on screen at a time inside a single 'stack window' (with the
  rest of the stack peeking out behind it). Eight cards: Home, What it is,
  One paste, What you get, How it works, Examples, Docs, Get started.
- Navigation: top menu, a Home-card launcher, a bottom card-nav bar with a
  live N/8 counter, the title-bar Home box, and the keyboard (left/right to
  flip, H home, M message). Card-flip transitions (dissolve + directional
  slide, iris for Home) that honour prefers-reduced-motion.
- Deep links + history: every card has a hash and Back/Forward work; the
  doc pages' menu links jump straight to the matching card.
- The Message Box: a HyperTalk-ish console (press M) — 'go to examples',
  next/prev/home, 'spawn a crate', reset, gravity, help.
- Physics is now driven by the active card (runs on Home, pauses elsewhere)
  and exposes a small API the Message Box calls.
- Graceful fallback: an html.js flag gates single-card mode, so with JS off
  the cards stack into a normal scroll page; the Home card is marked active
  in markup so it shows even if the script fails to load.

Verified: all pages tag-balanced, JS clean, zero curly quotes, no runtime
console/page errors; flip + message-box nav exercised headlessly.
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