Skip to content

feat(site): a project page, published by GitHub Pages, and banner artwork for partners - #14

Merged
joogiebear merged 1 commit into
mainfrom
claude/project-site
Sep 3, 2026
Merged

feat(site): a project page, published by GitHub Pages, and banner artwork for partners#14
joogiebear merged 1 commit into
mainfrom
claude/project-site

Conversation

@joogiebear

Copy link
Copy Markdown
Owner

What this changes, and why

mcctl is about to be linked from a partner site, and a banner needs somewhere to land that is not a GitHub README.

  • site/index.html: one file, no build step, on the panel's own design tokens so the page and the app read as one thing. What mcctl does, who it is for (plugin testing), what stays on the machine, and three steps to a running server. The Download buttons ask GitHub for the newest installer and name its version; a failed lookup leaves them pointing at the releases page. Two screenshots of the real panel.
  • site/banner/: 728x90, 300x250 and 468x60 banners as HTML (the source to edit) plus rendered PNGs. tools/render-banners.mjs re-renders them.
  • .github/workflows/site.yml: deploys site/ on every push to main. Needs one setting after merge: repository Settings → Pages → Source → GitHub Actions. The page is then at https://joogiebear.github.io/mcctl/ until a custom domain is added.
  • README: a short section saying where the site lives.

How it was verified

  • Rendered at desktop and phone widths in Chromium and checked by eye; the nav collapses on a phone, the screenshots load, the Download link falls back correctly with no network.

  • Banners rendered from the HTML at 2x and checked for overflow.

  • npm test passes

  • Commit messages carry conventional prefixes (feat:, fix:, ...)

  • No runtime dependencies added, no build step introduced

🤖 Generated with Claude Code

https://claude.ai/code/session_016hpdfE8mWH6x6yqRVfEVvb


Generated by Claude Code

…work for partners

One HTML file in site/, no build step, on the panel's own design tokens so
the page and the app read as one thing: what mcctl does, who it is for,
what stays on the machine, and three steps to a running server. The
Download buttons ask GitHub for the newest installer and name its version;
a failed lookup leaves them pointing at the releases page. Two screenshots
of the real panel.

site/banner/ carries the artwork a partner site embeds - 728x90, 300x250
and 468x60 - as HTML that is the source to edit, plus the rendered PNGs;
tools/render-banners.mjs re-renders them. A Pages workflow deploys site/
on every push to main once Pages is switched to GitHub Actions in the
repository settings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016hpdfE8mWH6x6yqRVfEVvb
@joogiebear
joogiebear merged commit 848ac79 into main Sep 3, 2026
2 checks passed
@joogiebear
joogiebear deleted the claude/project-site branch September 3, 2026 18:59

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e37e2d5f24

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/render-banners.mjs
Comment on lines +5 to +7
* <p>Needs a Chromium: `npx playwright-core` is not a dependency of mcctl, so this is run by hand
* on a machine that has one - `npm i -g playwright-core` and a browser it can find, or pass the
* executable with MCCTL_CHROMIUM. The PNGs are committed; the HTML is the source to edit.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Install Playwright where the renderer can resolve it

With the documented setup (npm i -g playwright-core followed by node tools/render-banners.mjs), Node does not search npm's global module directory when createRequire(import.meta.url) resolves playwright-core, so the script exits with MODULE_NOT_FOUND and repeats the same ineffective instruction. Install it locally for this invocation or explicitly resolve the global installation so contributors can actually regenerate the committed banners.

Useful? React with 👍 / 👎.

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.

2 participants