Skip to content

Open-source rebrand, landing site, and GitHub Pages (4.0.0)#21

Merged
rousan merged 11 commits into
developfrom
make-open-source
Jul 19, 2026
Merged

Open-source rebrand, landing site, and GitHub Pages (4.0.0)#21
rousan merged 11 commits into
developfrom
make-open-source

Conversation

@rousan

@rousan rousan commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Rebrands the project to @rousan/mx on github.com/rousan/mx (no CLI/runtime behavior change; runtime still v3). Adds a beginner-first landing + docs site under apps/landing (React/Vite/Tailwind) that teaches mx from zero — problem, mental model, quickstart, the coding-agent workflow, commands — with a monochrome + terra-cotta theme and a logo mark. Adds the GitHub Pages deploy workflow, updates docs, and bumps the version to 4.0.0.

rousan added 11 commits July 16, 2026 16:11
…(4.0.0)

Rebrand the project for its move to github.com/rousan/mx and open-source release,
and add a documentation site.

Rename:
- npm package @roulabs/mx -> @rousan/mx (name, repository, bugs); homepage now
  https://mx.rousanali.com
- selfupdate.ts PKG constant, core migration/version-gate messages, templates,
  README, and all docs updated from roulabs -> rousan
- version 3.6.2 -> 4.0.0 (a new package; the old one will be deprecated with a
  pointer). No behavior change: runtime stays v3, all commands identical.
- historical references in docs/history.md and docs/sessions left as-is

Docs site (mx.rousanali.com):
- VitePress site built directly from docs/*.md (single source, no drift):
  docs/.vitepress/config.mts, docs/index.md (home), docs/getting-started.md
- markdown.html:false so CLI <name>/<repo> placeholders don't break the Vue
  build; sessions/ and docs/README.md excluded from the site
- root scripts docs:dev / docs:build / docs:preview; eslint + gitignore updated
- Cloudflare Pages deploy documented (prod on main, preview per PR) in
  docs/development.md
A standalone React/Vite/Tailwind site that teaches mx from zero for a
newcomer who has never heard of it: the problem it removes, a four-word
mental model with a diagram, a four-command quickstart, a curated
command reference, and an FAQ. Light/dark theme-aware, responsive.

This becomes the public site at mx.rousanali.com; docs/ stays as the
deep reference. Cloudflare Pages now builds pnpm landing:build ->
apps/landing/dist (development.md updated). Adds landing:* root scripts,
eslint ignore, and the dist gitignore entry.
Drop the indigo->cyan accent gradient in favor of a grayscale system
(like the mission-control dashboard): emphasis now comes from ink weight
and gray steps, not hue. Reworked in the design tokens so it flows through
every component; primary buttons/step markers become a solid near-black
fill (inverted to near-white in dark), the wordmark is strong ink, the
hero glow is removed, and terminal window dots are monochrome.
mx's core identity is combining a coding agent's parallel sessions
(Claude Code and others) with git worktrees; that was buried as the last
feature card. Now it leads:

- Hero rewritten to 'A coding agent on every feature, all at once' with
  agent-forward subcopy and badge.
- New 'Built for a fleet of coding agents' section: the sessions +
  worktrees = isolated agents equation, an mx work open terminal, and the
  concrete workflow (per-feature session, session-prompt hook, no
  collisions, --porcelain).
- Agent framing woven into the Why before/after; parallel-agents card
  promoted to first in Features (mission-control added to fill the grid).
- Nav, FAQ, footer, and page meta updated to match.
Headline is now 'Work on parallel features using coding agents' (was 'A
coding agent on every feature, all at once'), and the agent list names
Claude Code, Cursor, and the rest rather than 'and friends'. Page title
and og:title updated to match.
Adds a concrete, opinionated daily workflow (mx is otherwise
workflow-agnostic): one fullscreen macOS Space per feature with the
terminal split beside the editor, the Claude Code session in terminal
tab 1 and the dev server in another, hand the feature to the agent in
auto mode, switch features with a three-finger swipe, group Spaces with
labeled mx divider separators viewed in Mission Control, and archive on
merge after writing the session summary.

Includes a split-pane Space mock and a Mission Control strip visual
(MAIN / IN PROGRESS / IN REVIEWS / PR REVIEWS dividers between feature
Space thumbnails). Adds the Workflow nav link.
Add .github/workflows/deploy-landing.yml: builds apps/landing and uploads
it to the Cloudflare Pages project 'mx-landing' with wrangler pages
deploy. Push to main -> production (mx.rousanali.com); pull_request ->
preview URL. Path-filtered to landing changes, concurrency-guarded per
ref, and it reports the deployment URL in the run summary without posting
a PR comment.

Auth via the CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID repo secrets.
Updates docs/development.md to document the Action, the secrets, and the
one-time production-branch + custom-domain setup.
Switch the landing deploy from Cloudflare Pages to an assets-only
Cloudflare Worker:

- add apps/landing/wrangler.jsonc (worker 'mx-landing', assets.directory
  ./dist, SPA fallback)
- add wrangler v4 devDep + deploy / cf:dev scripts
- rewrite .github/workflows/deploy-landing.yml to run wrangler in
  apps/landing: 'wrangler deploy' on push to main (production),
  'wrangler versions upload' on PRs (preview version), same
  CLOUDFLARE_API_TOKEN / CLOUDFLARE_ACCOUNT_ID secrets
- gitignore apps/landing/.wrangler/
- update docs/development.md hosting section to Workers (token needs
  Workers Scripts: Edit; attach the custom domain to the Worker)

Validated locally with wrangler deploy --dry-run (v4.112).
Replace the Cloudflare Worker deploy with GitHub Pages:

- rewrite .github/workflows/deploy-landing.yml to build apps/landing and
  publish dist via actions/upload-pages-artifact + actions/deploy-pages
  (deploy from main; PRs build-only, since Pages has no per-PR preview)
- add apps/landing/public/CNAME (mx.rousanali.com) so Vite copies it into
  dist and Pages keeps the custom domain
- drop wrangler.jsonc, the wrangler devDep + deploy/cf:dev scripts, and
  the .wrangler gitignore entry
- update development.md hosting section + history.md + code comments from
  Cloudflare to GitHub Pages (no repo secrets needed; auth via id-token)

Custom domain is a CNAME mx.rousanali.com -> rousan.github.io in DNS.
Give the site a brand, in the spirit of the sibling 'ccal' project:

- add a Logo mark (a multiplex fan-out: one node branching into three
  parallel nodes) in nav, hero, footer, and as the favicon
- introduce a single warm terra-cotta accent over the monochrome base,
  used sparingly for the logo, the hero highlight phrase, $ prompts,
  links, icon chips, and the primary CTA button; step markers stay
  neutral ink and eyebrows are gray, so the accent reads as an accent
- light/dark tuned (brighter terra-cotta on the dark canvas)
My local installs (on a network whose ~/.npmrc uses a private jfrog
Artifactory mirror) baked 237 corp tarball URLs
(jfrog-colo.corp.thoughtspot.com) into pnpm-lock.yaml, which GitHub
runners can't resolve — breaking CI, release, and deploy at pnpm install.
Rewrite every resolution URL back to registry.npmjs.org (same versions
and integrity hashes). Verified with a frozen install from public npm.
@rousan
rousan merged commit 36fcc3e into develop Jul 19, 2026
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