Repository navigation
feat(ux): wave 2 residual UX — gallery SSG, learn dates, retry, 404 - #18
Merged
Merged
Conversation
- LearnSchema accepts datePublished/dateModified and emits them in LearningResource+Article JSON-LD when present. - learn/[...slug].astro derives dateModified from data.reviewedAt with a fall-back to source YAML mtime, then renders an unconditional "Last updated <time>" line in the article header for trust/E-E-A-T. - sync-knowledge stamps each copied YAML with its git-commit timestamp so the mtime fall-back surfaces the real edit date instead of the build wall-clock time.
The gallery used to block its first paint on the 8 MB minerals.db + sql.js wasm bundle. Now the family list and filter dropdowns are fetched at build time via db-server and passed to the React Gallery component as initial props. - gallery/index.astro fetches getAllFamilies / getCrystalSystems / getOrigins / getMineralGroups during SSG. - useFamilies / useFilters accept initial data and skip the wasm-DB fetch on mount when provided. Reset/clear-filter paths replay the cached SSG data instead of re-hitting the DB. - sanitize-svg short-circuits on the server (no window) and trusts our own crystal-renderer SVG output during SSG. - Adds getOrigins() to db-server. Net: gallery ships in ~415 KB gzipped HTML with 12 cards visible immediately; the 8 MB DB only downloads when the user actually filters or searches.
- CDLPreview surfaces a Retry button in its error state; Playground passes generatePreview as the handler so transient render-API failures recover with one click. - Hero CDL badge no longer overflows narrow viewports — pinned closer to the panel on small screens, padding scales up on sm+, and the code label truncates with ellipsis instead of bursting out of the card. - 404 page replaces the muted "404" with a crystal lattice SVG and a more thematic "Lost in the lattice" heading, fixes the H3-before-H1 hierarchy, and adds a third CTA (Learn) for users who landed on a bad article URL.
|
🚀 Preview deployed to: https://098bde78.gemmology-dev.pages.dev |
Bissbert
added a commit
that referenced
this pull request
May 11, 2026
) * feat(seo): article dateModified + visible Last updated line - LearnSchema accepts datePublished/dateModified and emits them in LearningResource+Article JSON-LD when present. - learn/[...slug].astro derives dateModified from data.reviewedAt with a fall-back to source YAML mtime, then renders an unconditional "Last updated <time>" line in the article header for trust/E-E-A-T. - sync-knowledge stamps each copied YAML with its git-commit timestamp so the mtime fall-back surfaces the real edit date instead of the build wall-clock time. * perf(gallery): SSG-render families, lazy-load sql.js on first filter The gallery used to block its first paint on the 8 MB minerals.db + sql.js wasm bundle. Now the family list and filter dropdowns are fetched at build time via db-server and passed to the React Gallery component as initial props. - gallery/index.astro fetches getAllFamilies / getCrystalSystems / getOrigins / getMineralGroups during SSG. - useFamilies / useFilters accept initial data and skip the wasm-DB fetch on mount when provided. Reset/clear-filter paths replay the cached SSG data instead of re-hitting the DB. - sanitize-svg short-circuits on the server (no window) and trusts our own crystal-renderer SVG output during SSG. - Adds getOrigins() to db-server. Net: gallery ships in ~415 KB gzipped HTML with 12 cards visible immediately; the 8 MB DB only downloads when the user actually filters or searches. * feat(ux): playground retry, hero mobile spacing, 404 polish - CDLPreview surfaces a Retry button in its error state; Playground passes generatePreview as the handler so transient render-API failures recover with one click. - Hero CDL badge no longer overflows narrow viewports — pinned closer to the panel on small screens, padding scales up on sm+, and the code label truncates with ellipsis instead of bursting out of the card. - 404 page replaces the muted "404" with a crystal lattice SVG and a more thematic "Lost in the lattice" heading, fixes the H3-before-H1 hierarchy, and adds a third CTA (Learn) for users who landed on a bad article URL.
This branch was successfully deployed
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
Wave 2 of the 2026-05-05 UX review fixes. Built on top of the wave 1 lock-gate removal (#17).
db-serverat build time, so the first paint no longer blocks on the 8 MB minerals.db + sql.js wasm. The DB only loads client-side once the user actually types in the search or applies a filter. Net: gallery ships in ~415 KB gzipped HTML with 12 cards visible immediately.LearnSchemanow emitsdatePublished/dateModifiedin the LearningResource+Article JSON-LD;learn/[...slug]derives the value fromdata.reviewedAtwith a fall-back to the source YAML's git-commit timestamp (preserved bysync-knowledge), and surfaces it as an unconditional "Last updated …" line in the article header for E-E-A-T.Test plan
npm run buildpasses (912 pages built, no SSR errors)learn/.../index.htmlrenders both"dateModified"JSON-LD and a visible<time>element/does-not-exist→ new 404 layout renders