tree: 4f11a1d0128c4a93cbdb80efa2387c567d30305f
  1. public/
  2. scripts/
  3. src/
  4. test/
  5. astro.config.mjs
  6. package.json
  7. README.md
  8. tsconfig.json
website/README.md

maka.apache.org

The podling website: a bilingual homepage and a downloads page, built with Astro and published through .asf.yaml. Docs, security policy, community, releases and architecture stay authoritative where they already live in this repository; the site links to them and copies nothing.

npm --workspace @maka/website run dev    # http://localhost:4321/en/
npm --workspace @maka/website run build  # website/dist
npm --workspace @maka/website run test:dist

Content

  • The positioning sentence and homepage direction (Astryx Centered Hero) follow the consensus in #4307. Public download calls to action lead to approved releases, or the current release status until one is available. Contributor setup and testing instructions live in CONTRIBUTING; the site does not promote Nightly installers to general users. See the ASF publication policy.
  • English and Chinese are one page each in src/copy/. Both share the Copy type in src/copy/types.ts, so a section, claim or link added to one language fails to type-check until the other has it too, and test/site.test.mjs asserts the built pages link the same documents. Yuhan Lei (@Astro-Han) keeps the two in sync.
  • Numbers on the homepage are drawn from the reports in docs/eval/ and link to them. The reports own the numbers.
  • Fact-check cadence: the homepage is re-read against the product at every release, and whenever the positioning, the primary journey, platform support or the trust boundary changes. The README's Get Maka section, SECURITY.md and docs/eval/ are the sources to check against.
  • Machine-readable entry points live in public/: page changes must update sitemap.xml, and authoritative document changes must update llms.txt. The latter links to raw Markdown in the repository rather than copying documentation into the site.

Design

Colour, radius and surface tokens are the desktop app‘s defaults, copied by value from apps/desktop/src/renderer/maka-tokens.css into src/styles/site.css. The site follows the viewer’s colour scheme until they pick one with the toggle in the top bar, which is remembered in that browser. Fonts are Geist and Geist Mono (SIL Open Font License 1.1), self-hosted from the @fontsource-variable packages the desktop app already depends on, with each package's OFL text published at /licenses/<package>/LICENSE; nothing loads from a third party. The logo is apps/desktop/assets/app-icons/sky.png, the same file the README uses. src/assets/incubator.png is the Apache Incubator logo as published at https://www.apache.org/logos/res/incubator/default.png, an ASF trademark used here as the Incubator branding guide asks; it is not edited.

Publishing

.github/workflows/website.yml builds the site and pushes website/dist plus LICENSE, NOTICE and a site-only .asf.yaml as an orphan commit:

TriggerBranchServed at
Push to main touching the siteasf-sitehttps://maka.apache.org
Push of a release-candidate tag (v*-rc*)site/<tag>-staginghttps://maka-.staged.apache.org
workflow_dispatch with a stage namesite/<stage>-staginghttps://maka-.staged.apache.org

A workflow_dispatch without a stage name publishes only from main; any other ref fails instead of overwriting the live site. The published .asf.yaml carries just publish: whoami: asf-site and staging: autostage: site/*, the same layout Apache OpenDAL uses; the repository settings in the root .asf.yaml stay on main, the only branch asfyaml reads them from. Nothing else in the repository is published.