Guides/Publish the project website

Publish the project website

The public website is a static companion to the local career tools. It includes the product pages, existing Markdown guides and Jules's fictional example. Personal career creation still runs locally in Claude Code.

Build and preview

Website development needs Node.js 22+ and Python 3.9+. These are website build tools; using Career Core does not require Node.js. The one direct npm dependency, markdown-it, renders the existing Markdown guides during the build. It is not loaded in visitors' browsers.

npm ci --prefix site --ignore-scripts
npm run check --prefix site
npm run preview --prefix site

Open http://127.0.0.1:8000. The build writes only dist/site/. It replaces that generated directory on each build. The source remains in site/, docs/, graphics/ and examples/first-pack/.

site/public-files.json explicitly lists every repository document, graphic and fictional example included in the site. Add new public guides to that manifest. The build rejects paths outside those public roots, path traversal and symlinks. It preserves the fictional source files and JSON byte-for-byte, alongside rendered HTML reading pages. Tests check links, source boundaries and Markdown rendering.

With Chrome/Chromium installed, run node site/browser.test.mjs after building for desktop/mobile navigation, keyboard tabs and browser error checks. Set CAREER_BROWSER for a nonstandard browser path. CAREER_SITE_SCREENSHOTS optionally names a directory for preview screenshots. These checks use a temporary local server and browser profile and make no model calls.

No personal data/, reviews/, outputs/ or backups are published. The workflow uploads only dist/site/, not the checkout. The existing career release manifests do not package the website or its npm dependency.

GitHub Pages

The .github/workflows/pages.yml workflow builds and checks the website on relevant pull requests and pushes. Only a push to main or a manual run from main can deploy. Enable Settings → Pages → Build and deployment → GitHub Actions. The default address is https://rkovar.github.io/career-json/.

The workflow uses GitHub's Pages deployment identity; no Namecheap password or deployment token is stored in this repository. Its deployment job has only the Pages and identity permissions it needs. It uses pinned official action revisions.

SITE_URL sets canonical links and the sitemap. The deployment workflow takes it from GitHub Pages configuration, so both the project address and a custom domain work. Local builds default to https://career-json.com. Navigation uses relative links so local previews and project subpaths work too.

Connect career-json.com

Confirm the registration is active and which provider serves the domain's DNS. If Namecheap uses BasicDNS, PremiumDNS or FreeDNS, edit Domain List → Manage → Advanced DNS → Host Records. If it uses hosting nameservers, edit records in the hosting DNS zone instead.

First verify ownership in the GitHub account's Settings → Pages, following the TXT-record instructions GitHub provides. Then set career-json.com as the repository's custom domain in Settings → Pages, before pointing DNS at Pages.

Set these records for the website:

Type Host Value
A @ 185.199.108.153
A @ 185.199.109.153
A @ 185.199.110.153
A @ 185.199.111.153
CNAME www rkovar.github.io

Replace conflicting website A/AAAA/CNAME/redirect records for those hosts. Keep unrelated records, including email MX and verification TXT records. Do not include the repository name in the www CNAME target. DNS changes can take up to 24 hours.

After GitHub's DNS and certificate checks succeed, enable Enforce HTTPS. Run the website workflow again so canonical URLs reflect the custom domain. Check both https://career-json.com and https://www.career-json.com, including the demo, a guide and a source link. Changing Pages to a custom domain redirects the project address, so coordinate that change with the DNS setup.

GitHub Actions deployments use the domain setting in Pages; adding a CNAME file alone does not configure it. The site remains usable at its GitHub project address until the custom domain is configured.

See the official GitHub custom-domain guide and Namecheap connection instructions.