Website and living documentation
The CriProx website is a small static site hosted on GitHub Pages at
criprox.themanamarket.com.
Its source lives in site/ beside the application on main. The website has its own dependency
lockfile and output directory, and is never included in the Electron installer. GitHub Actions
publishes a build artifact directly to Pages; no separate website or gh-pages branch is needed.
Keeping the sources together lets a feature and its documentation ship in the same pull request.
Deployment and custom domain
- Merge website changes into
main. - Under Settings → Pages → Build and deployment → Source, select GitHub Actions.
- Set Custom domain to
criprox.themanamarket.comand enable Enforce HTTPS. These settings are already configured for this repository. - At the DNS provider, the
criproxCNAME points togo2engle.github.io, without a repository path. - Open Actions → Website → Run workflow, leaving the branch on
main, if a manual deployment is needed. Website changes deploy automatically after merge. - After the deployment completes, visit
https://criprox.themanamarket.com/.
If Pages is enabled before the merge, the merge triggers the initial deployment automatically.
The generator and local preview use / as the base path. Production builds default to
SITE_ORIGIN=https://criprox.themanamarket.com, so canonical links, social previews, the Atom feed,
the sitemap, and robots metadata all use the custom domain. The Website workflow uses these same
defaults. Navigation, scripts, styles, screenshots, and guide links are rooted at /, with no
repository prefix.
The domain binding lives in GitHub Pages settings. With this custom Actions publishing workflow,
a CNAME file is not required and would be ignored by Pages; see the
GitHub custom-domain guide.
For another host or a project-path preview, override SITE_ORIGIN and SITE_BASE_PATH together
when building, and use the same SITE_BASE_PATH when previewing.
Sources of truth
| Website content | Canonical source |
|---|---|
| Homepage introduction | The introduction in README.md |
| Homepage features | The feature table under Why CriProx? in README.md |
| Homepage workflow | The numbered steps under From card list to cut in README.md |
| Documentation pages | The existing docs/*.md guides, CONTRIBUTING.md, and SECURITY.md |
| Stable version and platform downloads | Published, non-prerelease GitHub Releases and their installer assets |
| Changelog and Atom feed | Release bodies generated by Release Please, including any subsequent edits on GitHub |
| Branding and screenshot | public/favicon.svg, matching the app header, and docs/assets/criprox-studio.png |
The guides describe the current project on main; the changelog describes each published release.
There is no duplicate copy of feature documentation to maintain in the website. Markdown links
between published guides are rewritten to the corresponding website pages. Source-only links
continue to point to GitHub.
Automatic updates
The Website workflow rebuilds after canonical documentation or website changes reach main, when
a release is published, edited, or deleted, and after a successful Release workflow. That last
trigger is necessary because a release published with GITHUB_TOKEN does not start another
release-triggered workflow. A daily reconciliation run catches missed external changes. Manual
workflow runs are also available.
The release timeline contains stable, published releases only. Drafts and prereleases are excluded; installer builds must finish before the latest stable download links change. The generator fetches all release pages, removes commit hashes and duplicate entries, preserves issue links, and labels the existing categories as New, Improvements, and Fixes. It does not invent release prose or hide technical changes. Each timeline entry links to its version and date. Its heading uses a custom GitHub release title when present, otherwise the first feature subject (or the first change for a release without features). These headings come from existing notes and need no separate maintenance. Use readable Conventional Commit subjects, since Release Please turns those subjects into release notes. Release notes can also be edited on GitHub and the site will pick up those edits automatically.
Production builds fail if GitHub cannot supply release data, preserving the last deployed site instead of silently replacing it with an incomplete or stale release timeline. The published site makes no API calls from visitors and uses no external fonts or app dependencies. Navigation and release notes remain usable without JavaScript. A small local script enhances the native mobile menu with Escape, outside-click, link-selection, and desktop-resize dismissal. Desktop navigation uses inline links; below 768px it becomes a floating menu with the same destinations and support link.
Website changes and app releases
Website updates publish through the Website workflow independently of app releases. Use non-breaking
chore(site):, docs(site):, or style(site): commits and PR titles for website changes. They must
never produce application release notes or version bumps; do not use feat, fix, perf, !,
or breaking-change footers. Keep app behavior changes in a separate PR with its own release subject.
The application package in release-please-config.json excludes commits confined to the site/
and docs/assets/ directories before calculating versions and generating release notes. These are
directory prefixes, not file globs. CI additionally checks website PR titles, including website
workflow changes and README updates accompanying website files. Mixed app and documentation commits
remain eligible for app releases, so genuine app features are still released normally.
Adding a feature
Update docs/FEATURES.md or the relevant workflow guide in the same PR as the feature. Add a row
to the README feature table when the capability belongs on the overview, and update the screenshot
when the interface changes substantially. Those changes are published automatically on merge.
The CI documentation check requires a README or guide update for feat: pull requests that change
src/, electron/, or public/. For an internal feature that needs no user documentation, a
maintainer can apply the documentation-not-needed label, explain the reason in the PR, and rerun
CI. Fixes should update documentation when behavior or instructions change, even though the check
does not require a prose edit for every fix.
Automation publishes and checks documentation; it cannot reliably infer new behavior from arbitrary code changes. Contributors and coding agents remain responsible for describing features accurately.
Local preview
The website needs only its own small dependency set:
npm ci --prefix site
npm test --prefix site
npm run build --prefix site
npm run preview --prefix site
Open http://127.0.0.1:4174/. The build uses public GitHub release data; set GITHUB_TOKEN
locally if needed to avoid the unauthenticated API rate limit. Never commit the token.
The preview serves a snapshot of the generated files. After making changes, rebuild the site and
restart the preview server to see the new output.
For a preview without network access:
npm run build --prefix site -- --offline
npm run preview --prefix site
Offline preview uses CHANGELOG.md and explicitly identifies that source on the changelog page.
It is not used for production publishing. The generated site/_site/ directory is ignored by Git.
Pull requests affecting the site get a website-preview Actions artifact; they never deploy to
the public Pages site.
Published from the project’s Markdown documentation.
View source on GitHub ↗