Skip to content

feat: land component pages on main + footer polish - #3

Merged
Jettonn merged 4 commits into
mainfrom
feat/component-pages-ssg
Jul 17, 2026
Merged

feat: land component pages on main + footer polish#3
Jettonn merged 4 commits into
mainfrom
feat/component-pages-ssg

Conversation

@Jettonn

@Jettonn Jettonn commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Why this exists

PR #2 (the vite-ssg per-component pages work) was stacked on feat/input-components-and-ci and got merged into that branch, not into main. So main currently only has PR #1: the original single-page site with the four new components bolted on. The whole SSG layer (per-component pages, prerendering, sitemap, the layout split) never reached main, and the live site still shows the old footer.

This PR targets main directly to land it.

What lands

  • All of the SSG work from PR feat: prerender per-component pages for SEO (vite-ssg) #2: vite-ssg + vue-router, / and /components/<slug> prerendered to static HTML, per-route head + JSON-LD, the component catalog, the Tailwind Vite plugin, sitemap generation. (Commits e250300, 1f001a0.)
  • Professional footer: two tier layout (brand + tagline + nav, then copyright + build credit). Removes the placeholder "More on the way".
  • Zero-library messaging: a hero line stating every component is plain Vue, Tailwind, and motion-v with no component library.
  • Finishes the Tailwind v4 shorthand pass (min-h-45) and gitignores the Playwright MCP output dir.

Verified

16 static pages build; lint, format, and type-check pass; footer and hero checked in a browser.

Jettonn added 4 commits July 17, 2026 11:32
The site was a client-rendered SPA: crawlers and AI bots that don't run
JS saw an empty <div id="app"> — every good meta tag wrapped no body.
This adds static prerendering and one indexable page per component,
turning a single URL into 16.

- Adopt vite-ssg + vue-router; prerender / and /components/<slug> to
  real HTML with per-route <head> (title, description, canonical, OG,
  BreadcrumbList + SoftwareSourceCode JSON-LD) via unhead
- Add a component catalog as the single source of truth for the gallery,
  the detail pages, the CLI install picker and the sitemap
- Split App.vue into a layout (header/footer/theme) + Home and
  ComponentDetail views; cards deep-link to their pages for internal
  linking; live demos stay client-only so prerendered HTML is text
- Generate sitemap.xml from the registry at build (home + every page)
- Switch Tailwind v4 to its official Vite plugin so CSS resolves in the
  SSR build; move overridable head tags out of index.html to avoid
  duplicate tags

Home body and all component prose now render server-side; verified no
hydration warnings and no duplicate meta tags.
Swap arbitrary values for their v4 shorthand tokens across the
components and site:

- opacity modifiers: /[0.04] -> /4, /[0.06] -> /6, /[0.07] -> /7,
  /[0.10] -> /10, /[0.02] -> /2
- transition duration: duration-[400ms] -> duration-400
- CSS variable: max-h-[var(--h)] -> max-h-(--h)

Compiled CSS is byte-for-byte equivalent (verified max-height:var(--h)
and .duration-400 in the build output); this only clears the editor
"can be written as" hints.
- Rework the footer into a two tier layout: brand, tagline, and nav on
  top, copyright and build credit below. Drops the placeholder "More on
  the way" line.
- Add a hero line stating the components are plain Vue, Tailwind, and
  motion-v with no component library.
- Ignore the Playwright MCP output directory.
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
verve Ready Ready Preview, Comment Jul 17, 2026 2:11pm

@Jettonn
Jettonn merged commit 48b3229 into main Jul 17, 2026
4 checks passed
@Jettonn
Jettonn deleted the feat/component-pages-ssg branch July 17, 2026 14:25
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