Skip to content

refactor(www): move the marketing and design sites to the host build - #123

Merged
KingDoxik merged 1 commit into
feat/platform-independencefrom
feat/marketing-site-to-host
Aug 5, 2026
Merged

refactor(www): move the marketing and design sites to the host build#123
KingDoxik merged 1 commit into
feat/platform-independencefrom
feat/marketing-site-to-host

Conversation

@KingDoxik

Copy link
Copy Markdown
Contributor

Stacked on feat/platform-independence (the branch this submodule is currently pinned to), not on oss.

The landing page and the design-system site are cloud-company surfaces rather than open-core product surface, so they move to the host repository. /docs stays here — self-hosters want bundled product docs. Companion PR in voidhash-mono adds the moved code.

What leaves this repo

  • Landing — all of features/www/landing/ (sections, paywall-build animation, asteroids easter egg, agent icons, marketing-nav-config).
  • Design sitefeatures/design/ (components + 174 MDX content files) and routes/design/. The stale duplicate features/design/source.config.ts is dropped; the live config is features/source.config.ts, which is what Vite loads.

What stays, and why

  • routes/_marketing/{route,index}.tsx remain as a ~10-line shell. They have to: a host's landing page and an OSS routes/index.tsx would both generate path / and collide in the merged route tree. Instead index.tsx renders features/www/marketing-home-slot, which here redirects to /studio and which hosts alias to their own landing — the same idiom as the existing slot extension points.
  • hero-shader.tsx moves to components/hero-shader.tsx: the auth pages use it, so it is not marketing-owned.
  • lib/waitlist.ts and lib/paths.ts stay — studio and auth depend on them, and the host reaches them through @/.
  • public/ stays and becomes a shared asset root for both builds.

Deleted rather than moved

Dead once hero/hero.tsx goes: features/www/{button,logo,refraction-stripes,section/section-container,navbar/navigation,hero/hero,hero/footer} and the components/voidhash-gradient-{background,canvas,controls,settings} cluster, which was reachable only from it.

grain-gradient.tsx, lenticular-refraction-pass.tsx and auth-shader.tsx are left alone — already unreferenced before this change, so removing them is a separate cleanup.

fumadocs

/docs and /design shared one config because two mdx() instances clobber each other's .source output. Now that they live in different repos, source.config.ts keeps only docs; a host that adds surfaces replaces the config wholesale and owns the whole .source bundle.

Verification

Standalone build clean from scratch. /design gone, /_marketing/ redirect present, .source contains the docs collection only, tsc --noEmit clean. Publication-boundary check passes.

🤖 Generated with Claude Code

The landing page and the design-system site are cloud-company surfaces
rather than open-core product surface, so they move to the host repository
and this app keeps only what a self-hosted deployment needs.

- `/` now hands off to the studio. The route shell stays here because a
  host cannot add a second `/` route without colliding with this one;
  instead `_marketing/index.tsx` renders `features/www/marketing-home-slot`,
  which hosts replace the same way as the other extension points.
- `features/www/landing` and the whole `features/design` + `routes/design`
  tree move out. `hero-shader` stays as `components/hero-shader` because
  the auth pages use it, and `lib/waitlist` / `lib/paths` stay because the
  studio and auth flows depend on them.
- `source.config.ts` keeps only the product-docs collection. A host that
  adds documentation surfaces replaces this config wholesale, since two
  `mdx()` instances would clobber each other's `.source` output.
- Drop `features/www/{button,logo,refraction-stripes,section,navbar,hero}`
  and the `voidhash-gradient-*` cluster, which were reachable only from the
  unreferenced `hero/hero.tsx` that this change removes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Aug 5, 2026

Copy link
Copy Markdown

Too many files changed for review (162 files, 100 file limit).

Bypass the limit by tagging @greptile-apps to review.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Thank you for following the naming conventions for pull request titles! 🙏

@KingDoxik
KingDoxik merged commit 46ee1e9 into feat/platform-independence Aug 5, 2026
2 of 4 checks passed
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