Skip to content

SiteX 0.4: MDX-only pages, framework-owned head, shadcn UI registry#7

Merged
silveltman merged 12 commits into
mainfrom
preview
Jul 8, 2026
Merged

SiteX 0.4: MDX-only pages, framework-owned head, shadcn UI registry#7
silveltman merged 12 commits into
mainfrom
preview

Conversation

@silveltman

Copy link
Copy Markdown
Contributor

Summary

Releases @fulldotdev/sitex 0.4.0 (minor, via the opinionated-mdx-rebuild changeset).

  • Pages are MDX-only with a validated frontmatter schema; TSX pages and dynamic routes are removed
  • Layouts render the full document; SiteX parses the output to fill in head defaults, JSON-LD, sitemap.xml, and robots.txt
  • Required site config, src/styles/global.css entry, and locale-aware globals under src/globals/
  • UI components moved out of the npm package into a shadcn registry (packages/ui, served from the docs site at /r/{name}.json)
  • Static HTML renders in-process during vp build via a dedicated SSR environment
  • Link prefetching on by default via speculation rules with a hover-prefetch fallback
  • Docs restructured around the new model, with 301 redirects for all old URLs

Validation

  • pnpm ready passes: typecheck/lint clean, all packages and the docs static build succeed
  • Registry builds all 13 components into apps/docs/public/r
  • changeset status --since main confirms the pending minor bump

Merging triggers the changesets release workflow, which opens a [ci] release PR; merging that publishes 0.4.0 to npm.

🤖 Generated with Claude Code

silveltman and others added 12 commits July 6, 2026 20:48
- Render static HTML in-process via an SSR build environment (no second
  Vite server) and replace regex HTML handling with parse5
- Globals: index.yaml is the root locale; {locale}.yaml files serve
  /{locale} routes; locale name configurable via site.locale
- Move UI components to packages/ui as a shadcn registry served from
  the docs site (/r); sitex npm package exports types only
- Docs: Framework/UI sidebar split, /docs/ui page, remove unused
  components and internal test pages
- Only merge layout mdxComponents when the layout exports it
- Remove SitexDocument no-op, legacy shims, dead exports and aliases
- Update all dependencies to latest (typescript 6, satteri 0.9,
  @vitejs/plugin-react 6, vite-plus 0.2)
- Restore brief CONTRIBUTING.md and CODE_OF_CONDUCT.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Pre-paint theme script in the base layout head eliminates the dark
  mode flicker; theme provider and mode toggle now follow the shadcn
  Vite dark-mode recipe (light/dark/system dropdown)
- Docs reduced from 11 pages to 4: Introduction, Pages, Rendering, UI;
  old URLs 301-redirect to their merged targets

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
react-dom in packages/ui was an auto-installed peer stuck at 19.2.6
while react was 19.2.7; React 19 aborts hydration on the mismatch,
which broke every island including the theme toggle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- sitex() needs no options: site.url is only required at build time,
  where deploy-platform env vars usually provide it; dev falls back to
  localhost
- The shared tsconfig now carries include globs and the @/* alias via
  ${configDir}, so consumers only write { "extends": "@fulldotdev/sitex/tsconfig" }
- Docs: Introduction (short), Installation, Pages, Layouts, Components;
  file tree order fixed; redirects updated

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- New 'code' registry item: shiki-highlighted code block with copy
  button island; drop-in MDX pre replacement wired via
  mdx.components. Docs app dogfoods it, replacing its bespoke
  code-block/pre setup
- Installation docs and README show the @/* paths alias in the
  tsconfig example

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sitex injects speculation rules so supporting browsers prerender
links on hover, plus a ~0.9kB hover-prefetch fallback module for the
rest. Opt out with prefetch: false or data-no-prefetch. Disabled in
dev.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- /docs/ui/installation: Tailwind + shadcn init + registry add flow
- One page per component (13) with install command, verified usage
  example, and key props; sidebar gets a Components section
- UI intro table links to the component pages

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
/docs/ui now explains the purpose of Sitex UI and the registry model;
the linked component table moved to /docs/ui/components.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Component pages move to /docs/components/{name}; the Components page
covers client directives, the pre-built component registry, and
prefetch. Single sidebar with a Components group; /docs/ui/* URLs
redirect.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@silveltman silveltman merged commit 07d45ce into main Jul 8, 2026
2 checks passed
@silveltman silveltman deleted the preview branch July 8, 2026 17:46
@github-actions github-actions Bot mentioned this pull request Jul 8, 2026
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