Publish a page on the launchpad

Anyone in R&D can build a page with Claude and share it here. This guide covers how to build it, which folder decides who sees it, and how to get it published.

Who can see your page

Each page lives in a folder, and the folder decides who can open it. People sign in with their CCM email; anyone outside the folder’s group gets an access-denied page, even with the direct link.

FolderWho can open itTypical content
/apps/Everyone in R&DRequest forms, shared tools, The Vault Lite
/lab/Mechanical Lab, Field Testing and CertificationLab dashboards, test results, planning boards
/engineering/Engineering teamProject trackers, analyses, internal reports
/leadership/R&D managersBudgets, headcount, roadmaps

When in doubt, pick the most restricted folder that still reaches your audience. Moving a page later changes its address, so choose once.

Build the page with Claude

Describe what you want as usual, then paste the block below into the same message. It makes Claude produce a file that works on the launchpad and gives you the listing entry for the home page.

Build this as one self-contained HTML file for the CCM R&D Launchpad (a private website hosted on Cloudflare Pages).

Rules for the file:
- All CSS and JavaScript inside the one file; images embedded as base64.
- External files only from fonts.googleapis.com and cdnjs.cloudflare.com, at pinned versions.
- No calls to the Claude API, no window.storage, no window.claude: those only work inside Claude.
- No passwords, API keys or tokens in the file.
- localStorage only for personal conveniences (a remembered filter, a draft), never for data other people need to see.
- CCM look: red #E41E2E, Poppins for headings, Arial for body, plain descriptive titles.
- Works on a phone and a laptop. Name the file index.html.

When the file is done, also give me its entry for the launchpad's sites.json, filled in:
{ "title": "", "description": "one plain sentence", "path": "/FOLDER/PAGE-NAME/", "zone": "all-rnd | lab | engineering | leadership", "owner": "MY NAME", "status": "live", "updated": "YYYY-MM-DD" }

If you already have a page from an earlier chat, paste the block and ask Claude to “make this file follow these rules”.

Check it before you send it

Double-click the downloaded index.html so it opens in your browser, and try it on your phone too. Click every button once. Then read it with the folder’s audience in mind: supplier pricing, salaries or anything under NDA belongs in a restricted folder or not on the launchpad at all.

Pages that need to save shared data (tickets, results, sign-ups) need a database connection. Talk to Eric before building one so it uses the R&D Supabase database instead of storage in each person’s browser.

Get it published

If you don’t have GitHub access

Send Eric the index.html file and the sites.json entry Claude gave you, by Teams or email. Say which folder it should go in. It’s usually live the same day.

If you’re a publisher with GitHub access

On your computer, make a folder named after your page in lowercase with hyphens (for example drop-test-dashboard) and put index.html inside it. Open the ccm-rnd-launchpad repository on GitHub, go into the zone folder (for example lab), choose Add file, then Upload files, and drag your whole folder in.

At the bottom, choose “Create a new branch for this commit and start a pull request” and name it after your page. Then, on that same branch, open sites.json, click the pencil icon and paste your entry into the sites list, keeping the commas between entries.

Within a minute, Cloudflare posts a preview link on the pull request. Open it and check your page. When it looks right, ask Eric to approve the pull request. Once merged, your page appears on the launchpad about a minute later.

Updating or removing a page

To update, upload a new index.html into the same folder with the same name and change the updated date in sites.json. The address stays the same, so links people saved keep working. To remove a page, delete its folder and its sites.json entry in one pull request, or ask Eric.

Limits. One file can be up to 25 MB. Page and folder names use lowercase letters, numbers and hyphens only. Every page is an index.html inside its own folder, so its address ends with a slash.