Skip to content

feat: add the official website - #818

Draft
Xuanwo wants to merge 1 commit into
mainfrom
xuanwo/reqsign-official-website-949172
Draft

feat: add the official website#818
Xuanwo wants to merge 1 commit into
mainfrom
xuanwo/reqsign-official-website-949172

Conversation

@Xuanwo

@Xuanwo Xuanwo commented Aug 5, 2026

Copy link
Copy Markdown
Member

Why

reqsign's only public product entry today is the root README, and it has already drifted from the code: the supported-services list is missing Volcengine, the Aliyun quick-start example calls aliyun::default_signer() without the required bucket argument, and the README tagline disagrees with the .asf.yaml description. A README cannot carry provider capability claims, behavior contracts, or a growing provider list without drifting further.

This PR bootstraps the official website under website/ so that product positioning, task-oriented docs, and per-provider capability claims have a maintained, verifiable home. Targeted canonical URL is https://reqsign.opendal.apache.org/ (pending dev@ consensus and an INFRA request; url/baseUrl stay configurable so the documented fallbacks need no code change).

Context reviewers may want

  • Design: the site shares the Apache OpenDAL™ website's design skeleton (tokens, typography, spacing, hairline structure) while carrying reqsign's own brand identity — a seal-green accent and a slanted "signature stroke" motif replacing OpenDAL's precise blue and level bar. website/UPSTREAM_DESIGN.md records the upstream commit, the mechanical rename rules, and which overrides are intentional and never synced.
  • Correctness: every provider capability shown on the site comes from website/data/providers.json. Each entry was verified against the code at cd22149 — including the real default-chain slot order from each service's DefaultCredentialProviderBuilder and the exact pub struct names of all credential providers. scripts/validate-providers.mjs checks the catalog against cargo metadata (crates exist, facade features exist, every workspace crate claimed, one docs page per provider) and fails CI on drift.
  • ASF compliance: no third-party runtime assets (fonts/scripts/styles are self-hosted; scripts/check-external-assets.mjs enforces this after every build), no analytics, staging builds set noIndex, and the footer carries the trademark attribution. website/pnpm-lock.yaml is excluded from hawkeye since generated files cannot carry license headers.
  • Known gap: three Google credential-provider links on the provider page (AuthorizedUser/ExternalAccount/ImpersonatedServiceAccount) point to docs.rs latest but 404 until the next crates.io release, since those types exist only on main today. Landing-page code snippets mirror reqsign/examples/ and in-tree doc tests; wiring the per-provider quickstarts into compiled examples is planned as a follow-up.

Local verification: pnpm build (fails on broken internal links), the two scripts above, and a light/dark visual pass.

Bootstrap the reqsign website under website/: a Docusaurus site that
shares the Apache OpenDAL website's design skeleton while carrying
reqsign's own brand identity, with docs organized around the user
journey and a machine-checked provider capability catalog that fails
CI when it drifts from the workspace.
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