Repository navigation
feat(site): add marketing landing page and generated docs site - #486
Merged
Merged
Conversation
Zhafron asked for a site that sells the outcome instead of reading like a spec, with a living memory animation. The landing uses benefit-led copy, a lazy canvas memory constellation, and real web UI screenshots. Docs are generated from README.md and .github/i18n at build time; the build fails when a README heading or config option is not mapped. Proof: local build plus check-dist pass; Lighthouse mobile on landing, docs index and a config page scores 100 in all four categories with landing LCP 0.90 s and docs LCP 0.75 s. The npm files field is unchanged and the Pages workflow only triggers on site paths, so releases and the package stay as is.
Hendra's review of #486 found captured memory nodes never recycled, so new nodes linked to faded ones and lost visible edges over time. Captured nodes now reuse four slots and only link to visible nodes. The eager JS budget missed static imports (preload-helper); check-dist now follows them recursively (6550 B, matching the reviewer's measurement). The Site workflow also runs on src/config.ts and opencode-mem.example.jsonc, which feed the config-option gate, and typechecks site/ with astro check, which caught two index errors in Showcase.astro. Proof: astro check 0 errors, negative control fails; build plus check-dist pass; 90 capture cycles in headless Chrome with 0 errors and a 2 MB JS heap.
3 tasks done
3 tasks done
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.
What
Adds
site/: a marketing landing page and a docs site for https://opencode-mem.zhafron.my.id, plus.github/workflows/site.yml(GitHub Pages via Actions).site/src/scripts/memory-field.ts, lazy-loaded through IntersectionObserver after first paint). The hero recalls a memory node, auto-capture types into a terminal and flies a memory card into the graph, Dreaming dims the graph and merges small memories into brighter nodes, and nested repos draw branch lines into one shared memory.prefers-reduced-motionrenders a still, finished state.README.mdand.github/i18n/*(en, de, zh, ar, tr, nl) viasite/docs-map.json. The build fails when a README heading or config option is unmapped. Pagefind provides search.web/src/app.cssat build time (web/is untouched). Fonts: Bricolage Grotesque for display, JetBrains Mono for code and accents.Safety for the package and releases
package.jsonfilesstays["dist", "package.json"], sosite/never ships to npm.release.ymltriggers only onv*tags;site.ymltriggers onsite/**,README.md,.github/i18n/**,web/src/app.css, and favicons. Deploy runs only onmainin this repo. A nightly build refreshes the numbers.eslint.config.jsand.prettierignorenow skip site build output and generated content.Measurements (Lighthouse 13.6 mobile, local
astro preview, 3 runs each)//docs//docs/configure/dreaming/Eager landing JS is 3,937 B external plus 948 B inline.
check-dist.mjsfails the build above a 12 KB budget. The animation is a separate lazy chunk. Every text color pair passes WCAG AA (lowest is light muted on background, 4.97:1).Plan decisions (ZHA-4429 Q2–Q8)
site/in this repo, Pages from Actions.site/src/i18n/en.tsready for translation.